iMeshh API Documentation
Last Updated: July 02, 2025
APIs Available: Production (JWT) & Enterprise Customer API (Beta)
Overview
iMeshh provides two APIs for accessing digital assets:
- Production API (JWT) - The main API for authentication and asset management using JWT tokens
- Enterprise Customer API (Beta) - A high-performance CDN-based API for enterprise customers
Production API - JWT Authentication
Main API for all iMeshh services
Authentication
https://shop.imeshh.com
Authentication: JWT Bearer Token
The iMeshh API uses JWT (JSON Web Token) authentication. You need to obtain a token by logging in with your credentials, then include this token in the Authorization header of all subsequent requests.
Request Headers
All API requests should include these headers:
Header | Required | Description |
---|---|---|
Authorization | Yes* | Bearer token (JWT) - Required for authenticated endpoints |
User-Agent | Yes | iMeshh-Asset-Manager/1.0 (+https://imeshh.com) |
Accept-Encoding | Yes | gzip - Force gzip-encoded communication |
Content-Type | For POST | application/json - When sending JSON data |
* Not required for public endpoints (status, categories, products, asset catalogs)
POST /wp-json/jwt-auth/v1/token
Authenticate and receive a JWT token.
Request Body
{
"username": "user@example.com",
"password": "password123"
}
Response
{
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..."
}
Example Request
# cURL
curl -X POST https://shop.imeshh.com/wp-json/jwt-auth/v1/token \
-H "Content-Type: application/json" \
-d '{"username":"user@example.com","password":"password123"}'
# Python
import requests
response = requests.post(
'https://shop.imeshh.com/wp-json/jwt-auth/v1/token',
data={'username': 'user@example.com', 'password': 'password123'}
)
token = response.json()['token']
API Endpoints
GET /wp-json/imeshh/subscription-information
Get current user's subscription details.
Headers
Authorization: Bearer <token>
Response
[
{
"product_id": 55398,
"product_name": "Freelancer Subscription",
"subscription_id": 133071,
"status": "active",
"start_date": "2025-07-01 01:40:08",
"next_payment_date": "2026-07-01 01:40:08",
"billing_period": "year",
"billing_total": "49.00",
"billing_currency": "USD"
}
]
GET /wp-json/imeshh/product-information/download-link
Generate a download link for a specific asset. This is a two-step process:
- Request a download URL from this endpoint
- Use the returned URL to download the actual file
Headers
Authorization: Bearer <token>
Query Parameters
Parameter | Type | Description |
---|---|---|
product_id | integer | The ID of the product to download |
download_id | string | The UUID of the specific download variant |
Step 1: Get Download URL
GET https://shop.imeshh.com/wp-json/imeshh/product-information/download-link?product_id=133147&download_id=3379f7a9-156f-465c-a338-03623c86cf21
Response
{
"download_url": "https://r2.imeshh.com/assets/model-name.zip"
}
Step 2: Download the File
Make a GET request to the URL returned in step 1:
GET https://r2.imeshh.com/assets/model-name.zip
This will return the actual ZIP file.
Complete Example (Python)
# Step 1: Get download URL
response = requests.get(
'https://shop.imeshh.com/wp-json/imeshh/product-information/download-link',
headers={'Authorization': f'Bearer {token}'},
params={'product_id': '133147', 'download_id': '3379f7a9-156f-465c-a338-03623c86cf21'}
)
download_url = response.json()['download_url']
# Step 2: Download the actual file
file_response = requests.get(download_url, stream=True)
with open('asset.zip', 'wb') as f:
for chunk in file_response.iter_content(chunk_size=8192):
f.write(chunk)
GET https://blog.imeshh.com/wp-json/status-api/v1/latest
Check if data updates are available.
Response
{
"last_updated": "2025-07-21T21:38:11Z"
}
GET http://imeshh-lambda.s3-website-us-east-1.amazonaws.com/imeshh-all-product-compress-meta-data/latest_categories.json
Get all available categories and subcategories.
Headers
User-Agent: iMeshh-Asset-Manager/1.0 (+https://imeshh.com)
Accept-Encoding: gzip
Response Structure
{
"model": [
{
"id": 36127,
"name": "Architectural",
"slug": "architectural",
"subcategories": [
{
"id": 37997,
"name": "Ceiling Fans",
"slug": "ceiling-fans"
}
]
}
],
"material": [...],
"geonode": [...],
"fx": [...]
}
GET http://imeshh-lambda.s3-website-us-east-1.amazonaws.com/imeshh-all-product-compress-meta-data/latest_products.json
Get all available products.
Headers
User-Agent: iMeshh-Asset-Manager/1.0 (+https://imeshh.com)
Accept-Encoding: gzip
Response Structure (Array of Products)
[
{
"id": 132602,
"name": "Hanging Women Top 02",
"slug": "hanging-women-top-02",
"permalink": "https://shop.imeshh.com/product/hanging-women-top-02/",
"status": "publish",
"date_modified": "2025-06-28T17:07:07",
"blender_version": "6",
"polygon_count": "55017",
"dimensions": "42 x 18 x 66 cm",
"subdividable": "Yes",
"license-type": "1",
"thumbnail_id": 132611,
"thumbnail_name": "Clothing_Hanging_Top-Women_02",
"thumbnail_src": "https://r2.imeshh.com/2025/06/28170130/Clothing_Hanging_Top-Women_02-300x300.png",
"thumbnail_date_modified": "2025-06-28T17:01:30",
"images": [
{
"id": 132611,
"name": "Clothing_Hanging_Top-Women_02",
"src": "https://r2.imeshh.com/2025/06/28170130/Clothing_Hanging_Top-Women_02.png",
"thumbnail_src": "https://r2.imeshh.com/2025/06/28170130/Clothing_Hanging_Top-Women_02-300x300.png",
"date_modified": "2025-06-28T17:01:30"
}
],
"is_freebie": false,
"asset_type": "model",
"categories": {
"id": 36169,
"name": "Clothing",
"slug": "clothing"
},
"sub-categories": [
{
"id": 38229,
"name": "Hanging",
"slug": "hanging"
}
],
"downloads": [
{
"id": "e4dd8255-f25c-429f-8d13-67b03687b7ab",
"name": "Clothing_Hanging_Top-Women_02_Blender.zip"
}
]
}
]
GET Asset Catalog Files
Fetches Blender asset catalog files for each asset type.
Endpoints
http://imeshh-lambda.s3-website-us-east-1.amazonaws.com/cats-files/models/blender_assets.cats.txt
http://imeshh-lambda.s3-website-us-east-1.amazonaws.com/cats-files/materials/blender_assets.cats.txt
http://imeshh-lambda.s3-website-us-east-1.amazonaws.com/cats-files/geonodes/blender_assets.cats.txt
http://imeshh-lambda.s3-website-us-east-1.amazonaws.com/cats-files/fx/blender_assets.cats.txt
Headers
User-Agent: iMeshh-Asset-Manager/1.0 (+https://imeshh.com)
Accept-Encoding: gzip
Response
Returns a text file containing Blender asset catalog definitions.
Data Types
License Types
Value | Description |
---|---|
"1" | Royalty Free |
"2" | Editorial |
Blender Version Mapping
Value | Blender Version |
---|---|
"1" | v3.0+ |
"2" | v3.3+ |
"3" | v3.5+ |
"4" | v3.6+ |
"5" | v4.1+ |
"6" | v4.2+ |
"7" | v4.3+ |
Asset Types
model
- 3D modelsmaterial
- Materials and texturesgeonode
- Geometry nodesfx
- Effects
Subscription Status
Status | Description |
---|---|
active |
Subscription is active and valid |
cancelled |
Subscription has been cancelled |
expired |
Subscription has expired |
Message Status
Status | Description |
---|---|
none |
No message shown |
active |
Show only to active subscribers |
inactive |
Show only to inactive users |
everyone |
Show to all users |
Error Handling
The API uses standard HTTP status codes:
Status Code | Description |
---|---|
200 | Success |
401 | Unauthorized - Invalid or expired token |
403 | Forbidden - Download limit exceeded or no active subscription |
404 | Resource not found |
500 | Server error |
Error responses include a message field:
{
"message": "Download limit exceeded for this product"
}
Rate Limiting
The addon implements these limits:
- Maximum 6 simultaneous downloads
- Thumbnail downloads use thread pooling (CPU count / 2, max 16 threads)
Enterprise Customer API BETA
High-performance CDN-based API for enterprise customers
Overview
The iMeshh Enterprise Customer API provides fast, cached access to digital assets from private buckets. It implements an intelligent caching system with regionally optimized storage - assets are cached in locations closest to your business for optimal performance.
https://testb2b.15883.workers.dev
Authentication: Bearer Token with Secret Key
Status: Beta - Not fully implemented
Authentication
All requests require authentication using a secret key provided in the Authorization header.
Request Headers
Header | Required | Description |
---|---|---|
Authorization | Yes | Bearer token with your secret key |
User-Agent | Recommended | Should be set to iMeshh-Asset-Manager/1.0 (+https://imeshh.com) |
Endpoints
GET /{file_path}
Downloads a digital asset file with intelligent caching.
Example URL
GET https://testb2b.15883.workers.dev/2025/07/10053818/Furniture-Details_Handles_Plank-FOLD_01_Blender.zip
Request Headers
Authorization: Bearer 123456789
User-Agent: iMeshh-Asset-Manager/1.0 (+https://imeshh.com)
Response Headers
Header | Description |
---|---|
Content-Type | MIME type of the file (e.g., application/zip ) |
Content-Length | Size of the file in bytes |
X-Served-From | Cache status: testb2b-cache or original-bucket-copied |
Cache-Control | Caching directives |
Response Codes
Code | Description |
---|---|
200 | Success - File downloaded |
401 | Unauthorized - Invalid or missing secret key |
404 | Not Found - File does not exist |
500 | Internal Server Error - Worker error |
Caching Behavior
The worker implements a two-tier caching system:
- Cache Hit (
X-Served-From: testb2b-cache
)- File exists in your region-specific cache
- Fastest possible response time
- File served directly from cache closest to your location
- Cache Miss (
X-Served-From: original-bucket-copied
)- File not in cache, fetched from original storage
- File copied to your regional cache for future requests
- Slightly slower first-time access
Product Data JSON Example
Enterprise customers can access product data directly via JSON endpoints:
Example Request
GET https://testb2b.15883.workers.dev/products/product-list.json
Example Response
[
{
"name": "Plank FOLD Handles",
"product_id": "133147",
"polygon_count": "3180",
"dimensions": "4 x 2 x 4 cm",
"thumbnail": "https://r2.imeshh.com/2025/06/28170130/Furniture-Details_Handles_Plank-FOLD_01-300x300.png",
"download_url": "https://testb2b.15883.workers.dev/2025/07/10/053818/Furniture-Details_Handles_Plank-FOLD_01_Blender.zip"
},
{
"name": "Modern Cabinet Handle",
"product_id": "133148",
"polygon_count": "2560",
"dimensions": "12 x 2 x 3 cm",
"thumbnail": "https://r2.imeshh.com/2025/06/28170230/Modern-Cabinet-Handle-300x300.png",
"download_url": "https://testb2b.15883.workers.dev/2025/07/10/054920/Modern-Cabinet-Handle_Blender.zip"
}
]
Integration Examples
JavaScript/Node.js
const fetch = require('node-fetch');
const downloadFile = async (filePath, secretKey) => {
const response = await fetch(`https://testb2b.15883.workers.dev/${filePath}`, {
headers: {
'Authorization': `Bearer ${secretKey}`,
'User-Agent': 'iMeshh-Asset-Manager/1.0 (+https://imeshh.com)'
}
});
if (response.ok) {
const buffer = await response.buffer();
console.log(`Served from: ${response.headers.get('x-served-from')}`);
return buffer;
} else {
throw new Error(`Download failed: ${response.status}`);
}
};
Python
import requests
def download_file(file_path, secret_key):
url = f"https://testb2b.15883.workers.dev/{file_path}"
headers = {
'Authorization': f'Bearer {secret_key}',
'User-Agent': 'iMeshh-Asset-Manager/1.0 (+https://imeshh.com)'
}
response = requests.get(url, headers=headers, stream=True)
if response.status_code == 200:
print(f"Served from: {response.headers.get('X-Served-From')}")
return response.content
else:
raise Exception(f"Download failed: {response.status_code}")
cURL
#!/bin/bash
SECRET_KEY="123456789"
FILE_PATH="2025/07/10/053818/Furniture-Details_Handles_Plank-FOLD_01_Blender.zip"
curl -X GET \
"https://testb2b.15883.workers.dev/${FILE_PATH}" \
-H "Authorization: Bearer ${SECRET_KEY}" \
-H "User-Agent: iMeshh-Asset-Manager/1.0 (+https://imeshh.com)" \
-o "downloaded_file.zip"
Support
For technical support or API issues:
- Email: support@imeshh.com
- Contact: iMeshh Account Manager
Fair Use Policy
While no hard rate limits are currently enforced, a fair use policy applies. Usage that significantly exceeds standard business operations may be subject to throttling to ensure service quality for all enterprise customers.
For general support, email support@imeshh.com