iMeshh API Documentation

Version: 1.0
Last Updated: July 02, 2025
APIs Available: Production (JWT) & Enterprise Customer API (Beta)

Overview

iMeshh provides two APIs for accessing digital assets:

  1. Production API (JWT) - The main API for authentication and asset management using JWT tokens
  2. Enterprise Customer API (Beta) - A high-performance CDN-based API for enterprise customers

Production API - JWT Authentication

Main API for all iMeshh services

Authentication

Base URL: 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:

  1. Request a download URL from this endpoint
  2. 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)
Note: Each standard customer gets 4 downloads per product. If you exceed your download limit, you'll receive a 403 error with message: "Download limit exceeded for this product"

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

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

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:

Enterprise Customer API BETA

High-performance CDN-based API for enterprise customers

⚠️ Beta Notice: This API is currently in beta and not fully implemented. Features and endpoints may change without notice. Contact your account manager for access.

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.

Base URL: 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:

  1. 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
  2. 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
Note: Product data will also be served from the private cache as a JSON endpoint for improved performance.

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:

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.

Need Help?
For general support, email support@imeshh.com