API Referentie
De ultieme PBR-texturen voor creatieve professionals
The TextuurHaven REST API gives developers programmatic access to our library of 12,400+ production-ready PBR texture sets. Fetch metadata, search by material type or resolution, and download assets directly into your pipeline — all through a single authenticated endpoint at api.textuurhaven.com/v1.
Rate limits: 300 requests per minute on the Standard plan, 1,200 on Pro. All responses are JSON-encoded. Assets are delivered via signed URLs that expire after 3600 seconds.
Authentication
Every request must include your API key in the Authorization header. Keys are scoped to your account tier and can be rotated from the developer dashboard.
API Key Header
Include Authorization: Bearer <your_api_key> on every request. Keys are 64-character hex strings generated in your account settings under Settings → API Access.
Signed Download URLs
Asset download endpoints return time-limited signed URLs (TTL: 3600s). No additional auth is needed for the actual file transfer — the signature is embedded in the URL query string.
Rate Limiting
Standard tier: 300 req/min. Pro tier: 1,200 req/min. Burst allowance of 50 requests per second. Exceeded limits return 429 Too Many Requests with a Retry-After header.
Endpoints
Six core endpoints cover metadata retrieval, full-text search, and asset download. All paths are relative to https://api.textuurhaven.com/v1.
GET /textures
List all textures with pagination. Supports query parameters ?page, ?limit (max 100), ?sort (created_at, downloads, rating), and ?category (wood, metal, fabric, stone, concrete, plastic).
Response includes id, name, resolution, format (PNG/EXR), file size in bytes, and a thumbnail URL.
GET /textures/:id
Retrieve full metadata for a single texture set. Returns all channels (albedo, normal, roughness, metallic, displacement, AO), licensing info, creator attribution, and download URLs for each resolution variant.
GET /search
Full-text search across texture names, tags, and descriptions. Parameters: ?q (required), ?category, ?resolution (2K, 4K, 8K), ?license (standard, extended). Returns ranked results with relevance score.
GET /textures/:id/download
Initiate a download for a specific texture set. Query parameter ?resolution (2K, 4K, 8K) selects the variant. Returns a JSON object with a signed URL valid for 3600 seconds and an expiration timestamp.
GET /categories
List all available texture categories with item counts. Returns an array of objects: { id, name, slug, texture_count, featured_texture_id }.
GET /health
Service health check. Returns 200 OK with a JSON payload containing uptime in seconds, active endpoints, and current rate-limit window status. No authentication required.
Examples
Concrete request and response examples to get your integration running quickly.
Search for 4K Wood Textures
Request:
GET /search?q=walnut&category=wood&resolution=4K
Authorization: Bearer a3f8c1...e92d
Response (200):
{
"results": [
{
"id": "tx-4821",
"name": "American Black Walnut 4K",
"resolution": "4096x4096",
"channels": ["albedo", "normal", "roughness", "metallic", "displacement"],
"file_size_mb": 148.3,
"downloads": 3847,
"rating": 4.8
}
],
"total": 23
}
Download a Texture Set
Request:
GET /textures/tx-4821/download?resolution=4K
Authorization: Bearer a3f8c1...e92d
Response (200):
{
"texture_id": "tx-4821",
"resolution": "4K",
"signed_url": "https://cdn.textuurhaven.com/dl/tx-4821/4K?sig=...&exp=1709827200",
"expires_in_seconds": 3600,
"total_size_mb": 148.3
}
Use the signed_url in a direct file transfer. No additional headers required.
Paginate Through All Textures
Request:
GET /textures?page=2&limit=50&sort=downloads
Authorization: Bearer a3f8c1...e92d
Response (200):
{
"textures": [ ... ],
"pagination": {
"page": 2,
"limit": 50,
"total_items": 12487,
"total_pages": 249
}
}
API Referentie
De ultieme PBR-texturen voor creatieve professionals
The TextuurHaven REST API gives developers programmatic access to our library of 12,400+ production-ready PBR texture sets. Fetch metadata, search by material type or resolution, and download assets directly into your pipeline — all through a single authenticated endpoint at api.textuurhaven.com/v1.
Rate limits: 300 requests per minute on the Standard plan, 1,200 on Pro. All responses are JSON-encoded. Assets are delivered via signed URLs that expire after 3600 seconds.
Authentication
Every request must include your API key in the Authorization header. Keys are scoped to your account tier and can be rotated from the developer dashboard.
API Key Header
Include Authorization: Bearer <your_api_key> on every request. Keys are 64-character hex strings generated in your account settings under Settings → API Access.
Signed Download URLs
Asset download endpoints return time-limited signed URLs (TTL: 3600s). No additional auth is needed for the actual file transfer — the signature is embedded in the URL query string.
Rate Limiting
Standard tier: 300 req/min. Pro tier: 1,200 req/min. Burst allowance of 50 requests per second. Exceeded limits return 429 Too Many Requests with a Retry-After header.
Endpoints
Six core endpoints cover metadata retrieval, full-text search, and asset download. All paths are relative to https://api.textuurhaven.com/v1.
GET /textures
List all textures with pagination. Supports query parameters ?page, ?limit (max 100), ?sort (created_at, downloads, rating), and ?category (wood, metal, fabric, stone, concrete, plastic).
Response includes id, name, resolution, format (PNG/EXR), file size in bytes, and a thumbnail URL.
GET /textures/:id
Retrieve full metadata for a single texture set. Returns all channels (albedo, normal, roughness, metallic, displacement, AO), licensing info, creator attribution, and download URLs for each resolution variant.
GET /search
Full-text search across texture names, tags, and descriptions. Parameters: ?q (required), ?category, ?resolution (2K, 4K, 8K), ?license (standard, extended). Returns ranked results with relevance score.
GET /textures/:id/download
Initiate a download for a specific texture set. Query parameter ?resolution (2K, 4K, 8K) selects the variant. Returns a JSON object with a signed URL valid for 3600 seconds and an expiration timestamp.
GET /categories
List all available texture categories with item counts. Returns an array of objects: { id, name, slug, texture_count, featured_texture_id }.
GET /health
Service health check. Returns 200 OK with a JSON payload containing uptime in seconds, active endpoints, and current rate-limit window status. No authentication required.
Examples
Concrete request and response examples to get your integration running quickly.
Search for 4K Wood Textures
Request:
GET /search?q=walnut&category=wood&resolution=4K
Authorization: Bearer a3f8c1...e92d
Response (200):
{
"results": [
{
"id": "tx-4821",
"name": "American Black Walnut 4K",
"resolution": "4096x4096",
"channels": ["albedo", "normal", "roughness", "metallic", "displacement"],
"file_size_mb": 148.3,
"downloads": 3847,
"rating": 4.8
}
],
"total": 23
}
Download a Texture Set
Request:
GET /textures/tx-4821/download?resolution=4K
Authorization: Bearer a3f8c1...e92d
Response (200):
{
"texture_id": "tx-4821",
"resolution": "4K",
"signed_url": "https://cdn.textuurhaven.com/dl/tx-4821/4K?sig=...&exp=1709827200",
"expires_in_seconds": 3600,
"total_size_mb": 148.3
}
Use the signed_url in a direct file transfer. No additional headers required.
Paginate Through All Textures
Request:
GET /textures?page=2&limit=50&sort=downloads
Authorization: Bearer a3f8c1...e92d
Response (200):
{
"textures": [ ... ],
"pagination": {
"page": 2,
"limit": 50,
"total_items": 12487,
"total_pages": 249
}
}