textures.com APItextures.com ↗
Access texture categories, keyword search, latest additions, free content, and full map metadata from Textures.com via a structured JSON API.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/5e12160a-bf3e-46f9-875b-b5c53667c384/get_categories' \ -H 'X-API-Key: $PARSE_API_KEY'
Returns all top-level texture categories with full hierarchy data including subcategories, photo set counts, and content groupings.
No input parameters required.
{
"type": "object",
"fields": {
"categories": "array of top-level category objects with nested subcategories and contents",
"lastUpdateDate": "ISO 8601 timestamp of last category tree update"
},
"sample": {
"data": {
"categories": [
{
"id": 115139,
"kind": "special",
"link": "/category/3d-decals/115139",
"name": "3D Decals",
"contents": [
{
"key": "3d_materials",
"items": [
{
"id": 115141,
"name": "Road",
"photoSetCount": 63
}
],
"title": "3D Materials"
}
],
"photoSetCount": 76,
"parentCategoryId": null,
"subCategoryCount": 2
}
],
"lastUpdateDate": "2026-02-24T12:42:31+01:00"
},
"status": "success"
}
}About the textures.com API
The Textures.com API exposes 7 endpoints covering the full catalog of textures from Textures.com, including category hierarchies, keyword search, and per-texture detail records. The get_texture_detail endpoint returns map sections, available resolutions, credit costs, and license information for any photoSet ID. Use search_textures or browse_category to locate texture IDs, then fetch complete metadata for specific assets.
Category and Browse Endpoints
The get_categories endpoint returns the full top-level category tree, including nested subcategories and a lastUpdateDate ISO 8601 timestamp. Pass any category_id from that response to get_subcategories to drill into child category listings and content groupings, with a subCategoryCount field indicating depth. Use leaf-level category IDs with browse_category to retrieve paginated texture listings; the response includes a meta object with category title metadata plus pagination fields (total_count, page_count, current_page, per_page).
Search and Discovery
search_textures accepts a required query string (e.g. "concrete", "wood grain") and an optional page integer. Each result includes texture id, name, pixel dimensions, picture URLs, and a defaultPhotoSet object with the id needed for detail lookups. get_latest_textures and get_free_content follow the same paginated response shape and require no query parameters beyond an optional page, making them suitable for catalog indexing or surfacing recently added or zero-cost assets.
Texture Detail and Map Metadata
get_texture_detail is the most field-rich endpoint. Provide a photo_set_id (obtainable from defaultPhotoSet.id in search or browse results) and the response includes the full title, a category object with id, name, kind, and rootCategoryId, a sections array describing each available map type (diffuse, normal, displacement, etc.) with per-photo size options and credit costs, and a licenseInformation string. This makes it straightforward to build asset pickers that surface exactly which maps and resolutions are available before a user commits to a download.
- Build a texture browser UI that maps the full category hierarchy from
get_categoriesinto a navigable tree with subcategory counts. - Index the Textures.com catalog by polling
get_latest_textureson a schedule to detect new additions without full re-crawls. - Automate material library population by searching with
search_texturesand pulling map section data fromget_texture_detailfor matched assets. - Surface zero-cost assets in a free tier of a design tool by consuming
get_free_contentwith pagination. - Display per-resolution credit costs in a checkout flow by reading the
sectionsarray fromget_texture_detail. - Filter textures by category in a 3D scene authoring tool using
browse_categorywith leaf-level category IDs obtained fromget_subcategories. - Build a comparison tool showing available map types (diffuse, normal, displacement) and their sizes for a given photoSet ID.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Textures.com have an official developer API?+
What does `get_texture_detail` return that the search and browse endpoints don't?+
get_texture_detail returns the full sections array, which lists every available map type for a given photoSet along with individual photo sizes and their credit costs. It also returns the licenseInformation string and the full category object including rootCategoryId. Search and browse endpoints return a lighter defaultPhotoSet object suitable for listing pages but not for map-level detail.Can I retrieve user ratings, download counts, or community reviews for textures?+
How do I navigate from a top-level category to an actual list of textures?+
get_categories to obtain top-level category IDs, then pass a category_id to get_subcategories to find leaf-level IDs. Pass a leaf-level ID to browse_category to receive paginated texture listings. Using a non-leaf category ID with browse_category may return empty or sparse results since textures live at the deepest category level.Does the API expose the actual downloadable texture files or image binaries?+
sections array. Actual asset downloads are handled through the Textures.com platform itself. You can fork this API on Parse and revise it to construct or resolve download links if your use case requires them.