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

    Research Jobs

    A research job searches, reads sources and writes a cited answer while staying inside a budget you choose. The model calls run on your own key.

    1. Add your LLM key

    Add a provider key (OpenAI, Anthropic, OpenRouter, Groq and others) in the BYOK section of your dashboard settings. Without one, POST /api/v1/research returns 400 byok_key_required before anything is stored or charged. Pass provider and model in the request to pick a specific key and model.

    2. Start a job with a budget

    Python
    import requests
    
    job = requests.post(
        "https://api.alterlab.io/api/v1/research",
        headers={"X-API-Key": "YOUR_API_KEY"},
        json={
            "query": "Which open source vector databases support filtered search?",
            "effort": "deep",
            "max_cost_microcents": 50000,  # cap on platform spend (50,000 microcents)
            "max_sources": 30,
        },
    ).json()
    print(job["id"], job["status"], job["budget"])

    Choose effort from lite to frontier; your own caps can only lower the tier caps. When a cap is hit the job finishes as completed_partial and coverage tells you what was not read. See the tier table.

    3. Review the plan first

    Set plan_first: true to hold the job in awaiting_approval. Nothing is spent until you approve.

    Python
    base = "https://api.alterlab.io/api/v1/research"
    headers = {"X-API-Key": "YOUR_API_KEY"}
    
    plan = requests.get(f"{base}/{job['id']}/plan", headers=headers).json()
    # edit the plan, then approve (optionally passing the refined plan)
    requests.post(f"{base}/{job['id']}/approve", headers=headers, json={"plan": plan})

    4. Follow progress

    Poll GET /api/v1/research/{id} until the status is completed, completed_partial, failed or cancelled, or stream /events. If the stream drops, reconnect with Last-Event-ID and you receive only the missed events.

    Bash
    curl -N https://api.alterlab.io/api/v1/research/JOB_ID/events \
      -H "X-API-Key: YOUR_API_KEY"

    5. Get a webhook

    Pass webhook: { url } (HTTPS) at creation. The signing secret is returned once in the create response. Verify X-AlterLab-Signature as described in the API reference.

    Cost control

    What you pay AlterLab for

    Each search a job runs costs $0.001. Page fetches are priced per step at the scrape tier of the URL, and the running total is in cost.platform_microcents. Model tokens are billed by your provider, not AlterLab. New accounts get up to 5,000 free requests.
    ← Previous: Web SearchNext: Agent and RAG Grounding →
    Last updated: June 2026

    On this page