Documentation

Getting Started

Quick Start
Authentication

Connected APIs

Amazon Product Search
Inspiring Quotes
PDF to JSON
Bulk Resume Parser
Amazon Keyword Search
Amazon Best Sellers
Google Search
Instagram Profile
Instagram Post
Instagram Comments
California Attorneys

Guides

Rate Limits
Error Reference
Frequently Asked Questions
Back to Portal
Documentation
DataGuru Developer Hub

API Documentation

Welcome to the DataGuru unified API documentation. Browse all guides, explore endpoints, and test parsers directly from this continuous reference.

Getting Started(2 documents)
Getting Started

Quick Start

Start integrating DataGuru in minutes with standard HTTP clients

Start integrating DataGuru in minutes. Our REST APIs allow you to extract structured data from external platforms effortlessly using standard HTTP clients.

Introduction

Start integrating DataGuru in minutes. Our REST APIs allow you to extract structured data from external platforms effortlessly using standard HTTP clients. Each endpoint accepts requests with a standard envelope format and returns structured, typed JSON data.

Base URL & Protocol

Base URL: https://api.dataguru.cc/api/v1 All API requests should use HTTPS. Plain HTTP requests are automatically rejected for security.

1. Obtain Your API Key

Before making requests, you must authenticate. Navigate to the Developer Portal to generate your first API key. Keep this key secure as it grants access to your wallet balance and API requests.

2. Make a Request

Include your API key in the Authorization header using the Api-Key scheme. Most endpoints accept GET requests with query parameters; check each endpoint's own reference page for its exact method and parameters. Here is a basic example calling the Amazon Product Search API:

Product Search Request Example

curl -G "https://api.dataguru.cc/api/v1/amazon/products/search" \
  -H "Authorization: Api-Key YOUR_API_KEY" \
  --data-urlencode "q=mechanical keyboard"

3. Process the Response

Every request returns a consistent envelope containing success, meta, and data objects.

Standard Response Envelope

json
{
  "success": true,
  "meta": {
    "request_id": "req_amz_994827103a",
    "execution_time_ms": 128,
    "total_results": 1420,
    "page": 1
  },
  "data": {
    "items": [
      {
        "asin": "B09XS7JWHH",
        "title": "Keychron K2 Wireless Mechanical Keyboard",
        "price": 89.99,
        "rating": 4.6,
        "reviews_count": 14820,
        "in_stock": true
      }
    ]
  }
}
Getting Started

Authentication

Secure your API requests using API keys

The DataGuru API uses API key authentication via the Api-Key scheme. You must include a valid API key in the headers of all requests to authenticate successfully.

Passing the API Key

Your API key should be passed in the Authorization HTTP header using the Api-Key scheme.

Authorization Header Example

http
Authorization: Api-Key dg_live_9f82b7c4a1e9382d...

Key Environments

DataGuru provides two types of API keys. Use the appropriate key depending on your environment: • **Live Environment Keys (`dg_live_*`)**: Used for production traffic. Live keys deduct the endpoint cost from your deposited USD balance. • **Test Environment Keys (`dg_test_*`)**: Used for testing integration. Returns mock data and does not deduct any funds ($0.00).

Security Best Practice

Never commit your API keys to version control or expose them in client-side code. Use server-side environment variables to keep your keys secure.

Authentication Errors

Connected APIs(11 documents)
Connected APIsPOST
/api/v1/amazon/products/search

Amazon Product Search

POST /api/v1/amazon/products/search

Search for products on Amazon with prices, ratings, and reviews.

Overview

Search for products on Amazon with prices, ratings, and reviews.

POST /api/v1/amazon/products/search

Method: POST Path: /api/v1/amazon/products/search Category: E-Commerce

Guides(3 documents)
Guides

Rate Limits

Concurrency, throughput limits, and retry handling

DataGuru uses rate limiting to prevent abuse and ensure stability for all customers. If your requests exceed your plan's concurrency or throughput limits, the API will respond with a 429 Too Many Requests error.

Rate Limiting Overview

DataGuru uses rate limiting to prevent abuse and ensure stability for all customers. If your requests exceed your plan's concurrency or throughput limits, the API will respond with a 429 Too Many Requests error.

Understanding Headers

Every API response includes headers detailing your current rate limit status. You should use these headers to pace your requests before you hit the limit.

Rate Limit Response Headers

HeaderDescription
X-RateLimit-LimitThe maximum number of requests you're permitted to make per window.
X-RateLimit-RemainingThe number of requests remaining in the current rate limit window.
X-RateLimit-ResetThe time at which the current rate limit window resets in UTC epoch seconds.

If authentication fails, the API will return one of the following error codes along with a JSON error envelope.

Authentication Error Codes

StatusCodeDescription
401UNAUTHORIZEDNo API key was provided or the key format is invalid.
403FORBIDDENThe API key exists but is revoked or lacks permissions for this endpoint.
429RATE_LIMITEDThe key has exceeded its rate limit. Retry after the indicated period.

Request Parameters

Endpoint Parameters

NameTypeRequirementDescription
product_urlstringRequiredProvide the full Amazon Product URL to scrape

Request Example

Amazon Product Search Request Examples

curl -X POST "https://api.dataguru.cc/api/v1/amazon/products/search" \
  -H "Authorization: Api-Key YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"product_url": "example"}'

Response Example

200 OK

Typical 200 OK JSON response structure with envelope metadata.

json
{
  "...": "Fields returned by the data source",
  "_metadata": {
    "request_id": "3f6c1a2e-8b4d-4c1e-9a7f-2d5e6b7c8d9e",
    "execution_time_ms": 842,
    "endpoint": "Amazon Product Search",
    "mode": "live",
    "format": "json",
    "timestamp": "2026-01-01T12:00:00+00:00"
  }
}

Asynchronous Requests

Long-running requests can be processed in the background. Add `?async=true` (or the `Prefer: respond-async` header) to receive a `job_id` immediately, then poll the job until its status is `COMPLETED`.

Async Workflow

curl -X POST "https://api.dataguru.cc/api/v1/amazon/products/search?async=true" \
  -H "Authorization: Api-Key YOUR_API_KEY"

# 202 Accepted
{
  "success": true,
  "status": "SUBMITTED",
  "job_id": "0ca215ce-244f-4b28-b481-dc1b551983c8",
  "status_url": "/api/v1/jobs/0ca215ce-244f-4b28-b481-dc1b551983c8/"
}

Pricing & Rate Limits

Endpoint Pricing

$0.001 / per successful request (USD)

Billing Active

Consumed per successful call: 1 request unit(s), 1 credit(s).

Endpoint Rate Limits

Per Minute60
Per Hour1,000
Per Day10,000
Monthly Quota100,000

Common Errors

Common HTTP Errors

StatusCodeDescription
400VALIDATION_ERRORA required parameter is missing or malformed.
401UNAUTHORIZEDMissing or invalid API key.
402INSUFFICIENT_BALANCEYour balance cannot cover this request.
403ENDPOINT_DISABLEDThis endpoint is currently unavailable.
405METHOD_NOT_ALLOWEDThe endpoint was called with the wrong HTTP method.
429RATE_LIMIT_EXCEEDEDToo many requests. See the Retry-After header.
502PROVIDER_ERRORThe upstream data source failed. Retry with exponential backoff.
Connected APIsGET
/api/v1/quotes/random

Inspiring Quotes

GET /api/v1/quotes/random

Retrieve inspiring random quotes formatted into clean JSON.

Overview

Retrieve inspiring random quotes formatted into clean JSON.

GET /api/v1/quotes/random

Method: GET Path: /api/v1/quotes/random Category: Utility

Request Parameters

Endpoint Parameters

No parameters required for this endpoint.

Request Example

Inspiring Quotes Request Examples

curl -X GET "https://api.dataguru.cc/api/v1/quotes/random" \
  -H "Authorization: Api-Key YOUR_API_KEY"

Response Example

200 OK

Typical 200 OK JSON response structure with envelope metadata.

json
{
  "data": [
    {
      "quote": "...",
      "author": "..."
    }
  ],
  "_metadata": {
    "request_id": "3f6c1a2e-8b4d-4c1e-9a7f-2d5e6b7c8d9e",
    "execution_time_ms": 842,
    "endpoint": "Inspiring Quotes",
    "mode": "live",
    "format": "json",
    "timestamp": "2026-01-01T12:00:00+00:00"
  }
}

Asynchronous Requests

Long-running requests can be processed in the background. Add `?async=true` (or the `Prefer: respond-async` header) to receive a `job_id` immediately, then poll the job until its status is `COMPLETED`.

Async Workflow

curl -X GET "https://api.dataguru.cc/api/v1/quotes/random?async=true" \
  -H "Authorization: Api-Key YOUR_API_KEY"

# 202 Accepted
{
  "success": true,
  "status": "SUBMITTED",
  "job_id": "0ca215ce-244f-4b28-b481-dc1b551983c8",
  "status_url": "/api/v1/jobs/0ca215ce-244f-4b28-b481-dc1b551983c8/"
}

Pricing & Rate Limits

Endpoint Pricing

$0.00 / per request (USD)

Billing Active

Consumed per successful call: 1 request unit(s), 1 credit(s).

Endpoint Rate Limits

Standard tier rate limits apply.

Common Errors

Common HTTP Errors

StatusCodeDescription
400VALIDATION_ERRORA required parameter is missing or malformed.
401UNAUTHORIZEDMissing or invalid API key.
402INSUFFICIENT_BALANCEYour balance cannot cover this request.
403ENDPOINT_DISABLEDThis endpoint is currently unavailable.
405METHOD_NOT_ALLOWEDThe endpoint was called with the wrong HTTP method.
429RATE_LIMIT_EXCEEDEDToo many requests. See the Retry-After header.
502PROVIDER_ERRORThe upstream data source failed. Retry with exponential backoff.
Connected APIsPOST
/api/v1/documents/pdf-parser/jobs

PDF to JSON

POST /api/v1/documents/pdf-parser/jobs

Upload a PDF and get back structured JSON/CSV. Async: submit a job, then poll for the result.

Overview

Upload a PDF and get back structured JSON/CSV. Async: submit a job, then poll for the result.

POST /api/v1/documents/pdf-parser/jobs

Method: POST Path: /api/v1/documents/pdf-parser/jobs Category: Document Processing

Request Parameters

Endpoint Parameters

NameTypeRequirementDescription
filefileRequiredThe PDF file to extract.
key_fieldsstringOptionalComma-separated list of fields to extract.

Request Example

PDF to JSON Request Examples

curl -X POST "https://api.dataguru.cc/api/v1/documents/pdf-parser/jobs" \
  -H "Authorization: Api-Key YOUR_API_KEY" \
  -F "file=@/path/to/file.pdf" \
  -F "key_fields=example"

Response Example

200 OK

Typical 200 OK JSON response structure with envelope metadata.

json
{
  "...": "Fields returned by the data source",
  "_metadata": {
    "request_id": "3f6c1a2e-8b4d-4c1e-9a7f-2d5e6b7c8d9e",
    "execution_time_ms": 842,
    "endpoint": "PDF to JSON",
    "mode": "live",
    "format": "json",
    "timestamp": "2026-01-01T12:00:00+00:00"
  }
}

Asynchronous Requests

Long-running requests can be processed in the background. Add `?async=true` (or the `Prefer: respond-async` header) to receive a `job_id` immediately, then poll the job until its status is `COMPLETED`.

Async Workflow

curl -X POST "https://api.dataguru.cc/api/v1/documents/pdf-parser/jobs?async=true" \
  -H "Authorization: Api-Key YOUR_API_KEY"

# 202 Accepted
{
  "success": true,
  "status": "SUBMITTED",
  "job_id": "0ca215ce-244f-4b28-b481-dc1b551983c8",
  "status_url": "/api/v1/jobs/0ca215ce-244f-4b28-b481-dc1b551983c8/"
}

Pricing & Rate Limits

Endpoint Pricing

$0.02 / per request (USD)

Billing Active

Consumed per successful call: 1 request unit(s), 1 credit(s).

Endpoint Rate Limits

Per Minute20
Per Hour300
Per Day2,000
Monthly Quota20,000

Common Errors

Common HTTP Errors

StatusCodeDescription
400VALIDATION_ERRORA required parameter is missing or malformed.
401UNAUTHORIZEDMissing or invalid API key.
402INSUFFICIENT_BALANCEYour balance cannot cover this request.
403ENDPOINT_DISABLEDThis endpoint is currently unavailable.
405METHOD_NOT_ALLOWEDThe endpoint was called with the wrong HTTP method.
429RATE_LIMIT_EXCEEDEDToo many requests. See the Retry-After header.
502PROVIDER_ERRORThe upstream data source failed. Retry with exponential backoff.

Interactive Test Console

Upload a document directly to test this parsing endpoint and view real-time polling results.

Try it live

Don't have one? Create an API key. Keys are only shown once at creation.

Connected APIsPOST
/api/v1/documents/resume-parser/jobs

Bulk Resume Parser

POST /api/v1/documents/resume-parser/jobs

Upload a resume and get back structured candidate data (contact info, skills, experience, education). Async: submit a job, then poll for the result.

Overview

Upload a resume and get back structured candidate data (contact info, skills, experience, education). Async: submit a job, then poll for the result.

POST /api/v1/documents/resume-parser/jobs

Method: POST Path: /api/v1/documents/resume-parser/jobs Category: Document Processing

Request Parameters

Endpoint Parameters

NameTypeRequirementDescription
filefileRequiredThe resume file (PDF) to parse.
job_descriptionstringOptionalJob description to score the resume against.
job_titlestringOptionalJob title to score the resume against.

Request Example

Bulk Resume Parser Request Examples

curl -X POST "https://api.dataguru.cc/api/v1/documents/resume-parser/jobs" \
  -H "Authorization: Api-Key YOUR_API_KEY" \
  -F "file=@/path/to/file.pdf" \
  -F "job_description=example" \
  -F "job_title=example"

Response Example

200 OK

Typical 200 OK JSON response structure with envelope metadata.

json
{
  "...": "Fields returned by the data source",
  "_metadata": {
    "request_id": "3f6c1a2e-8b4d-4c1e-9a7f-2d5e6b7c8d9e",
    "execution_time_ms": 842,
    "endpoint": "Bulk Resume Parser",
    "mode": "live",
    "format": "json",
    "timestamp": "2026-01-01T12:00:00+00:00"
  }
}

Asynchronous Requests

Long-running requests can be processed in the background. Add `?async=true` (or the `Prefer: respond-async` header) to receive a `job_id` immediately, then poll the job until its status is `COMPLETED`.

Async Workflow

curl -X POST "https://api.dataguru.cc/api/v1/documents/resume-parser/jobs?async=true" \
  -H "Authorization: Api-Key YOUR_API_KEY"

# 202 Accepted
{
  "success": true,
  "status": "SUBMITTED",
  "job_id": "0ca215ce-244f-4b28-b481-dc1b551983c8",
  "status_url": "/api/v1/jobs/0ca215ce-244f-4b28-b481-dc1b551983c8/"
}

Pricing & Rate Limits

Endpoint Pricing

$0.03 / per request (USD)

Billing Active

Consumed per successful call: 1 request unit(s), 1 credit(s).

Endpoint Rate Limits

Per Minute20
Per Hour300
Per Day2,000
Monthly Quota20,000

Common Errors

Common HTTP Errors

StatusCodeDescription
400VALIDATION_ERRORA required parameter is missing or malformed.
401UNAUTHORIZEDMissing or invalid API key.
402INSUFFICIENT_BALANCEYour balance cannot cover this request.
403ENDPOINT_DISABLEDThis endpoint is currently unavailable.
405METHOD_NOT_ALLOWEDThe endpoint was called with the wrong HTTP method.
429RATE_LIMIT_EXCEEDEDToo many requests. See the Retry-After header.
502PROVIDER_ERRORThe upstream data source failed. Retry with exponential backoff.

Interactive Test Console

Upload a document directly to test this parsing endpoint and view real-time polling results.

Try it live

Don't have one? Create an API key. Keys are only shown once at creation.

Connected APIsPOST
/api/v1/amazon/keyword-search

Amazon Keyword Search

POST /api/v1/amazon/keyword-search

Search Amazon by keyword and get matching products with titles, prices, ratings and review counts.

Overview

Search Amazon by keyword and get matching products with titles, prices, ratings and review counts.

POST /api/v1/amazon/keyword-search

Method: POST Path: /api/v1/amazon/keyword-search Category: E-Commerce

Request Parameters

Endpoint Parameters

NameTypeRequirementDescription
limitintegerOptionalMaximum number of products to return (1-50).
locationstringOptionalTwo-letter country code to localise results (e.g. US, GB, DE).
querystringRequiredSearch keywords, e.g. "wireless mouse".

Request Example

Amazon Keyword Search Request Examples

curl -X POST "https://api.dataguru.cc/api/v1/amazon/keyword-search" \
  -H "Authorization: Api-Key YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"limit": "10", "location": "US", "query": "example"}'

Response Example

200 OK

Typical 200 OK JSON response structure with envelope metadata.

json
{
  "...": "Fields returned by the data source",
  "_metadata": {
    "request_id": "3f6c1a2e-8b4d-4c1e-9a7f-2d5e6b7c8d9e",
    "execution_time_ms": 842,
    "endpoint": "Amazon Keyword Search",
    "mode": "live",
    "format": "json",
    "timestamp": "2026-01-01T12:00:00+00:00"
  }
}

Asynchronous Requests

Long-running requests can be processed in the background. Add `?async=true` (or the `Prefer: respond-async` header) to receive a `job_id` immediately, then poll the job until its status is `COMPLETED`.

Async Workflow

curl -X POST "https://api.dataguru.cc/api/v1/amazon/keyword-search?async=true" \
  -H "Authorization: Api-Key YOUR_API_KEY"

# 202 Accepted
{
  "success": true,
  "status": "SUBMITTED",
  "job_id": "0ca215ce-244f-4b28-b481-dc1b551983c8",
  "status_url": "/api/v1/jobs/0ca215ce-244f-4b28-b481-dc1b551983c8/"
}

Pricing & Rate Limits

Endpoint Pricing

$0.02 / per successful request (USD)

Billing Active

Consumed per successful call: 1 request unit(s), 1 credit(s).

Endpoint Rate Limits

Per Minute60
Per Hour1,000
Per Day10,000
Monthly Quota100,000

Common Errors

Common HTTP Errors

StatusCodeDescription
400VALIDATION_ERRORA required parameter is missing or malformed.
401UNAUTHORIZEDMissing or invalid API key.
402INSUFFICIENT_BALANCEYour balance cannot cover this request.
403ENDPOINT_DISABLEDThis endpoint is currently unavailable.
405METHOD_NOT_ALLOWEDThe endpoint was called with the wrong HTTP method.
429RATE_LIMIT_EXCEEDEDToo many requests. See the Retry-After header.
502PROVIDER_ERRORThe upstream data source failed. Retry with exponential backoff.
Connected APIsPOST
/api/v1/amazon/bestsellers

Amazon Best Sellers

POST /api/v1/amazon/bestsellers

Get the current Amazon Best Sellers ranking for a category, with rank, title, price and rating.

Overview

Get the current Amazon Best Sellers ranking for a category, with rank, title, price and rating.

POST /api/v1/amazon/bestsellers

Method: POST Path: /api/v1/amazon/bestsellers Category: E-Commerce

Request Parameters

Endpoint Parameters

NameTypeRequirementDescription
categorystringRequiredAmazon Best Sellers category slug as it appears in the URL, e.g. electronics, books, toys-and-games.
limitintegerOptionalMaximum number of ranked products to return (1-50).
locationstringOptionalTwo-letter country code to localise results (e.g. US, GB, DE).

Request Example

Amazon Best Sellers Request Examples

curl -X POST "https://api.dataguru.cc/api/v1/amazon/bestsellers" \
  -H "Authorization: Api-Key YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"category": "example", "limit": "10", "location": "US"}'

Response Example

200 OK

Typical 200 OK JSON response structure with envelope metadata.

json
{
  "...": "Fields returned by the data source",
  "_metadata": {
    "request_id": "3f6c1a2e-8b4d-4c1e-9a7f-2d5e6b7c8d9e",
    "execution_time_ms": 842,
    "endpoint": "Amazon Best Sellers",
    "mode": "live",
    "format": "json",
    "timestamp": "2026-01-01T12:00:00+00:00"
  }
}

Asynchronous Requests

Long-running requests can be processed in the background. Add `?async=true` (or the `Prefer: respond-async` header) to receive a `job_id` immediately, then poll the job until its status is `COMPLETED`.

Async Workflow

curl -X POST "https://api.dataguru.cc/api/v1/amazon/bestsellers?async=true" \
  -H "Authorization: Api-Key YOUR_API_KEY"

# 202 Accepted
{
  "success": true,
  "status": "SUBMITTED",
  "job_id": "0ca215ce-244f-4b28-b481-dc1b551983c8",
  "status_url": "/api/v1/jobs/0ca215ce-244f-4b28-b481-dc1b551983c8/"
}

Pricing & Rate Limits

Endpoint Pricing

$0.02 / per successful request (USD)

Billing Active

Consumed per successful call: 1 request unit(s), 1 credit(s).

Endpoint Rate Limits

Per Minute60
Per Hour1,000
Per Day10,000
Monthly Quota100,000

Common Errors

Common HTTP Errors

StatusCodeDescription
400VALIDATION_ERRORA required parameter is missing or malformed.
401UNAUTHORIZEDMissing or invalid API key.
402INSUFFICIENT_BALANCEYour balance cannot cover this request.
403ENDPOINT_DISABLEDThis endpoint is currently unavailable.
405METHOD_NOT_ALLOWEDThe endpoint was called with the wrong HTTP method.
429RATE_LIMIT_EXCEEDEDToo many requests. See the Retry-After header.
502PROVIDER_ERRORThe upstream data source failed. Retry with exponential backoff.
Connected APIsPOST
/api/v1/google/search

Google Search

POST /api/v1/google/search

Run a Google web search and get the organic results with titles, links and snippets.

Overview

Run a Google web search and get the organic results with titles, links and snippets.

POST /api/v1/google/search

Method: POST Path: /api/v1/google/search Category: Search Engine

Request Parameters

Endpoint Parameters

NameTypeRequirementDescription
countrystringOptionalCountry code to localise results, e.g. us, gb, de.
languagestringOptionalInterface language code, e.g. en, de, fr.
num_resultsintegerOptionalNumber of organic results to return (1-50).
querystringRequiredSearch query, e.g. "what is dns".

Request Example

Google Search Request Examples

curl -X POST "https://api.dataguru.cc/api/v1/google/search" \
  -H "Authorization: Api-Key YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"country": "us", "language": "en", "num_results": "10", "query": "example"}'

Response Example

200 OK

Typical 200 OK JSON response structure with envelope metadata.

json
{
  "...": "Fields returned by the data source",
  "_metadata": {
    "request_id": "3f6c1a2e-8b4d-4c1e-9a7f-2d5e6b7c8d9e",
    "execution_time_ms": 842,
    "endpoint": "Google Search",
    "mode": "live",
    "format": "json",
    "timestamp": "2026-01-01T12:00:00+00:00"
  }
}

Asynchronous Requests

Long-running requests can be processed in the background. Add `?async=true` (or the `Prefer: respond-async` header) to receive a `job_id` immediately, then poll the job until its status is `COMPLETED`.

Async Workflow

curl -X POST "https://api.dataguru.cc/api/v1/google/search?async=true" \
  -H "Authorization: Api-Key YOUR_API_KEY"

# 202 Accepted
{
  "success": true,
  "status": "SUBMITTED",
  "job_id": "0ca215ce-244f-4b28-b481-dc1b551983c8",
  "status_url": "/api/v1/jobs/0ca215ce-244f-4b28-b481-dc1b551983c8/"
}

Pricing & Rate Limits

Endpoint Pricing

$0.02 / per successful request (USD)

Billing Active

Consumed per successful call: 1 request unit(s), 1 credit(s).

Endpoint Rate Limits

Per Minute60
Per Hour1,000
Per Day10,000
Monthly Quota100,000

Common Errors

Common HTTP Errors

StatusCodeDescription
400VALIDATION_ERRORA required parameter is missing or malformed.
401UNAUTHORIZEDMissing or invalid API key.
402INSUFFICIENT_BALANCEYour balance cannot cover this request.
403ENDPOINT_DISABLEDThis endpoint is currently unavailable.
405METHOD_NOT_ALLOWEDThe endpoint was called with the wrong HTTP method.
429RATE_LIMIT_EXCEEDEDToo many requests. See the Retry-After header.
502PROVIDER_ERRORThe upstream data source failed. Retry with exponential backoff.
Connected APIsPOST
/api/v1/instagram/profile

Instagram Profile

POST /api/v1/instagram/profile

Get a public Instagram profile: name, bio, link, follower and following counts and more.

Overview

Get a public Instagram profile: name, bio, link, follower and following counts and more.

POST /api/v1/instagram/profile

Method: POST Path: /api/v1/instagram/profile Category: Social Media

Request Parameters

Endpoint Parameters

NameTypeRequirementDescription
profile_urlstringRequiredPublic profile URL, e.g. https://www.instagram.com/nasa/

Request Example

Instagram Profile Request Examples

curl -X POST "https://api.dataguru.cc/api/v1/instagram/profile" \
  -H "Authorization: Api-Key YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"profile_url": "example"}'

Response Example

200 OK

Typical 200 OK JSON response structure with envelope metadata.

json
{
  "...": "Fields returned by the data source",
  "_metadata": {
    "request_id": "3f6c1a2e-8b4d-4c1e-9a7f-2d5e6b7c8d9e",
    "execution_time_ms": 842,
    "endpoint": "Instagram Profile",
    "mode": "live",
    "format": "json",
    "timestamp": "2026-01-01T12:00:00+00:00"
  }
}

Asynchronous Requests

Long-running requests can be processed in the background. Add `?async=true` (or the `Prefer: respond-async` header) to receive a `job_id` immediately, then poll the job until its status is `COMPLETED`.

Async Workflow

curl -X POST "https://api.dataguru.cc/api/v1/instagram/profile?async=true" \
  -H "Authorization: Api-Key YOUR_API_KEY"

# 202 Accepted
{
  "success": true,
  "status": "SUBMITTED",
  "job_id": "0ca215ce-244f-4b28-b481-dc1b551983c8",
  "status_url": "/api/v1/jobs/0ca215ce-244f-4b28-b481-dc1b551983c8/"
}

Pricing & Rate Limits

Endpoint Pricing

$0.002 / per successful request (USD)

Billing Active

Consumed per successful call: 1 request unit(s), 1 credit(s).

Endpoint Rate Limits

Per Minute60
Per Hour1,000
Per Day10,000
Monthly Quota100,000

Common Errors

Common HTTP Errors

StatusCodeDescription
400VALIDATION_ERRORA required parameter is missing or malformed.
401UNAUTHORIZEDMissing or invalid API key.
402INSUFFICIENT_BALANCEYour balance cannot cover this request.
403ENDPOINT_DISABLEDThis endpoint is currently unavailable.
405METHOD_NOT_ALLOWEDThe endpoint was called with the wrong HTTP method.
429RATE_LIMIT_EXCEEDEDToo many requests. See the Retry-After header.
502PROVIDER_ERRORThe upstream data source failed. Retry with exponential backoff.
Connected APIsPOST
/api/v1/instagram/post

Instagram Post

POST /api/v1/instagram/post

Get the details of a public Instagram post or reel: caption, hashtags, tagged users, media and engagement.

Overview

Get the details of a public Instagram post or reel: caption, hashtags, tagged users, media and engagement.

POST /api/v1/instagram/post

Method: POST Path: /api/v1/instagram/post Category: Social Media

Request Parameters

Endpoint Parameters

NameTypeRequirementDescription
post_urlstringRequiredPublic post or reel URL, e.g. https://www.instagram.com/p/SHORTCODE/

Request Example

Instagram Post Request Examples

curl -X POST "https://api.dataguru.cc/api/v1/instagram/post" \
  -H "Authorization: Api-Key YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"post_url": "example"}'

Response Example

200 OK

Typical 200 OK JSON response structure with envelope metadata.

json
{
  "...": "Fields returned by the data source",
  "_metadata": {
    "request_id": "3f6c1a2e-8b4d-4c1e-9a7f-2d5e6b7c8d9e",
    "execution_time_ms": 842,
    "endpoint": "Instagram Post",
    "mode": "live",
    "format": "json",
    "timestamp": "2026-01-01T12:00:00+00:00"
  }
}

Asynchronous Requests

Long-running requests can be processed in the background. Add `?async=true` (or the `Prefer: respond-async` header) to receive a `job_id` immediately, then poll the job until its status is `COMPLETED`.

Async Workflow

curl -X POST "https://api.dataguru.cc/api/v1/instagram/post?async=true" \
  -H "Authorization: Api-Key YOUR_API_KEY"

# 202 Accepted
{
  "success": true,
  "status": "SUBMITTED",
  "job_id": "0ca215ce-244f-4b28-b481-dc1b551983c8",
  "status_url": "/api/v1/jobs/0ca215ce-244f-4b28-b481-dc1b551983c8/"
}

Pricing & Rate Limits

Endpoint Pricing

$0.02 / per successful request (USD)

Billing Active

Consumed per successful call: 1 request unit(s), 1 credit(s).

Endpoint Rate Limits

Per Minute60
Per Hour1,000
Per Day10,000
Monthly Quota100,000

Common Errors

Common HTTP Errors

StatusCodeDescription
400VALIDATION_ERRORA required parameter is missing or malformed.
401UNAUTHORIZEDMissing or invalid API key.
402INSUFFICIENT_BALANCEYour balance cannot cover this request.
403ENDPOINT_DISABLEDThis endpoint is currently unavailable.
405METHOD_NOT_ALLOWEDThe endpoint was called with the wrong HTTP method.
429RATE_LIMIT_EXCEEDEDToo many requests. See the Retry-After header.
502PROVIDER_ERRORThe upstream data source failed. Retry with exponential backoff.
Connected APIsPOST
/api/v1/instagram/comments

Instagram Comments

POST /api/v1/instagram/comments

Get the public comments on an Instagram post or reel.

Overview

Get the public comments on an Instagram post or reel.

POST /api/v1/instagram/comments

Method: POST Path: /api/v1/instagram/comments Category: Social Media

Request Parameters

Endpoint Parameters

NameTypeRequirementDescription
max_commentsintegerOptionalMaximum number of comments to return (1-500).
post_urlstringRequiredPublic post or reel URL, e.g. https://www.instagram.com/p/SHORTCODE/

Request Example

Instagram Comments Request Examples

curl -X POST "https://api.dataguru.cc/api/v1/instagram/comments" \
  -H "Authorization: Api-Key YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"max_comments": "50", "post_url": "example"}'

Response Example

200 OK

Typical 200 OK JSON response structure with envelope metadata.

json
{
  "...": "Fields returned by the data source",
  "_metadata": {
    "request_id": "3f6c1a2e-8b4d-4c1e-9a7f-2d5e6b7c8d9e",
    "execution_time_ms": 842,
    "endpoint": "Instagram Comments",
    "mode": "live",
    "format": "json",
    "timestamp": "2026-01-01T12:00:00+00:00"
  }
}

Asynchronous Requests

Long-running requests can be processed in the background. Add `?async=true` (or the `Prefer: respond-async` header) to receive a `job_id` immediately, then poll the job until its status is `COMPLETED`.

Async Workflow

curl -X POST "https://api.dataguru.cc/api/v1/instagram/comments?async=true" \
  -H "Authorization: Api-Key YOUR_API_KEY"

# 202 Accepted
{
  "success": true,
  "status": "SUBMITTED",
  "job_id": "0ca215ce-244f-4b28-b481-dc1b551983c8",
  "status_url": "/api/v1/jobs/0ca215ce-244f-4b28-b481-dc1b551983c8/"
}

Pricing & Rate Limits

Endpoint Pricing

$0.02 / per successful request (USD)

Billing Active

Consumed per successful call: 1 request unit(s), 1 credit(s).

Endpoint Rate Limits

Per Minute60
Per Hour1,000
Per Day10,000
Monthly Quota100,000

Common Errors

Common HTTP Errors

StatusCodeDescription
400VALIDATION_ERRORA required parameter is missing or malformed.
401UNAUTHORIZEDMissing or invalid API key.
402INSUFFICIENT_BALANCEYour balance cannot cover this request.
403ENDPOINT_DISABLEDThis endpoint is currently unavailable.
405METHOD_NOT_ALLOWEDThe endpoint was called with the wrong HTTP method.
429RATE_LIMIT_EXCEEDEDToo many requests. See the Retry-After header.
502PROVIDER_ERRORThe upstream data source failed. Retry with exponential backoff.
Connected APIsGET
/api/v1/california/attorneys

California Attorneys

GET /api/v1/california/attorneys

Search licensed attorneys of the State Bar of California by bar number, name, location, practice area or law school. Returns license status, admission date, contact details, practice areas, languages, certified specialties and disciplinary history.

Overview

Search licensed attorneys of the State Bar of California by bar number, name, location, practice area or law school. Returns license status, admission date, contact details, practice areas, languages, certified specialties and disciplinary history.

GET /api/v1/california/attorneys

Method: GET Path: /api/v1/california/attorneys Category: Legal

Request Parameters

Endpoint Parameters

NameTypeRequirementDescription
bar_numberstringOptionalState Bar number, e.g. 115321.
citystringOptionalCity of the registered address, e.g. Los Angeles.
first_namestringOptionalFirst name or its beginning.
last_namestringOptionalLast name or its beginning, e.g. Smi.
law_schoolstringOptionalPart of the law school name, e.g. Stanford.
pageintegerOptionalPage number (default 1).
page_sizeintegerOptionalResults per page, 1-100 (default 20).
practice_areastringOptionalExact practice area as listed by the State Bar, e.g. Immigration.
qstringOptionalFree-text search across name, firm, city, practice areas, law school and bar number.
statestringOptionalTwo-letter state of the registered address, e.g. CA.
zipstringOptionalZIP code or its beginning, e.g. 900.

Request Example

California Attorneys Request Examples

curl -X GET "https://api.dataguru.cc/api/v1/california/attorneys?bar_number=example&city=example&first_name=example&last_name=example&law_school=example&page=1&page_size=1&practice_area=example&q=example&state=example&zip=example" \
  -H "Authorization: Api-Key YOUR_API_KEY"

Response Example

200 OK

Typical 200 OK JSON response structure with envelope metadata.

json
{
  "...": "Fields returned by the data source",
  "_metadata": {
    "request_id": "3f6c1a2e-8b4d-4c1e-9a7f-2d5e6b7c8d9e",
    "execution_time_ms": 842,
    "endpoint": "California Attorneys",
    "mode": "live",
    "format": "json",
    "timestamp": "2026-01-01T12:00:00+00:00"
  }
}

Asynchronous Requests

Long-running requests can be processed in the background. Add `?async=true` (or the `Prefer: respond-async` header) to receive a `job_id` immediately, then poll the job until its status is `COMPLETED`.

Async Workflow

curl -X GET "https://api.dataguru.cc/api/v1/california/attorneys?async=true" \
  -H "Authorization: Api-Key YOUR_API_KEY"

# 202 Accepted
{
  "success": true,
  "status": "SUBMITTED",
  "job_id": "0ca215ce-244f-4b28-b481-dc1b551983c8",
  "status_url": "/api/v1/jobs/0ca215ce-244f-4b28-b481-dc1b551983c8/"
}

Pricing & Rate Limits

Endpoint Pricing

$0.001 / per record (USD)

Billing Active

Consumed per successful call: 1 request unit(s), 1 credit(s).

Endpoint Rate Limits

Per Minute60
Per Hour1,000
Per Day10,000
Monthly Quota100,000

Common Errors

Common HTTP Errors

StatusCodeDescription
400VALIDATION_ERRORA required parameter is missing or malformed.
401UNAUTHORIZEDMissing or invalid API key.
402INSUFFICIENT_BALANCEYour balance cannot cover this request.
403ENDPOINT_DISABLEDThis endpoint is currently unavailable.
405METHOD_NOT_ALLOWEDThe endpoint was called with the wrong HTTP method.
429RATE_LIMIT_EXCEEDEDToo many requests. See the Retry-After header.
502PROVIDER_ERRORThe upstream data source failed. Retry with exponential backoff.

Handling 429 Errors

If you receive a 429 status code, your code should pause execution. The error payload includes a retry_after field indicating how many seconds to wait.

Rate Limit Error Payload

json
{
  "success": false,
  "error": {
    "code": "RATE_LIMITED",
    "message": "Too many requests. Please retry after 14 seconds.",
    "retry_after": 14
  }
}

Best Practice: Exponential Backoff

When integrating with DataGuru in production, we strongly recommend implementing an exponential backoff algorithm with jitter. This ensures your application handles spikes gracefully and automatically recovers from rate limiting without human intervention.

Guides

Error Reference

Standard HTTP status codes and error envelopes

DataGuru uses conventional HTTP response codes to indicate the success or failure of an API request. Codes in the 2xx range indicate success, 4xx indicate client error, and 5xx indicate server errors.

HTTP Status Codes & Errors

DataGuru uses conventional HTTP response codes to indicate the success or failure of an API request. In general, codes in the 2xx range indicate success, codes in the 4xx range indicate an error that failed given the information provided, and codes in the 5xx range indicate an error with our servers.

Standard Error Envelope

When an error occurs, the API returns a JSON envelope containing a machine-readable code and a human-readable message.

Error Response Structure

json
{
  "success": false,
  "error": {
    "code": "RATE_LIMITED",
    "message": "Too many requests. Please retry after 60 seconds.",
    "retry_after": 60
  }
}

Error Code Reference

Standard Error Codes

StatusCodeDescription
200OKEverything worked as expected.
400BAD_REQUESTThe request was unacceptable, often due to missing a required parameter.
401UNAUTHORIZEDNo valid API key provided.
402INSUFFICIENT_BALANCEInsufficient balance in your USD wallet to execute this endpoint.
403FORBIDDENThe API key doesn't have permissions to perform the request.
404NOT_FOUNDThe requested resource doesn't exist.
409CONFLICTThe request conflicts with another request.
429RATE_LIMITEDToo many requests hit the API too quickly.
500INTERNAL_ERRORSomething went wrong on DataGuru's end.
503UPSTREAM_ERRORThe target platform is down or unreachable.
Guides

Frequently Asked Questions

Billing, proxy management, fresh data, and SDKs

Common questions and answers about integrating and using the DataGuru API.

Frequently Asked Questions

Common questions and answers about integrating and using the DataGuru API.

DataGuru FAQ Items

DataGuru operates on a direct USD balance deposit system. Each API endpoint has a transparent USD cost configured per request (e.g., $0.005 for Amazon, $0.015 for LinkedIn, $0.002 for Google Search). When a request succeeds (HTTP 200), that exact amount is automatically deducted from your deposited USD balance. Failed requests are never charged ($0.0000).