Expanded Limits, Across all tiers - Our Gift to you! Learn more →

AlterLab
SearchResearchPricingComparePlaygroundBlogDocsChangelog
    AlterLabAlterLab
    PricingComparePlaygroundBlogDocsChangelog
    IntroductionQuickstartInstallationYour First Request
    REST APICrawl APIMap APISearch APIResearch APINewSERP APINewExtract APIAIJob PollingAPI KeysSessions APINewEnterprise APIEnterprise
    AccountAutoAlertsAutoAuthAutoBillingAutoCrawlAutoExtractAutoIntegrationsAutoKeysAutoMapAutoMonitorsAutoOrganizationsAutoSchedulesAutoScrapeAutoSearchAutoSessionsAutoUser WebhooksAutoV1 EndpointsAutoWebhooksAuto
    OverviewPythonNode.js
    JavaScript RenderingBrowser ActionsOutput FormatsPDF & OCRCachingWebhooksJSON Schema FilteringWebSocket Real-TimeBring Your Own ProxyProSticky SessionsProAuthenticated ScrapingNewHTTP Methods & BodiesNewStructured ExtractionAIWeb SearchAgent and RAG GroundingResearch JobsSite MappingWeb CrawlingBatch ScrapingSchedulerChange DetectionCloud Storage ExportSpend LimitsOrganizations & TeamsAlerts & NotificationsExtraction ProfilesAIBYOK ExtractionAIOAuth2 Machine-to-MachineSupport & TicketsUnsupported Targets
    Structured ExtractionAIE-commerce ScrapingNews MonitoringPrice MonitoringMulti-Page CrawlingMonitoring DashboardAI Agent / MCPMCPAI Research AgentAISite CrawlingData Pipeline to Cloud
    E-commerceLead GenerationChange MonitoringRAG & AI PipelinesAIResearch
    PricingRate LimitsError CodesChangelogVersioning
    From FirecrawlFrom ApifyFrom ScrapingBee / ScraperAPIFrom Crawl4AIFrom SpiderSearch to SERPFirecrawl v0 API ReferenceLegacy
    OverviewMCP ServerAIn8n NodeLangChainAICrewAIAILlamaIndexAISupabaseChrome ExtensionSoon
    PlaygroundPricingStatus

    Up to 5,000 free requests · No credit card

    Guide

    Agent and RAG Grounding

    Give a model current, citable context: search once, receive ranked results with the page content of each, and pass the text into the prompt.

    Search with content

    scrape_results: true scrapes each result page and returns its content in the formats you request. The rag and markdown formats are the usual choices for LLM context.

    Python
    import requests
    
    resp = requests.post(
        "https://api.alterlab.io/api/v1/search",
        headers={"X-API-Key": "YOUR_API_KEY"},
        json={
            "query": "postgres 17 release notes logical replication",
            "engine": "auto",
            "num_results": 5,
            "scrape_results": True,
            "formats": ["markdown"],
        },
    ).json()
    
    context = "\n\n".join(
        f"[{i}] {r['title']} ({r['url']})\n{(r.get('content') or {}).get('markdown') or r['snippet']}"
        for i, r in enumerate(resp["results"], 1)
    )

    Check the Search API reference for the exact content shape of a scraped result.

    Freshness and domain control

    Unified search accepts freshness (day, week, month, year), include_domains, exclude_domains and max_per_domain so an agent can restrict grounding to recent pages from sources you trust. Use sources to mix verticals such as web and news in one request.

    Keep citations

    Every result carries url, title and published_at when known; the response has fetched_at. Carry these into your prompt and ask the model to cite by index, so each claim traces back to a page you can open. For multi-step investigations that need many searches and reads, use a research job instead of looping in your own agent.

    Cost

    Pricing

    A unified search request costs $0.001 and a multi-query request (queries) is billed as one unit. Content scrapes for scrape_results are billed per page at the scrape tier of each URL. Cached results are billed at zero. New accounts get up to 5,000 free requests.
    ← Previous: Research JobsNext: Search API →
    Last updated: June 2026

    On this page