SearchSERP with content

GET /v1/serp/content

Run a search and extract the content of the top results in one call. Returns SERP results with content blocks attached.

curl -G "https://api.chuger.com/v1/serp/content" \
  --data-urlencode "q=react server components" \
  --data-urlencode "max_content=10" \
  --data-urlencode "whitelist_domains[]=*.dev" \
  --data-urlencode "whitelist_domains[]=react.dev" \
  --data-urlencode "blacklist_domains[]=ads.example.com" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
{
  "search_information": {
    "query_displayed": "react server components",
    "total_results": 1230000,
    "time_taken": 0.39
  },
  "organic_results": [
    {
      "position": 1,
      "title": "React Server Components",
      "link": "https://react.dev/learn/server-components",
      "snippet": "Server Components let you...",
      "displayed_link": "react.dev",
      "favicon": "https://react.dev/favicon.ico",
      "content": {
        "url": "https://react.dev/learn/server-components",
        "success": true,
        "statusCode": 200,
        "errorMessage": null,
        "html": "<article>...</article>",
        "markdown": "# Server Components

...",
        "metadata": {
          "title": "React Server Components",
          "description": "Learn how Server Components work",
          "language": "en",
          "ogImage": "https://react.dev/og.png"
        }
      }
    }
  ],
  "related_questions": [],
  "related_searches": []
}

Run a search and extract the content of the top results in a single request. Returns the same shape as /v1/serp but with a content block attached to each organic result that was fetched.

GET https://api.chuger.com/v1/serp/content

Authentication

Bearer token in the Authorization header. See Authentication.

Cost

Two things are billed when the request succeeds:

  1. The SERP query itself
  2. One content extraction for each result actually fetched (capped by max_content and your filtering)
PlanSERPEach content fetch
Basic52
Pro52
Business52

Example on Pro with max_content=10, no filtering: 5 + (10 × 2) = 25 credits.

Always call /v1/credits/preview-cost before scaling this endpoint up.

Query parameters

query
qstring
Required

The search query. 1–100 characters.

query
locstring

Location, free-form. Max 100 characters.

query
hlstring

Interface language code. Max 10 characters.

query
glstring

Country code. Max 10 characters.

query
max_contentinteger

How many organic results to extract content for. 1–50. Defaults to 10.

query
whitelist_domainsstring[]

Only fetch content from URLs whose domain matches one of these. Supports *.example.com.

query
blacklist_domainsstring[]

Never fetch content from URLs whose domain matches one of these (takes precedence over the whitelist).

Filters apply after you get search results — they don't change what comes back from search, just whether we pull the content for each result. Domain matching supports exact matches, subdomain matches (example.com matches blog.example.com), and wildcards (*.example.com).

Example

When a result is skipped (filtered out or beyond max_content) the content field is omitted from that result. The content object matches the response shape of /v1/content.

Filtering behavior

A URL is fetched only if:

  • It isn't blacklisted
  • The whitelist is empty or contains a match
  • We haven't already hit max_content successful fetches

Domain matching is case-insensitive. *.example.com matches any subdomain (e.g. blog.example.com) as well as the bare apex (example.com). example.com (without a wildcard) matches any subdomain of example.com. URLs with unsafe hosts (raw IPs or non-default ports) are skipped automatically.

Errors

StatusWhen
401Missing / invalid token
402No plan, or insufficient credits
422Validation failed (missing q, bad max_content, etc.)
429Rate limit or monthly quota exceeded
503Search could not be completed

See Errors for the full reference.

Tips

  • Keep max_content as low as your use case allows — every additional fetch costs credits
  • Combine whitelist_domains with a small max_content to focus on trusted sources without overspending
  • If you only need search results without bodies, use /v1/serp — it's much cheaper
Was this page helpful?