Documentation

Getting Started

Quick StartAuthentication

Connected APIs

API Directory

Guides

Rate LimitsError ReferenceFAQ
Back to Portal
Documentation
v1.0 API

DataGuru API Documentation

DataGuru exposes a collection of platform-specific REST APIs that return structured, typed JSON data. Each endpoint accepts a POST request with a JSON body and responds with a consistent envelope format.

Base URL

https://api.dataguru.ccv1

All API requests should use HTTPS. HTTP requests are automatically rejected.

Getting Started

Quick Start

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

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 quota.

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:

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.

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
      }
    ]
  }
}
Security

Authentication

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 schema.

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

Used for production traffic. Live keys are charged real credits.

dg_live_*

Test Environment Keys

Used for testing integration. Returns mock data and does not consume credits.

dg_test_*

Authentication Errors

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

HTTP StatusError CodeDescription
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.
API Reference
GET/api/v1/amazon/products/search

Amazon Product Search

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

Vendor: DataGuruE-Commerce

Request Parameters

NameTypeRequirementDescription
qstringRequiredSearch query term

Request Example

curl -X GET "https://api.dataguru.cc/api/v1/amazon/products/search?q=example" \
  -H "Authorization: Api-Key YOUR_API_KEY"

Response Envelope

Every endpoint returns the extracted data wrapped in a consistent envelope, with request metadata attached.

json
{
  // ...extracted data fields...
  "_metadata": {
    "request_id": "req_amazon-products-search_a1b2c3",
    "execution_time_ms": 234,
    "endpoint": "Amazon Product Search",
    "mode": "live"
  }
}

Pricing

$0.005 / per request (USD)

Rate Limits

60 requests/minute · 10000 requests/day · 100,000 monthly quota

API Reference
GET/api/v1/google/serp

Google SERP Search

Real-time Google search engine results page (SERP).

Vendor: DataGuruSearch Engine

Request Parameters

NameTypeRequirementDescription
qstringRequiredquery parameter

Request Example

curl -X GET "https://api.dataguru.cc/api/v1/google/serp?q=example" \
  -H "Authorization: Api-Key YOUR_API_KEY"

Response Envelope

Every endpoint returns the extracted data wrapped in a consistent envelope, with request metadata attached.

json
{
  // ...extracted data fields...
  "_metadata": {
    "request_id": "req_google-serp-broker_a1b2c3",
    "execution_time_ms": 234,
    "endpoint": "Google SERP Search",
    "mode": "live"
  }
}

Pricing

$0.003 / per request (USD)

Rate Limits

60 requests/minute · 10000 requests/day · 100,000 monthly quota

Common Errors

API Reference
GET/api/v1/daraz/search

Daraz Product Search

Scrapes search results directly from Daraz Pakistan.

Vendor: DataGuruE-Commerce

Request Parameters

NameTypeRequirementDescription
qstringRequiredquery parameter

Request Example

curl -X GET "https://api.dataguru.cc/api/v1/daraz/search?q=example" \
  -H "Authorization: Api-Key YOUR_API_KEY"

Response Envelope

Every endpoint returns the extracted data wrapped in a consistent envelope, with request metadata attached.

json
{
  // ...extracted data fields...
  "_metadata": {
    "request_id": "req_daraz-product-search_a1b2c3",
    "execution_time_ms": 234,
    "endpoint": "Daraz Product Search",
    "mode": "live"
  }
}

Pricing

$0.004 / per request (USD)

Rate Limits

60 requests/minute · 10000 requests/day · 100,000 monthly quota

Common Errors

API Reference
GET/api/v1/quotes/random

Inspiring Quotes

Retrieve inspiring random quotes formatted into clean JSON.

Vendor: DataGuruUtility

Request Example

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

Response Envelope

Every endpoint returns the extracted data wrapped in a consistent envelope, with request metadata attached.

json
{
  // ...extracted data fields...
  "_metadata": {
    "request_id": "req_inspiring-quotes_a1b2c3",
    "execution_time_ms": 234,
    "endpoint": "Inspiring Quotes",
    "mode": "live"
  }
}

Pricing

$0.001 / per request (USD)

Rate Limits

60 requests/minute · 10000 requests/day · 100,000 monthly quota

Common Errors

HTTP StatusError CodeDescription
400INVALID_PARAMETERA required parameter is missing or malformed.
401UNAUTHORIZEDMissing or invalid API key.
403ENDPOINT_DISABLEDThis endpoint is currently unavailable.
429RATE_LIMIT_EXCEEDEDToo many requests — see the Retry-After header.
502PROVIDER_ERRORThe upstream provider failed. Retry with exponential backoff.
API Reference
POST/api/v1/documents/pdf-parser/jobs

PDF to JSON

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

Vendor: DataGuruDocument Processing

Request Parameters

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

Request Example

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 Envelope

Every endpoint returns the extracted data wrapped in a consistent envelope, with request metadata attached.

json
{
  // ...extracted data fields...
  "_metadata": {
    "request_id": "req_pdf-parser_a1b2c3",
    "execution_time_ms": 234,
    "endpoint": "PDF to JSON",
    "mode": "live"
  }
}

Pricing

$0.020 / per request (USD)

Rate Limits

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

Bulk Resume Parser

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

Vendor: DataGuruDocument Processing

Request 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

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 Envelope

Every endpoint returns the extracted data wrapped in a consistent envelope, with request metadata attached.

json
{
  // ...extracted data fields...
  "_metadata": {
    "request_id": "req_resume-parser_a1b2c3",
    "execution_time_ms": 234,
    "endpoint": "Bulk Resume Parser",
    "mode": "live"
  }
}

Pricing

/ per request (USD)

API Reference
GET/api/v1/amazon/search/

Amazon E-Commerce

Amazon product data extraction API

Vendor: DataGuruE-Commerce

Request Example

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

Response Envelope

Every endpoint returns the extracted data wrapped in a consistent envelope, with request metadata attached.

json
{
  // ...extracted data fields...
  "_metadata": {
    "request_id": "req_amazon-e-commerce_a1b2c3",
    "execution_time_ms": 234,
    "endpoint": "Amazon E-Commerce",
    "mode": "live"
  }
}

Pricing

$0.005 / per request (USD)

Rate Limits

60 requests/minute · 10000 requests/day · 100,000 monthly quota

Common Errors

HTTP StatusError CodeDescription
400INVALID_PARAMETERA required parameter is missing or malformed.
401UNAUTHORIZEDMissing or invalid API key.
403ENDPOINT_DISABLEDThis endpoint is currently unavailable.
429RATE_LIMIT_EXCEEDEDToo many requests — see the Retry-After header.
502PROVIDER_ERRORThe upstream provider failed. Retry with exponential backoff.
API Reference
GET/api/v1/linkedin/profile/

LinkedIn

LinkedIn Profile and Graph API

Vendor: DataGuruSocial

Request Example

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

Response Envelope

Every endpoint returns the extracted data wrapped in a consistent envelope, with request metadata attached.

json
{
  // ...extracted data fields...
  "_metadata": {
    "request_id": "req_linkedin-profile_a1b2c3",
    "execution_time_ms": 234,
    "endpoint": "LinkedIn",
    "mode": "live"
  }
}

Pricing

$0.005 / per request (USD)

Rate Limits

60 requests/minute · 10000 requests/day · 100,000 monthly quota

Common Errors

HTTP StatusError CodeDescription
400INVALID_PARAMETERA required parameter is missing or malformed.
401UNAUTHORIZEDMissing or invalid API key.
403ENDPOINT_DISABLEDThis endpoint is currently unavailable.
429RATE_LIMIT_EXCEEDEDToo many requests — see the Retry-After header.
502PROVIDER_ERRORThe upstream provider failed. Retry with exponential backoff.
Limits

Rate Limiting

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.

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.

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.

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

Best Practice: Exponential Backoff

Reference

Error Reference

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.

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

HTTP Status Codes

HTTP StatusError CodeDescription
200OKEverything worked as expected.
400BAD_REQUESTThe request was unacceptable, often due to missing a required parameter.
401UNAUTHORIZEDNo valid API key provided.
402REQUEST_FAILEDThe parameters were valid but the request failed (e.g., target platform captcha blocked us).
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.
Help

Frequently Asked Questions

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

How are requests billed?

DataGuru operates on a credit-based billing system. Live requests cost credits based on the API endpoint complexity (e.g., 5 credits for Amazon, 15 for LinkedIn). If you pass the `fallback: true` flag and we return cached data, the request is billed at a 90% discount.

What happens when I exceed my rate limit?

If you exceed your plan's concurrency or throughput limits, the API will return a 429 Too Many Requests status code. The response will include a `retry_after` field indicating how long you must wait before sending another request.

How fresh is the data?

Live API requests are executed in real-time. If you request cached data, we guarantee the data is no older than 24 hours. Our global proxies and anti-bot evasion systems ensure that the real-time data fetched is highly accurate and un-blocked.

Do I need to manage proxies?

No. DataGuru completely abstracts away proxy rotation, CAPTCHA solving, and headless browser management. You simply make a REST API request, and we return structured JSON.

Are there SDKs available?

We are currently developing official SDKs for Python, Node.js, and Go. In the meantime, the API is a standard REST interface that can be easily integrated using any HTTP client (e.g., Axios, fetch, requests).

Common Errors

HTTP StatusError CodeDescription
400INVALID_PARAMETERA required parameter is missing or malformed.
401UNAUTHORIZEDMissing or invalid API key.
403ENDPOINT_DISABLEDThis endpoint is currently unavailable.
429RATE_LIMIT_EXCEEDEDToo many requests — see the Retry-After header.
502PROVIDER_ERRORThe upstream provider failed. Retry with exponential backoff.
HTTP StatusError CodeDescription
400INVALID_PARAMETERA required parameter is missing or malformed.
401UNAUTHORIZEDMissing or invalid API key.
403ENDPOINT_DISABLEDThis endpoint is currently unavailable.
429RATE_LIMIT_EXCEEDEDToo many requests — see the Retry-After header.
502PROVIDER_ERRORThe upstream provider failed. Retry with exponential backoff.
HTTP StatusError CodeDescription
400INVALID_PARAMETERA required parameter is missing or malformed.
401UNAUTHORIZEDMissing or invalid API key.
403ENDPOINT_DISABLEDThis endpoint is currently unavailable.
429RATE_LIMIT_EXCEEDEDToo many requests — see the Retry-After header.
502PROVIDER_ERRORThe upstream provider failed. Retry with exponential backoff.

20 requests/minute · 2000 requests/day · 20,000 monthly quota

Common Errors

HTTP StatusError CodeDescription
400INVALID_PARAMETERA required parameter is missing or malformed.
401UNAUTHORIZEDMissing or invalid API key.
403ENDPOINT_DISABLEDThis endpoint is currently unavailable.
429RATE_LIMIT_EXCEEDEDToo many requests — see the Retry-After header.
502PROVIDER_ERRORThe upstream provider failed. Retry with exponential backoff.

Try it live

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

$0.030

Rate Limits

20 requests/minute · 2000 requests/day · 20,000 monthly quota

Common Errors

HTTP StatusError CodeDescription
400INVALID_PARAMETERA required parameter is missing or malformed.
401UNAUTHORIZEDMissing or invalid API key.
403ENDPOINT_DISABLEDThis endpoint is currently unavailable.
429RATE_LIMIT_EXCEEDEDToo many requests — see the Retry-After header.
502PROVIDER_ERRORThe upstream provider failed. Retry with exponential backoff.

Try it live

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

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.