Data Extraction APIs
curl --request POST \
--url https://nano-gpt.com/api/v1/firecrawlimport requests
url = "https://nano-gpt.com/api/v1/firecrawl"
response = requests.post(url)
print(response.text)const options = {method: 'POST'};
fetch('https://nano-gpt.com/api/v1/firecrawl', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://nano-gpt.com/api/v1/firecrawl",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://nano-gpt.com/api/v1/firecrawl"
req, _ := http.NewRequest("POST", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://nano-gpt.com/api/v1/firecrawl")
.asString();require 'uri'
require 'net/http'
url = URI("https://nano-gpt.com/api/v1/firecrawl")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
response = http.request(request)
puts response.read_bodyEndpoint Examples
Data Extraction APIs
Public data extraction endpoints for web, maps, social, and email/domain intelligence workflows
POST
/
api
/
v1
/
firecrawl
Data Extraction APIs
curl --request POST \
--url https://nano-gpt.com/api/v1/firecrawlimport requests
url = "https://nano-gpt.com/api/v1/firecrawl"
response = requests.post(url)
print(response.text)const options = {method: 'POST'};
fetch('https://nano-gpt.com/api/v1/firecrawl', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://nano-gpt.com/api/v1/firecrawl",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://nano-gpt.com/api/v1/firecrawl"
req, _ := http.NewRequest("POST", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://nano-gpt.com/api/v1/firecrawl")
.asString();require 'uri'
require 'net/http'
url = URI("https://nano-gpt.com/api/v1/firecrawl")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
response = http.request(request)
puts response.read_bodyOverview
NanoGPT exposes data extraction APIs for web, maps, social, and email/domain intelligence workflows. For new integrations that need a stable, discoverable entry point across these tools, use the unified Data API under/api/v1/data. It wraps the direct endpoints documented here without changing their response bodies, billing, validation rules, async behavior, or provider-specific options.
These endpoints require API key authentication. Each request estimates a maximum charge before running. Some endpoints require maxTotalChargeUsd when the result count is unbounded.
Authentication
Use either header:Authorization: Bearer YOUR_API_KEYx-api-key: YOUR_API_KEY
Shared Billing and Runtime Behavior
- Responses include returned data plus NanoGPT billing metadata.
- Partial results may still be billed if the extraction job produced usable data before failing.
- Result limits exist, commonly up to 5,000 returned items for social and data scrapers.
- Long-running calls can take up to several minutes.
- For unbounded searches, set
maxTotalChargeUsdto cap spend. - Use
resultLimit,resultsLimit, or endpoint-specific max-count fields to keep runs bounded.
{
"data": [],
"meta": {
"nanogpt": {
"costUsd": 0.05,
"itemsReturned": 25
}
}
}
Endpoints
| Data API Path | Direct Endpoint | Method | Purpose |
|---|---|---|---|
/api/v1/data/firecrawl | /api/v1/firecrawl | POST | Web page scraping, site maps, and crawls. |
/api/v1/data/google-maps/search | /api/v1/googlemaps | GET, POST | Google Maps place search and detail extraction. |
/api/v1/data/google-maps/reviews | /api/v1/googlemaps/reviews | POST | Google Maps review extraction. |
/api/v1/data/instagram/profile | /api/v1/instagram/profile | POST | Instagram profile extraction. |
/api/v1/data/instagram/posts | /api/v1/instagram/posts | POST | Instagram post extraction. |
/api/v1/data/instagram/reels | /api/v1/instagram/reels | POST | Instagram Reels extraction. |
/api/v1/data/reddit | /api/v1/reddit | POST | Reddit post, comment, community, and user extraction. |
/api/v1/data/tiktok | /api/v1/tiktok | POST | TikTok hashtag, profile, search, and post extraction. |
/api/v1/data/linkedin/profile | /api/v1/linkedin/profile | POST | LinkedIn profile enrichment. |
/api/v1/data/hunter/{path} | /api/v1/hunter/{path} | GET, POST | Email/domain intelligence pass-through with path selection. |
| Not in Data API catalog | /api/v1/facebook/ads | POST | Facebook/Meta ad library extraction. |
The direct endpoints remain available. Use the Data API paths when you want endpoint discovery, stable public tool IDs, body-style dispatch for dynamic clients, or response headers identifying both the Data API endpoint and direct endpoint.
Web Crawling
POST https://nano-gpt.com/api/v1/firecrawl
Body
{
"operation": "scrape",
"url": "https://example.com",
"formats": ["markdown"],
"waitForFinishSecs": 120
}
Operations
scrapemapcrawl
Important Parameters
| Parameter | Description |
|---|---|
url | Required target URL. |
operation | Operation to run. Must be one of scrape, map, or crawl when provided. |
limit | Page or item limit for map and crawl. |
search | Optional search string for map. |
maxReturnedPages | Maximum pages returned for crawl. |
waitForFinishSecs | Wait time, capped at 240 seconds. |
Google Maps
POST https://nano-gpt.com/api/v1/googlemaps
Required Input
Provide at least one of:searchStringsArraystartUrlsplaceIds- scrape-all-places option, when supported
Important Parameters
maxTotalChargeUsdresultLimitmaxCrawledPlacesPerSearchscrapePlaceDetailPagescrapeContactsscrapeSocialMediaProfilesmaxReviewsmaxImages- filters such as category, rating, website availability, and closed-place handling when supported
Google Maps Reviews
POST https://nano-gpt.com/api/v1/googlemaps/reviews
Required Input
Provide at least one of:startUrlsplaceIds
Important Parameters
maxReviewsreviewsSortreviewsStartDatemaxTotalChargeUsdresultLimit
If you use
reviewsStartDate, sort reviews by newest first.Facebook Ads
POST https://nano-gpt.com/api/v1/facebook/ads
Required Input
startUrls: at least one Facebook Page URL or Meta Ad Library URL.
Important Parameters
resultsLimitactiveStatus:activeorinactivemaxTotalChargeUsdresultLimit
Instagram Profile
POST https://nano-gpt.com/api/v1/instagram/profile
Required Input
usernameorusernames: Instagram username, profile URL, or profile ID.
Important Parameters
includeAboutSectionmaxTotalChargeUsdresultLimit
Instagram Posts
POST https://nano-gpt.com/api/v1/instagram/posts
Required Input
username: one or more Instagram usernames, profile URLs, or post URLs.
Important Parameters
resultsLimitdataDetailLevel:basicDataordetailedDataskipPinnedPostsmaxTotalChargeUsdresultLimit
POST https://nano-gpt.com/api/v1/reddit
Required Input
Provide at least one of:startUrls: Reddit URLs fromreddit.comorredd.itsearches: search terms
Important Parameters
maxItemsmaxPostCountmaxCommentsmaxCommunitiesmaxUserssearchPostssearchCommentssearchCommunitiessearchUsersmaxTotalChargeUsdresultLimit
TikTok
POST https://nano-gpt.com/api/v1/tiktok
Required Input
Provide at least one of:hashtagsprofilessearchQueriespostURLs
Important Parameters
resultsPerPagemaxProfilesPerQuerysearchSection- transcription options, if exposed
maxTotalChargeUsdresultLimit
Hunter
Hunter endpoints provide pass-through style email/domain intelligence with NanoGPT billing. Users authenticate with NanoGPT; do not pass a separate Hunter API key. Supported examples include:domain-searchemail-finderemail-verifierdiscover
Endpoints
GET https://nano-gpt.com/api/v1/hunter/{path}
POST https://nano-gpt.com/api/v1/hunter/{path}
GET https://nano-gpt.com/api/v1/hunter?endpoint=domain-search
POST https://nano-gpt.com/api/v1/hunter
GET, query params are forwarded except:
api_keyapiKeyendpointpath
POST, JSON body params are forwarded. Use endpoint or path to select the target path. A nested params object is also supported.
Response Shape
{
"data": {},
"meta": {
"nanogpt": {
"endpoint": "domain-search",
"hunterSearchesBilled": 1,
"hunterVerificationsBilled": 0,
"hunterEnrichmentsBilled": 0,
"costUsd": 0.01
}
}
}
Example
curl -X POST https://nano-gpt.com/api/v1/googlemaps \
-H "Authorization: Bearer $NANOGPT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"searchStringsArray": ["coffee shops in Amsterdam"],
"resultLimit": 25,
"maxTotalChargeUsd": 1.00,
"scrapePlaceDetailPage": true
}'