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 PollingDomain StatsNewGeocode APINewNews APIBatch ResultsNewAPI KeysSessions APINewEnterprise APIEnterprise
    AccountAutoAI VisibilityAutoAlertsAutoAuthAutoBillingAutoCrawlAutoExtractAutoIntegrationsAutoKeysAutoMapAutoMonitorsAutoOrganizationsAutoResearch SchedulesAutoRunsAutoSchedulesAutoScrapeAutoSearchAutoSearch SchedulesAutoSessionsAutoUser WebhooksAutoV1 EndpointsAutoAffiliatesAutoAgentAutoAgent OnboardingAutoAgent VisibilityAutoAnalyticsAutoApprovalsAutoArtifactsAutoAttributionAutoB2BAutoBatchAutoBeta FeaturesAutoBlogAutoBuyerAutoChatAutoConnectionsAutoConnectorsAutoContact ListsAutoCreatorAutoCross SellAutoDashboardAutoDefaultsAutoDomainsAutoEmail PreferencesAutoFcAutoHandsAutoHealthAutoJobsAutoListingsAutoMaintenanceAutoNewsAutoOauthAutoOauth GrantsAutoPage InspectAutoPlatformAutoPresetsAutoPricingAutoPrivacyAutoPublicAutoPublic PagesAutoReferralAutoReferralsAutoReportsAutoResearchAutoSecretsAutoSerpAutoSSOAutoStorefrontsAutoSupportAutoTemplatesAutoToolsAutoTrackAutoUsageAutoUsage TagsAutoUserAutoWorkflowsAutoWorkspacesAutoWebhooksAuto
    OverviewPythonNode.jsCLI
    Guides OverviewJavaScript RenderingBrowser ActionsOutput FormatsPDF & OCRCachingWebhooksJSON Schema FilteringWebSocket Real-TimeBring Your Own ProxyProSticky SessionsProAuthenticated ScrapingNewHTTP Methods & BodiesNewStructured ExtractionAIWeb SearchAgent and RAG GroundingResearch JobsAgent RunsSite MappingWeb CrawlingBatch ScrapingSchedulerData MarketplaceSelling DataAgent OnboardingEmbeddingsKeyword IdeasAI VisibilityWorkflowsChange DetectionCloud Storage ExportSpend LimitsOrganizations & TeamsScrape TemplatesCustom ConnectorsSecretsContact ListsPlatform Sub-AccountsReferrals & AffiliatesAlerts & NotificationsExtraction ProfilesAIBYOK ExtractionAIOAuth2 Machine-to-MachineSupport & TicketsUnsupported Targets
    Tutorials OverviewStructured ExtractionAIE-commerce ScrapingNews MonitoringPrice MonitoringMulti-Page CrawlingMonitoring DashboardAI Agent / MCPMCPAI Research AgentAISite CrawlingData Pipeline to Cloud
    E-commerceLead GenerationChange MonitoringRAG & AI PipelinesAIResearch
    Reference OverviewPricingRate LimitsReliabilityReliability ContractError CodesChangelogVersioning
    Migrations OverviewFrom 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

    API Reference
    Auto-generated

    Serp

    API reference for serp endpoints.

    Auto-generated

    This page was generated from the OpenAPI spec. Runmake generate-docs to refresh after spec changes.

    GET /api/v1/serp/history

    GET
    /api/v1/serp/history

    Get SERP result history for keyword tracking

    Parameters

    NameTypeRequiredDescription
    querystring
    Required
    query
    search_enginestringOptionalsearch_engineDefault: google
    countrystringOptionalcountry
    languagestringOptionallanguage
    from_datestringOptionalfrom_date
    to_datestringOptionalto_date
    limitintegerOptionallimitDefault: 50
    offsetintegerOptionaloffsetDefault: 0
    include_changesbooleanOptionalinclude_changesDefault: True

    Request Example

    Bash
    curl -X GET 'https://api.alterlab.io/api/v1/serp/history?query=<query>' \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json"

    Response Example

    JSON
    {
      "query": "example",
      "search_engine": "example",
      "country": "example",
      "total_snapshots": 0,
      "snapshots": [],
      "changes": "example"
    }

    POST /api/v1/serp/keyword-ideas

    POST
    /api/v1/serp/keyword-ideas

    Keyword ideas from autocomplete, People Also Ask and related searches

    Parameters

    NameTypeRequiredDescription
    seedstring
    Required
    Seed keyword or phrase
    countrystringOptionalISO country codeDefault: us
    languagestringOptionalLanguage codeDefault: en
    depthintegerOptional1: seed + a-z + question prefixes; 2 also expands the best ideas (up to 60 calls)Default: 1
    sourcesstring[]OptionalSources to fan out to
    quote_onlybooleanOptionalReturn the quote without running or billing anythingDefault: False

    Request Example

    Bash
    curl -X POST https://api.alterlab.io/api/v1/serp/keyword-ideas \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "seed": "example_seed",
        "country": "example_country",
        "language": "example_language",
        "depth": 1
      }'

    Response Example

    JSON
    {
      "seed": "example",
      "country": "example",
      "language": "example",
      "depth": 0,
      "sources": [],
      "quote": "example"
    }

    POST /api/v1/serp/sessions

    POST
    /api/v1/serp/sessions

    Register a persistent SERP session

    Parameters

    NameTypeRequiredDescription
    geostringOptionalgeo

    Request Example

    Bash
    curl -X POST https://api.alterlab.io/api/v1/serp/sessions \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json"

    Response Example

    JSON
    {
      "status": "ok"
    }

    GET /api/v1/serp/sessions

    GET
    /api/v1/serp/sessions

    List persistent SERP sessions

    Request Example

    Bash
    curl -X GET https://api.alterlab.io/api/v1/serp/sessions \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json"

    Response Example

    JSON
    {
      "sessions": [],
      "total": 0
    }

    GET /api/v1/serp/sessions/{session_id}

    GET
    /api/v1/serp/sessions/{session_id}

    Inspect a persistent SERP session

    Parameters

    NameTypeRequiredDescription
    session_idstring
    Required
    Session ID

    Request Example

    Bash
    curl -X GET https://api.alterlab.io/api/v1/serp/sessions/<session_id> \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json"

    Response Example

    JSON
    {
      "session_id": "example",
      "state": "example",
      "geo": "example",
      "search_count": 0,
      "block_count": 0,
      "success_count": 0
    }

    DELETE /api/v1/serp/sessions/{session_id}

    DELETE
    /api/v1/serp/sessions/{session_id}

    Retire a persistent SERP session

    Parameters

    NameTypeRequiredDescription
    session_idstring
    Required
    Session ID to retire

    Request Example

    Bash
    curl -X DELETE https://api.alterlab.io/api/v1/serp/sessions/<session_id> \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json"

    Response Example

    JSON
    {
      "status": "ok"
    }
    Last updated: June 2026

    On this page