Data API
Endpoint Examples
Data API
Discover and call NanoGPT data tools through one stable endpoint family
GET
Data API
Documentation Index
Fetch the complete documentation index at: https://docs.nano-gpt.com/llms.txt
Use this file to discover all available pages before exploring further.
Overview
NanoGPT exposes a unified Data API under/api/v1/data. It gives customers one discoverable entry point for web search, URL scraping, maps data, social data, and business enrichment.
The Data API is a wrapper around the existing direct endpoints. It does not change the underlying response bodies, validation rules, billing, rate limits, async behavior, provider options, authentication, or x402 behavior unless noted here. Direct endpoints remain available for compatibility.
Base URL
Authentication
Use the same NanoGPT API key authentication as existing API routes:Discovery
List available Data API endpoints:Example catalog response
Endpoint Metadata
For endpoints that do not supportGET, calling their Data API path with GET returns the public metadata object instead of dispatching the tool.
GET, the request is forwarded to the underlying endpoint.
Calling Endpoints
The Data API supports path-style dispatch and body-style dispatch.Path-style dispatch
Use a stable Data API path and send the underlying endpoint’s normal input body.Body-style dispatch
UsePOST /api/v1/data and specify the target endpoint in the request body.
endpoint, id, or type.
Endpoint input can be provided in an input object:
input is present, it is forwarded. If data is present and input is absent, data is forwarded. Otherwise, all fields except endpoint, id, type, input, and data are forwarded as the endpoint input.
Request Forwarding Behavior
The Data API:- Preserves request query parameters.
- Preserves request headers except hop-by-hop headers such as
connection,content-length,host,keep-alive,transfer-encoding, andupgrade. - Forces
Content-Type: application/jsonwhen it forwards a JSON body. - Forwards JSON request bodies to
POSTroutes. - Allows empty-body path-style
POSTrequests and forwards{}. - Requires a valid JSON body for body-style
POST /api/v1/data. - Adds tracking headers to dispatched responses.
Response Headers
Dispatched responses include:Error Format
Errors generated by the Data API wrapper use this shape:| Status | Code | Meaning |
|---|---|---|
400 | invalid_json | Request body is missing or invalid JSON where JSON is required. |
400 | invalid_body | Body-style dispatch body is not an object. |
400 | missing_endpoint | Body-style dispatch did not include endpoint, id, or type. |
404 | unknown_endpoint | Endpoint id or path is not recognized. |
405 | method_not_allowed | Endpoint exists but does not support the requested method. |
500 | unsupported_data_endpoint | Catalog entry exists but no dispatcher implementation matched it. |
Endpoint Catalog
| Endpoint ID | Data API Path | Direct Endpoint | Methods | Category | Provider | Pricing Note |
|---|---|---|---|---|---|---|
web.search | /api/v1/data/web/search | /api/web | POST | search | NanoGPT | Usage-based; estimated from provider, depth, and partner markup. |
url.scrape | /api/v1/data/url/scrape | /api/scrape-urls | POST | scraping | NanoGPT | Per URL, with higher pricing for stealth mode. |
firecrawl | /api/v1/data/firecrawl | /api/v1/firecrawl | POST | scraping | Firecrawl | Credit-based Firecrawl pricing with NanoGPT markup. |
google_maps.search | /api/v1/data/google-maps/search | /api/v1/googlemaps | GET, POST | maps | Apify | Apify charged-event pricing with NanoGPT markup. |
google_maps.reviews | /api/v1/data/google-maps/reviews | /api/v1/googlemaps/reviews | POST | maps | Apify | Apify charged-event pricing with NanoGPT markup. |
reddit.scrape | /api/v1/data/reddit | /api/v1/reddit | POST | social | Apify | Apify charged-event pricing with NanoGPT markup. |
linkedin.profile | /api/v1/data/linkedin/profile | /api/v1/linkedin/profile | POST | business | Apify | Apify charged-event pricing with NanoGPT markup. |
instagram.profile | /api/v1/data/instagram/profile | /api/v1/instagram/profile | POST | social | Apify | Apify charged-event pricing with NanoGPT markup. |
instagram.posts | /api/v1/data/instagram/posts | /api/v1/instagram/posts | POST | social | Apify | Apify charged-event pricing with NanoGPT markup. |
instagram.reels | /api/v1/data/instagram/reels | /api/v1/instagram/reels | POST | social | Apify | Apify charged-event pricing with NanoGPT markup. |
tiktok.scrape | /api/v1/data/tiktok | /api/v1/tiktok | POST | social | Apify | Apify charged-event pricing with NanoGPT markup. |
x.read | /api/v1/data/x | /api/v1/x | GET, POST | social | NanoGPT | Endpoint-specific usage pricing. |
hunter.discover | /api/v1/data/hunter/discover | /api/v1/hunter/discover | POST | business | Hunter | Free. |
hunter.domain_search | /api/v1/data/hunter/domain-search | /api/v1/hunter/domain-search | GET, POST | business | Hunter | Hunter search-credit pricing with NanoGPT markup. |
hunter.email_finder | /api/v1/data/hunter/email-finder | /api/v1/hunter/email-finder | GET, POST | business | Hunter | Hunter search-credit pricing with NanoGPT markup. |
hunter.email_verifier | /api/v1/data/hunter/email-verifier | /api/v1/hunter/email-verifier | GET, POST | business | Hunter | Hunter verification-credit pricing with NanoGPT markup. |
hunter.person_enrichment | /api/v1/data/hunter/people/find | /api/v1/hunter/people/find | GET, POST | business | Hunter | Hunter enrichment-credit pricing with NanoGPT markup. |
hunter.company_enrichment | /api/v1/data/hunter/companies/find | /api/v1/hunter/companies/find | GET, POST | business | Hunter | Hunter enrichment-credit pricing with NanoGPT markup. |
hunter.combined_enrichment | /api/v1/data/hunter/combined/find | /api/v1/hunter/combined/find | GET, POST | business | Hunter | Hunter enrichment-credit pricing with NanoGPT markup. |
hunter.email_count | /api/v1/data/hunter/email-count | /api/v1/hunter/email-count | GET, POST | business | Hunter | Free. |
Endpoint Aliases
Body-style dispatch accepts canonical endpoint IDs and these aliases:| Alias | Resolves To |
|---|---|
googlemaps | google_maps.search |
googlemaps.search | google_maps.search |
google-maps.search | google_maps.search |
maps.search | google_maps.search |
maps.reviews | google_maps.reviews |
linkedin | linkedin.profile |
linked-in.profile | linkedin.profile |
ig.profile | instagram.profile |
ig.posts | instagram.posts |
ig.reels | instagram.reels |
twitter.read | x.read |
twitter | x.read |
x | x.read |
search | web.search |
web | web.search |
scrape | url.scrape |
urls.scrape | url.scrape |
url_scrape | url.scrape |
hunter.domain-search | hunter.domain_search |
hunter.email-finder | hunter.email_finder |
hunter.email-verifier | hunter.email_verifier |
hunter.people.find | hunter.person_enrichment |
hunter.person | hunter.person_enrichment |
hunter.company | hunter.company_enrichment |
hunter.companies.find | hunter.company_enrichment |
hunter.combined.find | hunter.combined_enrichment |
hunter.email-count | hunter.email_count |
api/v1/data/...-style strings, converting path slashes to dots, and converting hyphens to underscores.
X/Twitter Subpaths
x.read is special. The catalog lists the base X endpoint:
/api/v1/x/....
Examples:
POST requests with no body, the wrapper forwards {} and preserves the query string. This supports query-only X calls.
Examples
Web Search
Scrape URLs
Google Maps Search
GET for the same behavior exposed by the direct /api/v1/googlemaps endpoint, including polling async runs when applicable.
Hunter Domain Search
X Search With Query Parameters
POST also works for query-only X calls: