Usage billing
Two paid classes — the full part record and AI tokens. Overview data (matching, catalog search, metadata) is free.
REST endpoints draw from the same credits ledger as GraphQL and the zenode.ai web tool. Usage is counted per unit of work, not per HTTP request. The model is simple: you pay for detailed part data and AI work — overview data is free.
Overview data is free. Matching a part number, searching the catalog, browsing manufacturers and categories, and reading facets return summary data — enough to identify a part and decide what to open — and don't consume your allowance (they're still abuse-tracked). You pay only when you fetch the full part record (specs, pricing, availability) or run an AI job.
Endpoint billing
| Endpoint | Billing | One unit is… |
|---|---|---|
POST /v1/parts/match | Free | — |
POST /v1/parts/match/batch | Free | — |
POST /v1/parts/search | Free | — |
POST /v1/parts/search/facets | Free | — |
GET /v1/parts/{manufacturer}/{mpn} | Part records | 1 full part record fetched |
POST /v1/parts/discover | AI tokens | LLM tokens on the job (usage.total_tokens) |
POST /v1/parts/{manufacturer}/{mpn}/deep-dive | AI tokens | LLM tokens on the job (usage.total_tokens) |
POST /v1/manufacturers/match | Free | — |
GET /v1/manufacturers/{manufacturer} | Free | — |
POST /v1/categories/match | Free | — |
GET /v1/categories | Free | — |
GET /v1/categories/{slug} | Free | — |
GET /v1/jobs, GET /v1/jobs/{job_id}, GET /v1/jobs/{job_id}/stream | Free | — |
POST /v1/jobs/{job_id}/cancel | Free | — |
GET /v1/usage | Free | — |
Paid endpoints require an active subscription with remaining allowance in the relevant class. When
your balance for a class is exhausted, new requests in that class return 402 Payment Required.
The two paid classes
Part records
The full part record — specs, the distributor pricing ladder, availability and stock, datasheets, lifecycle, and regulatory data. This is the detailed data you pay for, billed once per part record fetched:
- Fetching one part by slug with
GET /v1/parts/{manufacturer}/{mpn}costs 1 part-record unit.
Catalog search and matching
return lightweight PartSummary objects — MPN, manufacturer,
description, image, status — enough to identify a part. They're free. You spend a part-record unit
only when you open the full record for its specs, pricing, and availability.
AI tokens
Discovery and deep dive run as
async jobs. Billing happens when you create the job; following it via
poll, stream, or cancel is free. Each completed job reports exact token
counts on usage:
1{2 "input_tokens": 4200,3 "output_tokens": 1800,4 "total_tokens": 60005}REST vs GraphQL
| REST | GraphQL | |
|---|---|---|
| Paid part lookup | Part records — one unit per full record fetched | part_match — one unit per part returned |
| Free | Matching, catalog search, facets, manufacturers, categories, jobs, usage | supManufacturers, supCategories |
| AI | Token-metered (REST only) | — |
The GraphQL API is a frozen compatibility surface and keeps its
original per-part billing on supSearchMpn, supSearch, supMultiMatch, and supParts. On REST,
matching and catalog search return summaries and are free — you pay only to fetch the full record.
Check your usage
GET /v1/usage returns running totals for the paid classes in the current
billing period (part_records, ai_tokens). See Rate limits & usage for
per-minute throttling and quota error codes.
Next
- Rate limits & usage — shared throttle and quota model
- Part detail — the charged full record
- Authentication — API keys and account setup
- Usage endpoint — current-period consumption per class