Discover/Textures API
live

Textures APItextures.com

Access texture categories, keyword search, latest additions, free content, and full map metadata from Textures.com via a structured JSON API.

Endpoint health
verified 1d ago
get_latest_textures
get_subcategories
browse_category
search_textures
get_free_content
7/7 passing latest checkself-healing
Endpoints
7
Updated
26d ago

What is the Textures 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.

Try it

No input parameters required.

api.parse.bot/scraper/5e12160a-bf3e-46f9-875b-b5c53667c384/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/5e12160a-bf3e-46f9-875b-b5c53667c384/get_categories' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace textures-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

from parse_apis.textures_com_api import Textures, Category, Texture, TextureDetail

client = Textures()

# List all categories
for category in client.categories.list(limit=5):
    print(category.name, category.id, category.photo_set_count)

# Browse a specific category by constructing it from its ID
road_category = client.category(id=115141)
for texture in road_category.browse(limit=3):
    print(texture.name, texture.width, texture.height, texture.resolution)

# Search for wood textures
for texture in client.textures.search(query="wood", limit=5):
    print(texture.name, texture.default_photo_set_id, texture.resolution)

# Get full details for a texture
detail = texture.details()
print(detail.title, detail.license_information)
for section in detail.sections:
    print(section.section_title)
    for photo in section.photos:
        print(photo.photo_title)
        for image in photo.images:
            print(image.size, image.width, image.height, image.credit_cost.download_credits_needed)

# Get latest textures
for tex in client.textures.latest(limit=3):
    print(tex.name, tex.resolution, tex.default_category_id)

# Get free content
for tex in client.textures.free(limit=3):
    print(tex.name, tex.picture)
All endpoints · 7 totalmissing one? ·

Returns the full category tree for the texture library including all top-level categories, their subcategories, photo set counts, and content groupings. The tree is hierarchical: each category may contain subcategory items organized by content type (3d_materials, 3d_assets, etc.). Use category IDs from this response to browse textures or fetch subcategory details.

Input

No input parameters required.

Response
{
  "type": "object",
  "fields": {
    "categories": "array of top-level category objects with nested subcategories, photo set counts, and content groupings",
    "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,
          "subCategoryCount": 2
        }
      ],
      "lastUpdateDate": "2026-02-24T12:42:31+01:00"
    },
    "status": "success"
  }
}

About the Textures API

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.

Reliability & maintenanceVerified

The Textures API is a managed, monitored endpoint for textures.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when textures.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official textures.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
1d ago
Latest check
7/7 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a texture browser UI that maps the full category hierarchy from get_categories into a navigable tree with subcategory counts.
  • Index the Textures.com catalog by polling get_latest_textures on a schedule to detect new additions without full re-crawls.
  • Automate material library population by searching with search_textures and pulling map section data from get_texture_detail for matched assets.
  • Surface zero-cost assets in a free tier of a design tool by consuming get_free_content with pagination.
  • Display per-resolution credit costs in a checkout flow by reading the sections array from get_texture_detail.
  • Filter textures by category in a 3D scene authoring tool using browse_category with leaf-level category IDs obtained from get_subcategories.
  • Build a comparison tool showing available map types (diffuse, normal, displacement) and their sizes for a given photoSet ID.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does Textures.com have an official developer API?+
Textures.com does not publish an official public developer API. This Parse API provides structured access to catalog data, category hierarchies, texture metadata, and map details without requiring a Textures.com developer account.
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?+
Not currently. The API covers catalog metadata, map sections, credit costs, category structure, and license information. User-generated signals such as ratings or download counts are not included in any endpoint response. You can fork this API on Parse and revise it to add an endpoint targeting that data if Textures.com exposes it on individual texture pages.
How do I navigate from a top-level category to an actual list of textures?+
Call 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?+
No endpoint returns binary image data or direct download URLs for full-resolution texture files. The API returns picture URLs for preview images and metadata about available resolutions and credit costs from the 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.
Page content last updated . Spec covers 7 endpoints from textures.com.
Related APIs in Developer ToolsSee all →
turbosquid.com API
Search and explore millions of 3D models and textures from TurboSquid's marketplace, viewing detailed specifications, pricing, and availability across different categories. Discover free models, filter by your needs, and access comprehensive product information to find the perfect assets for your projects.
elements.envato.com API
Search and browse millions of creative assets from Envato Elements, including stock photos, videos, music, fonts, and templates across all categories. Get detailed information about specific items, pricing plans, and discover new content through keyword search and category browsing.
sketchfab.com API
Search and browse 3D models on Sketchfab, including filtering by category, license, animation, and downloadability. Retrieve detailed model metadata, creator profiles, collections, thumbnails, tags, and viewer configuration options.
blenderkit.com API
Search BlenderKit's extensive library of 3D models, materials, scenes, HDRs, and brushes, complete with detailed asset information and category browsing. Retrieve intelligent search suggestions and explore organized collections to discover assets across any creative domain.
pexels.com API
Search and browse millions of free stock photos and videos on Pexels. Access trending content, photographer galleries, photo/video challenges, and search suggestions via a clean API.
furnimesh.com API
Browse and download free 3D furniture models from FurniMesh's extensive library by searching for specific items or exploring curated collections. Access detailed model information and instantly integrate high-quality furniture assets into your design projects.
unsplash.com API
Search Unsplash photos by keyword and retrieve image URLs, photographer info, and detailed photo metadata such as tags, EXIF, location, and related collections.
arxiv.org API
Search and discover academic research papers on arXiv using keywords, authors, titles, categories, and dates, then access detailed metadata for any paper. Browse the complete arXiv category taxonomy to explore research across different scientific disciplines.