Espressif APIespressif.com ↗
Access Espressif chip datasheets, technical reference manuals, errata, and design guides across ESP32 and other series via a structured REST API.
What is the Espressif API?
The Espressif Documentation API provides structured access to official technical documents across all Espressif chip families through 3 endpoints. Use get_series to enumerate chip families like ESP32, ESP32-S3, and ESP32-C3, then pass a series_id to search_documents to retrieve paginated results including title, version, revision date, file size, download link, and document type — covering datasheets, reference manuals, errata, application notes, and certifications.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/2a6e6a1d-1f24-4bab-8beb-f0d41b88df73/get_series' \ -H 'X-API-Key: $PARSE_API_KEY'
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 espressif-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.espressif_technical_documentation_api import Espressif, Series, DocumentType, Document
espressif = Espressif()
# List all chip series
for series in espressif.serieses.list():
print(series.id, series.name, series.name_cn)
# List all document types
for doc_type in espressif.documenttypes.list():
print(doc_type.id, doc_type.name)
# Search documents for ESP32-S3 series filtered by keyword
for doc in espressif.documents.search(series_id="7", query="datasheet"):
print(doc.title, doc.version, doc.revision_date, doc.language, doc.file_size_kb)
Retrieves all Espressif chip series (product families). Each series has a unique ID, English name, and Chinese name. The full catalog is returned in a single response with no pagination.
No input parameters required.
{
"type": "object",
"fields": {
"series": "array of series objects with id, name, and name_cn"
},
"sample": {
"data": {
"series": [
{
"id": "7",
"name": "ESP32-S3",
"name_cn": "ESP32-S3"
},
{
"id": "1",
"name": "ESP32",
"name_cn": "ESP32"
},
{
"id": "2",
"name": "ESP32-C3",
"name_cn": "ESP32-C3"
}
]
},
"status": "success"
}
}About the Espressif API
Endpoints and Data Coverage
The API exposes three endpoints. get_series returns a flat list of all Espressif chip families, each with an id, name, and name_cn (Chinese name). get_document_types returns the full taxonomy of document categories — including Datasheet, Errata, Reference, Guide, Application Note, PCN, and certification types — each with an id and name. These two endpoints feed directly into the third.
Searching and Filtering Documents
search_documents is the primary workhorse. Pass a series_id (from get_series) and optionally a doc_type_id (from get_document_types) to scope results to a specific chip and document category. The optional query parameter does case-insensitive keyword matching against document titles and summaries. Each result object includes id, title, summary, version, revision_date, type, language, link, and file_size_kb. The response also surfaces total_count so callers know the full result set size.
Response Shape and Practical Notes
All three endpoints are stateless GET calls requiring no per-request authentication beyond your Parse API key. get_series and get_document_types serve as lookup tables and change infrequently, so caching their output locally reduces round-trips. The link field in document results points directly to the downloadable file, typically a PDF. revision_date and version allow callers to detect when Espressif releases a new revision of an existing document, which is useful for toolchains that track hardware specification changes over time.
The Espressif API is a managed, monitored endpoint for espressif.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when espressif.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 espressif.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.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a documentation search tool that lets engineers filter ESP32-S3 datasheets and reference manuals by keyword.
- Automate version-change tracking by polling
revision_dateandversionfields for a given chip series. - Generate a changelog feed that notifies firmware teams when Espressif publishes new errata for a specific chip.
- Populate a hardware selection tool with direct datasheet links indexed by chip series and document type.
- Compile a local offline mirror of all Espressif PDFs for a given product family using the
linkandfile_size_kbfields. - Filter application notes for a specific series to surface design guidance relevant to a current PCB project.
- Cross-reference PCN (Product Change Notice) documents across multiple series to flag supply-chain impacts.
| 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 | 100 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 Espressif provide an official developer API for accessing their documentation?+
What does `search_documents` actually return, and how do the filter parameters interact?+
search_documents returns an array of document objects, each with id, title, summary, version, revision_date, type, language, link, and file_size_kb, plus a top-level total_count and series_id. The series_id, doc_type_id, and query parameters are all optional and combinable — for example, you can pass a series_id and doc_type_id together to get only errata for a specific chip, and add a query string to further narrow by keyword in titles or summaries.Does the API return documentation for ESP8266 or older Espressif chips?+
get_series response. The endpoint returns all series Espressif lists, so whether legacy chips like ESP8266 appear depends on Espressif's own catalog. Calling get_series with no parameters returns the current full list of available series IDs.Can I retrieve the actual PDF content or parsed text of documents through the API?+
link field pointing to the downloadable PDF, along with file_size_kb. Parsed document content, section-level indexing, or full-text search within PDFs are not covered. You can fork this API on Parse and revise it to add an endpoint that fetches and parses PDF content from those links.Are module-level documents (e.g., for ESP32-WROOM or WROVER modules) available, or only chip-series documents?+
get_series. Module-specific documentation is not separately exposed as a distinct axis. You can fork this API on Parse and revise it to add a module-level endpoint if your project requires that granularity.