Discover/DatasheetCatalog API
live

DatasheetCatalog APIdatasheetcatalog.com

Search electronic component datasheets, retrieve PDF links, and browse by manufacturer or category using the DatasheetCatalog.com API. 6 endpoints.

Endpoints
6
Updated
2mo ago

What is the DatasheetCatalog API?

The DatasheetCatalog API provides 6 endpoints for finding electronic component datasheets, retrieving direct PDF download links, and browsing the full catalog by manufacturer or component category. The search_datasheets endpoint accepts part numbers or keywords and returns matching components with manufacturer attribution, while get_datasheet_detail exposes all available PDF variants for a given component, including per-manufacturer pdf_url fields.

Try it
Page number for pagination
Search keyword or part number
api.parse.bot/scraper/6287ee91-bb37-4c16-9240-16ab0dfe8072/<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/6287ee91-bb37-4c16-9240-16ab0dfe8072/search_datasheets' \
  -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 datasheetcatalog-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.

"""
Datasheet Catalog API Client
API for retrieving electronic component datasheets, manufacturers, and categories.
Get your API key from: https://parse.bot/settings
"""

import os
import requests
from typing import Optional, Dict, Any, List


class ParseClient:
    """Client for the Datasheet Catalog API."""
    
    def __init__(self, api_key: Optional[str] = None):
        """
        Initialize the Parse API client.
        
        Args:
            api_key: API key for authentication. If not provided, reads from PARSE_API_KEY env var.
        """
        self.base_url = "https://api.parse.bot"
        self.scraper_id = "027b2f76-cacf-481b-9203-dace127d74c8"
        self.api_key = api_key or os.getenv("PARSE_API_KEY")
        
        if not self.api_key:
            raise ValueError("API key not provided and PARSE_API_KEY environment variable not set")
    
    def _call(self, endpoint: str, method: str = "POST", **params) -> Dict[str, Any]:
        """
        Make an API call to the Parse endpoint.
        
        Args:
            endpoint: The endpoint name (e.g., 'search_datasheets')
            method: HTTP method ('GET' or 'POST')
            **params: Parameters to send with the request
            
        Returns:
            Response JSON as a dictionary
            
        Raises:
            requests.RequestException: If the API call fails
        """
        url = f"{self.base_url}/scraper/{self.scraper_id}/{endpoint}"
        headers = {
            "X-API-Key": self.api_key,
            "Content-Type": "application/json"
        }
        
        if method.upper() == "GET":
            response = requests.get(url, headers=headers, params=params)
        elif method.upper() == "POST":
            response = requests.post(url, headers=headers, json=params)
        else:
            raise ValueError(f"Unsupported HTTP method: {method}")
        
        response.raise_for_status()
        return response.json()
    
    def search_datasheets(self, query: str, page: int = 1) -> Dict[str, Any]:
        """
        Search for datasheets by part name, description, or keyword.
        
        Args:
            query: Search keyword or part number
            page: Page number for pagination (default: 1)
            
        Returns:
            Dictionary with 'query', 'page', and 'results' list
        """
        return self._call("search_datasheets", method="GET", query=query, page=page)
    
    def get_datasheet_detail(self, url: str) -> Dict[str, Any]:
        """
        Get detailed information for a specific component datasheet.
        
        Args:
            url: URL of the component detail page
            
        Returns:
            Dictionary with 'part_name', 'detail_url', 'manufacturers', and 'related_parts'
        """
        return self._call("get_datasheet_detail", method="GET", url=url)
    
    def get_manufacturer_list(self) -> Dict[str, Any]:
        """
        Retrieve the full list of all manufacturers indexed in the catalog.
        
        Returns:
            Dictionary with 'manufacturers' list
        """
        return self._call("get_manufacturer_list", method="GET")
    
    def get_manufacturer_components(self, manufacturer_slug: str, page: int = 1) -> Dict[str, Any]:
        """
        Get all datasheets/components listed for a specific manufacturer.
        
        Args:
            manufacturer_slug: Manufacturer slug from get_manufacturer_list
            page: Page number for pagination (default: 1)
            
        Returns:
            Dictionary with 'manufacturer', 'page', and 'components' list
        """
        return self._call("get_manufacturer_components", method="GET", 
                         manufacturer_slug=manufacturer_slug, page=page)
    
    def get_category_list(self) -> Dict[str, Any]:
        """
        Retrieve the full hierarchical list of component categories/functions.
        
        Returns:
            Dictionary with 'categories' list
        """
        return self._call("get_category_list", method="GET")
    
    def get_category_components(self, category_slug: str) -> Dict[str, Any]:
        """
        Get datasheets listed under a specific component category/function.
        
        Args:
            category_slug: Category slug from get_category_list
            
        Returns:
            Dictionary with 'category' and 'components' list
        """
        return self._call("get_category_components", method="GET", category_slug=category_slug)


def main():
    """Practical workflow example: search for components and retrieve detailed information."""
    
    # Initialize the client
    client = ParseClient()
    
    # Workflow 1: Search for a component and get details for top results
    print("=" * 80)
    print("WORKFLOW: Search for Timer Components and Get Detailed Datasheets")
    print("=" * 80)
    
    search_query = "NE555"
    print(f"\n1. Searching for '{search_query}'...")
    search_results = client.search_datasheets(query=search_query, page=1)
    
    print(f"   Found {len(search_results['results'])} results")
    
    # Get details for the first few results
    for i, component in enumerate(search_results['results'][:2], 1):
        print(f"\n   [{i}] {component['part_name']} by {component['manufacturer']}")
        print(f"       Description: {component['description']}")
        
        # Fetch detailed information including PDF links
        detail_url = component['detail_url']
        print(f"\n       Fetching detailed datasheet information...")
        
        try:
            details = client.get_datasheet_detail(url=detail_url)
            
            print(f"       Found {len(details['manufacturers'])} manufacturer(s) with PDFs:")
            for mfg in details['manufacturers']:
                print(f"         - {mfg['manufacturer']}: {mfg['description']}")
                print(f"           PDF: {mfg['pdf_url']}")
            
            if details['related_parts']:
                print(f"       Related parts: {', '.join([p['part_name'] for p in details['related_parts']])}")
        except requests.RequestException as e:
            print(f"       Error fetching details: {e}")
    
    # Workflow 2: Browse components by manufacturer
    print("\n" + "=" * 80)
    print("WORKFLOW: Browse Components by Manufacturer")
    print("=" * 80)
    
    print("\n2. Getting list of manufacturers...")
    manufacturers = client.get_manufacturer_list()
    
    # Show first 3 manufacturers
    print(f"   Found {len(manufacturers['manufacturers'])} manufacturers")
    print("   Showing first 3:")
    
    for i, mfg in enumerate(manufacturers['manufacturers'][:3], 1):
        print(f"\n   [{i}] {mfg['name']}")
        
        # Get components from this manufacturer
        components_data = client.get_manufacturer_components(
            manufacturer_slug=mfg['slug'], 
            page=1
        )
        
        print(f"       Components on page 1: {len(components_data['components'])}")
        for comp in components_data['components'][:2]:
            print(f"         - {comp['part_name']}: {comp['description']}")
    
    # Workflow 3: Browse by category
    print("\n" + "=" * 80)
    print("WORKFLOW: Browse Components by Category")
    print("=" * 80)
    
    print("\n3. Getting list of categories...")
    categories = client.get_category_list()
    
    print(f"   Found {len(categories['categories'])} categories")
    print("   Showing first 2:")
    
    for i, category in enumerate(categories['categories'][:2], 1):
        print(f"\n   [{i}] {category['name']}")
        
        # Get components in this category
        category_components = client.get_category_components(
            category_slug=category['slug']
        )
        
        component_count = len(category_components['components'])
        print(f"       Contains {component_count} component(s)")
        
        for comp in category_components['components'][:3]:
            print(f"         - {comp['part_name']} ({comp['manufacturer']})")
    
    print("\n" + "=" * 80)
    print("Workflow completed successfully!")
    print("=" * 80)


if __name__ == "__main__":
    main()
All endpoints · 6 totalmissing one? ·

Search for datasheets by part name, description, or keyword. Returns list of matching components.

Input
ParamTypeDescription
pageintegerPage number for pagination
queryrequiredstringSearch keyword or part number
Response
{
  "type": "object",
  "fields": {
    "page": "integer",
    "query": "string",
    "results": "array of objects (part_name, description, manufacturer, detail_url)"
  },
  "sample": {
    "page": 1,
    "query": "NE555",
    "results": [
      {
        "part_name": "NE555",
        "detail_url": "http://www.datasheetcatalog.com/datasheets_pdf/N/E/5/5/NE555.shtml",
        "description": "General Purpose Timer",
        "manufacturer": "Texas Instruments"
      }
    ]
  }
}

About the DatasheetCatalog API

Search and Component Detail

The search_datasheets endpoint accepts a query string (part number, keyword, or description fragment) and an optional page integer for pagination. Each result in the results array includes part_name, description, manufacturer, and a detail_url that can be passed directly to get_datasheet_detail. That detail endpoint returns a manufacturers array where each entry carries its own pdf_url (a direct link to the datasheet PDF), a pdf_page_url, and a description — useful when the same part is manufactured by multiple vendors with differing specs. It also returns a related_parts array of similar components with their own detail_url values.

Browsing by Manufacturer

get_manufacturer_list returns the full catalog of indexed manufacturers as an array of objects with name, slug, and url. Pass a manufacturer_slug from that list to get_manufacturer_components to retrieve all datasheets attributed to that manufacturer, paginated via the page parameter. Each component in the response carries part_name, description, and detail_url.

Browsing by Category

get_category_list returns the hierarchical list of component function categories — each with name, slug, and url. Pass a category_slug to get_category_components to get all components in that category, with each entry including part_name, description, manufacturer, and detail_url. Together the category and manufacturer endpoints make it possible to enumerate the catalog without an upfront search query.

Reliability & maintenance

The DatasheetCatalog API is a managed, monitored endpoint for datasheetcatalog.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when datasheetcatalog.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 datasheetcatalog.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?+
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
  • Resolve a part number to a direct PDF datasheet link using search_datasheets then get_datasheet_detail.
  • Compare PDF datasheets from multiple manufacturers for the same component using the manufacturers array in get_datasheet_detail.
  • Build a component browser that enumerates all parts from a given supplier via get_manufacturer_components.
  • Classify components by function by iterating category slugs from get_category_list and fetching parts via get_category_components.
  • Populate a parts database with manufacturer metadata by combining get_manufacturer_list with paginated get_manufacturer_components calls.
  • Surface related components for a BOM alternative-search tool using the related_parts field from get_datasheet_detail.
  • Index component descriptions and part names for full-text search by paginating through manufacturer or category component listings.
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 DatasheetCatalog.com offer an official developer API?+
DatasheetCatalog.com does not publish an official developer API or documented public REST interface.
What does `get_datasheet_detail` return beyond a single PDF link?+
It returns a manufacturers array, so if a part is sourced from several manufacturers you get a separate pdf_url, pdf_page_url, manufacturer, and description entry for each one. It also returns a related_parts array listing similar components with their own detail_url values for further lookup.
Does `search_datasheets` support filtering by manufacturer or category directly?+
The search_datasheets endpoint accepts only a query string and an optional page for pagination — there is no manufacturer or category filter parameter on the search endpoint itself. Manufacturer- and category-scoped browsing is handled by the dedicated get_manufacturer_components and get_category_components endpoints. You can fork the API on Parse and revise it to add filtered search parameters to the search endpoint.
Does `get_category_components` support pagination?+
The current get_category_components endpoint does not expose a page parameter — it returns results for a category slug without pagination controls, unlike get_manufacturer_components which does support page. For large categories this may limit the result set. You can fork the API on Parse and revise it to add pagination support to the category components endpoint.
Does the API expose component specifications like voltage, package type, or pin count from within the datasheet?+
Not currently. The API returns metadata fields — part_name, description, manufacturer, and pdf_url — rather than parsed electrical or physical specifications extracted from the datasheet content. You can fork the API on Parse and revise it to add a spec-extraction endpoint targeting specific component parameters.
Page content last updated . Spec covers 6 endpoints from datasheetcatalog.com.
Related APIs in Developer ToolsSee all →
componentsearchengine.com API
Search for electronic components and access detailed specifications including pricing, datasheets, and 3D models from a comprehensive component database. Browse top trending components, retrieve in-depth metadata, and integrate real-time component information into your sourcing and design workflows.
octopart.com API
Search electronic parts and get instant access to pricing, stock levels, and specs from multiple distributors in one place. Browse manufacturers and categories to compare availability and find the best deals on components you need.
analog.com API
Browse Analog Devices' complete product catalog, search for specific parts, and instantly access detailed specifications, documentation, pricing, and sample purchasing options. Explore product categories and subcategories to discover components that match your technical requirements and budget.
mouser.com API
mouser.com API
arrow.com API
Search for electronic components and instantly access pricing, availability, and detailed product specifications from Arrow Electronics' catalog. Look up manufacturers, retrieve bulk component data, and find the parts you need all in one place.
element14.com API
Search and browse Newark (element14)'s electronic components catalog to find product details, pricing, stock levels, and technical documentation. Retrieve specifications, explore categories and manufacturers, and access real-time inventory information to compare components.
we-online.com API
Search and access detailed specifications for electronic components from Würth Elektronik's catalog, including product categories, series information, and comprehensive article details. Quickly find the right components by browsing categories or looking up specific products with full technical data.
cityelectricsupply.com API
Search and browse City Electric Supply's product catalog across categories, view detailed product information with localized pricing and inventory based on a ZIP code, and manage a shopping cart. Access product details and real-time stock availability for any area.