Curly

AI Web Search API for agents and LLM workflows.

Connect AI agents and LLM workflows to ordered web results with titles, URLs, snippets, sitelinks, related searches, and relevant news.

  • One query and up to five pages
  • Structured JSON
  • From $0.50 per 1,000 pages

One query per run, with up to five result pages.

curl -X POST \
  "https://api.apify.com/v2/acts/curly~simple-serp-api/run-sync-get-dataset-items?format=json" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  --data '{
  "query": "recent advances in retrieval augmented generation",
  "pages": 1
}'

Keep the Apify token in a server environment variable. Never place it in public browser code.

Structured web sources for agents and applications.

  • Structured sources for agents

    Give AI agents and LLM workflows ordered titles, URLs, snippets, domains, positions, and optional sitelinks without parsing a search page.

  • Country, recency, and depth controls

    Target a supported country, narrow results to a recent window, and request one to five result pages through the same JSON contract.

  • Pay for successfully delivered pages

    Paid plans start at $0.50 per 1,000 successfully loaded result pages, plus the small Actor start charge shown on Apify.

An AI web search API with a predictable JSON contract.

Submit one query, optionally select a country or recency window, and request one to five result pages. The synchronous endpoint returns the stored dataset item as JSON.

Results preserve their displayed order and one based position. Missing optional values remain null rather than being generated or inferred.

Know which structured search fields can be returned.

Each successful query produces one dataset item. Optional fields reflect what was surfaced for that search and can be null.

FieldsPurposeAvailability
query, pagesNormalized query and successfully loaded page countEvery successful dataset item
results[].title, results[].urlDisplayed source title and absolute destination URLEvery returned listing
results[].snippet, results[].kindAvailable excerpt and organic or advertisement classificationSnippet can be null
results[].domain, results[].positionSource hostname and one based rank in the returned setEvery returned listing
results[].favicon, results[].sublinksDomain favicon and displayed sitelinks with optional snippetsWhen surfaced
relatedSearchesRelated query suggestions for follow up retrievalArray or null
news[].title, news[].url, news[].sourceRelevant surfaced news and publisher attributionWhen surfaced
news[].publishedRelative publication text shown with a news itemWhen news is returned

Plan the integration with a complete search response.

This representative response shows the complete top level contract and the optional nested structures. Real values and available fields vary by query.

[
  {
    "query": "recent advances in retrieval augmented generation",
    "pages": 1,
    "results": [
      {
        "title": "Retrieval augmented generation research",
        "url": "https://example.org/research/retrieval-augmented-generation",
        "snippet": "A summary of recent retrieval augmented generation research.",
        "kind": "organic",
        "domain": "example.org",
        "favicon": "https://example.org/favicon.ico",
        "sublinks": [
          {
            "title": "Research archive",
            "url": "https://example.org/research",
            "snippet": null
          }
        ],
        "position": 1
      }
    ],
    "relatedSearches": [
      "retrieval augmented generation benchmarks"
    ],
    "news": [
      {
        "title": "New retrieval research is published",
        "url": "https://example.org/news/retrieval-research",
        "source": "Example Research",
        "published": "5 hours ago"
      }
    ]
  }
]

Web search API versus generated answers and page extraction.

Curly returns ordered search listings rather than generated conclusions or full destination page content. This keeps retrieval separate from model reasoning and downstream extraction.

OptionStarting inputAccessBest for
Curly free web search toolOne browser queryNo account requiredTesting one result page and inspecting JSON
Curly AI Web Search APIOne query and up to five pagesApify API tokenAgents, applications, schedules, and webhooks
Generated answer APIQuestion or research taskProvider specificSynthesized answers rather than ordered search listings
Full page extraction APIKnown destination URLsProvider specificArticle content after sources have been selected

Move from one free test to an automated search workflow.

Test the response in the browser, then use Apify for authenticated requests, schedules, webhooks, integrations, and reusable datasets.

Ready to connect web search to an agent?

Open the Curly Actor to create a token, test the complete input, schedule recurring searches, or connect the dataset to another system.

Open API on Apify

Common AI Web Search API questions.