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

    B2B

    API reference for b2b endpoints.

    Auto-generated

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

    GET /api/v1/b2b/deliveries

    GET
    /api/v1/b2b/deliveries

    Get delivery history (B2B enterprise tenants only)

    Parameters

    NameTypeRequiredDescription
    limitintegerOptionalPage size — number of receipts to return (1–200, default 50).Default: 50
    offsetintegerOptional0-based row offset for pagination (default 0).Default: 0
    status"success" | "failure"OptionalOptional filter by delivery outcome. Accepted values: 'success', 'failure'. When omitted, all statuses are returned.
    delivery_type"s3" | "webhook" | "polling" | "batch_export"OptionalOptional filter by delivery method. Accepted values: 's3', 'webhook', 'polling', 'batch_export'. When omitted, all delivery types are returned.
    X-Organization-IdstringOptionalX-Organization-Id

    Request Example

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

    Response Example

    JSON
    {
      "items": [],
      "total": 0,
      "limit": 0,
      "offset": 0,
      "filters": {}
    }

    GET /api/v1/b2b/health

    GET
    /api/v1/b2b/health

    B2B org-scoped health aggregator

    Parameters

    NameTypeRequiredDescription
    window"24h" | "7d" | "30d"OptionalAggregation window: '24h' (last 24 hours), '7d' (last 7 days), '30d' (last 30 days).Default: 24h
    X-Organization-IdstringOptionalX-Organization-Id

    Request Example

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

    Response Example

    JSON
    {
      "window": "example",
      "ad_fill_rate": "example",
      "ad_fill_rate_jobs": "example",
      "serp_success_rate": "example",
      "serp_success_rate_jobs": "example",
      "delivery_success_rate": "example"
    }

    GET /api/v1/b2b/jobs

    GET
    /api/v1/b2b/jobs

    List bulk submissions (B2B enterprise tenants only)

    Parameters

    NameTypeRequiredDescription
    limitintegerOptionalPage size (max 100).Default: 20
    offsetintegerOptionalNumber of records to skip.Default: 0
    X-Organization-IdstringOptionalX-Organization-Id

    Request Example

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

    Response Example

    JSON
    {
      "items": [],
      "total": 0,
      "limit": 0,
      "offset": 0,
      "has_more": true
    }

    GET /api/v1/b2b/jobs/bulk/{bulk_id}/results

    GET
    /api/v1/b2b/jobs/bulk/{bulk_id}/results

    Get per-item results preview for a bulk submission (B2B enterprise only)

    Parameters

    NameTypeRequiredDescription
    bulk_idstring
    Required
    bulk_id
    pageintegerOptionalPage number (1-indexed).Default: 1
    page_sizeintegerOptionalNumber of results per page (max 50).Default: 20
    X-Organization-IdstringOptionalX-Organization-Id

    Request Example

    Bash
    curl -X GET https://api.alterlab.io/api/v1/b2b/jobs/bulk/<bulk_id>/results \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json"

    Response Example

    JSON
    {
      "bulk_id": "example",
      "total": 0,
      "page": 0,
      "page_size": 0,
      "items": [],
      "summary": "example"
    }

    GET /api/v1/b2b/jobs/bulk/{bulk_id}/results/download.csv

    GET
    /api/v1/b2b/jobs/bulk/{bulk_id}/results/download.csv

    Download a CSV summary of results for a bulk submission (B2B enterprise only)

    Parameters

    NameTypeRequiredDescription
    bulk_idstring
    Required
    bulk_id
    X-Organization-IdstringOptionalX-Organization-Id

    Request Example

    Bash
    curl -X GET https://api.alterlab.io/api/v1/b2b/jobs/bulk/<bulk_id>/results/download.csv \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json"

    Response Example

    JSON
    {
      "status": "ok"
    }

    GET /api/v1/b2b/jobs/bulk/{bulk_id}/results/download.jsonl

    GET
    /api/v1/b2b/jobs/bulk/{bulk_id}/results/download.jsonl

    Download full, untruncated JSONL results for a bulk submission (B2B enterprise only)

    Parameters

    NameTypeRequiredDescription
    bulk_idstring
    Required
    bulk_id
    X-Organization-IdstringOptionalX-Organization-Id

    Request Example

    Bash
    curl -X GET https://api.alterlab.io/api/v1/b2b/jobs/bulk/<bulk_id>/results/download.jsonl \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json"

    Response Example

    JSON
    {
      "status": "ok"
    }

    GET /api/v1/b2b/notification-prefs

    GET
    /api/v1/b2b/notification-prefs

    Get notification preferences (enterprise tenant self-service)

    Request Example

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

    Response Example

    JSON
    {
      "tenant_id": "example",
      "prefs": [],
      "total": 0
    }

    PATCH /api/v1/b2b/notification-prefs

    PATCH
    /api/v1/b2b/notification-prefs

    Update notification preferences (enterprise tenant self-service)

    Parameters

    NameTypeRequiredDescription
    prefsobject[]
    Required
    List of preference updates. Each item is upserted individually.

    Request Example

    Bash
    curl -X PATCH https://api.alterlab.io/api/v1/b2b/notification-prefs \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "prefs": []
      }'

    Response Example

    JSON
    {
      "tenant_id": "example",
      "prefs": [],
      "total": 0,
      "upserted": 0
    }

    GET /api/v1/b2b/onboarding

    GET
    /api/v1/b2b/onboarding

    Enterprise onboarding journey

    Parameters

    NameTypeRequiredDescription
    X-Organization-IdstringOptionalX-Organization-Id

    Request Example

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

    Response Example

    JSON
    {
      "steps": [],
      "next_step": "example",
      "all_complete": true
    }

    POST /api/v1/b2b/onboarding/steps/{step_key}/refresh

    POST
    /api/v1/b2b/onboarding/steps/{step_key}/refresh

    Re-check one onboarding step

    Parameters

    NameTypeRequiredDescription
    step_keystring
    Required
    step_key
    X-Organization-IdstringOptionalX-Organization-Id

    Request Example

    Bash
    curl -X POST https://api.alterlab.io/api/v1/b2b/onboarding/steps/<step_key>/refresh \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json"

    Response Example

    JSON
    {
      "steps": [],
      "next_step": "example",
      "all_complete": true
    }

    GET /api/v1/b2b/overview

    GET
    /api/v1/b2b/overview

    Enterprise client portal overview

    Parameters

    NameTypeRequiredDescription
    X-Organization-IdstringOptionalX-Organization-Id

    Request Example

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

    Response Example

    JSON
    {
      "client": "example",
      "acceptance": [],
      "delivery": "example",
      "readiness": "example"
    }

    GET /api/v1/b2b/package

    GET
    /api/v1/b2b/package

    Dashboard package for the caller's enterprise organization

    Parameters

    NameTypeRequiredDescription
    X-Organization-IdstringOptionalX-Organization-Id

    Request Example

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

    Response Example

    JSON
    {
      "id": "example",
      "label": "example",
      "modules": [],
      "labels": {},
      "kpis": [],
      "workflow_entry_points": []
    }

    GET /api/v1/b2b/profiles

    GET
    /api/v1/b2b/profiles

    List demographic profiles for the calling org (B2B enterprise tenants only)

    Parameters

    NameTypeRequiredDescription
    status"building" | "complete" | "failed"OptionalOptional filter by profile build status. Accepted values: 'building', 'complete', 'failed'. When omitted, all statuses are returned.
    limitintegerOptionalMaximum number of profiles to return (1–1000). Default: 100.Default: 100
    offsetintegerOptionalNumber of profiles to skip before returning results. Default: 0.Default: 0
    X-Organization-IdstringOptionalX-Organization-Id

    Request Example

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

    Response Example

    JSON
    {
      "items": [],
      "total": 0,
      "limit": 0,
      "offset": 0,
      "has_more": true
    }

    GET /api/v1/b2b/profiles/{profile_id}/stats

    GET
    /api/v1/b2b/profiles/{profile_id}/stats

    Per-profile ad-performance stats (B2B enterprise tenants only)

    Parameters

    NameTypeRequiredDescription
    profile_idstring
    Required
    Profile ID returned by POST /api/v1/b2b/profiles.
    X-Organization-IdstringOptionalX-Organization-Id

    Request Example

    Bash
    curl -X GET https://api.alterlab.io/api/v1/b2b/profiles/<profile_id>/stats \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json"

    Response Example

    JSON
    {
      "profile_id": "example",
      "total_queries": 0,
      "total_ads": 0,
      "demographic_ads": 0,
      "demographic_ad_rate": 0,
      "last_used_at": "example"
    }

    GET /api/v1/b2b/tenants/{tenant_id}/config

    GET
    /api/v1/b2b/tenants/{tenant_id}/config

    Read tenant config (B2B API key — enterprise only)

    Parameters

    NameTypeRequiredDescription
    tenant_idstring
    Required
    Organization (tenant) UUID
    X-Organization-IdstringOptionalX-Organization-Id

    Request Example

    Bash
    curl -X GET https://api.alterlab.io/api/v1/b2b/tenants/<tenant_id>/config \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json"

    Response Example

    JSON
    {
      "rate_limit_override": "example",
      "default_country": "example",
      "delivery_config": "example",
      "mfa_required": true,
      "api_key_audit_enabled": true
    }

    POST /api/v1/b2b/tenants/{tenant_id}/delivery-configs

    POST
    /api/v1/b2b/tenants/{tenant_id}/delivery-configs

    Create a delivery config (B2B API key — enterprise tenants only)

    Parameters

    NameTypeRequiredDescription
    tenant_idstring
    Required
    Organization (tenant) UUID
    X-Organization-IdstringOptionalX-Organization-Id
    delivery_type"s3" | "webhook" | "polling" | "batch_export"
    Required
    Supported delivery methods for tenant data output.
    credentialsobject
    Required
    Delivery credentials (encrypted at rest). s3: {{access_key_id, secret_access_key}}. webhook: {{signing_secret}} (optional). polling/batch_export: {{}} (no credentials required).
    config_jsonobjectOptionalNon-secret delivery configuration. s3: {{prefix, format, bucket}}. webhook: {{endpoint, events, headers}}. polling: {{format, retention_hours}}. batch_export: {{format, schedule}}.
    freshness_target_secondsintegerOptionalMaximum acceptable data age in seconds (60s–7d). Default: 86400 (24h).Default: 86400
    retry_policy_jsonobjectOptionalRetry policy. Example: {{"max_attempts": 3, "backoff_seconds": [30, 120, 600]}}
    is_activebooleanOptionalWhether this config is activeDefault: True

    Request Example

    Bash
    curl -X POST https://api.alterlab.io/api/v1/b2b/tenants/<tenant_id>/delivery-configs \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "delivery_type": "...",
        "credentials": "...",
        "freshness_target_seconds": 86400
      }'

    Response Example

    JSON
    {
      "status": "ok"
    }

    GET /api/v1/b2b/tenants/{tenant_id}/delivery-configs

    GET
    /api/v1/b2b/tenants/{tenant_id}/delivery-configs

    List delivery configs for the caller's org (B2B API key)

    Parameters

    NameTypeRequiredDescription
    tenant_idstring
    Required
    Organization (tenant) UUID
    include_inactivebooleanOptionalInclude inactive configs; only active ones are listed when omittedDefault: False
    limitintegerOptionalMaximum number of configs to returnDefault: 100
    offsetintegerOptionalNumber of configs to skip (for pagination)Default: 0
    X-Organization-IdstringOptionalX-Organization-Id

    Request Example

    Bash
    curl -X GET https://api.alterlab.io/api/v1/b2b/tenants/<tenant_id>/delivery-configs \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json"

    Response Example

    JSON
    {
      "configs": [],
      "total_count": 0,
      "limit": 0,
      "offset": 0,
      "has_more": true
    }

    PATCH /api/v1/b2b/tenants/{tenant_id}/delivery-configs/{config_id}

    PATCH
    /api/v1/b2b/tenants/{tenant_id}/delivery-configs/{config_id}

    Update non-credential fields of a delivery config (B2B API key)

    Parameters

    NameTypeRequiredDescription
    tenant_idstring
    Required
    Organization (tenant) UUID
    config_idstring
    Required
    Delivery config UUID
    X-Organization-IdstringOptionalX-Organization-Id
    config_jsonobjectOptionalconfig_json
    freshness_target_secondsintegerOptionalfreshness_target_seconds
    retry_policy_jsonobjectOptionalretry_policy_json
    is_activebooleanOptionalis_active

    Request Example

    Bash
    curl -X PATCH https://api.alterlab.io/api/v1/b2b/tenants/<tenant_id>/delivery-configs/<config_id> \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json"

    Response Example

    JSON
    {
      "id": "example",
      "tenant_id": "example",
      "delivery_type": "example",
      "config_json": {},
      "freshness_target_seconds": 0,
      "retry_policy_json": {}
    }

    GET /api/v1/b2b/tenants/{tenant_id}/delivery-configs/{config_id}

    GET
    /api/v1/b2b/tenants/{tenant_id}/delivery-configs/{config_id}

    Get a specific delivery config for the caller's org (B2B API key)

    Parameters

    NameTypeRequiredDescription
    tenant_idstring
    Required
    Organization (tenant) UUID
    config_idstring
    Required
    Delivery config UUID

    Request Example

    Bash
    curl -X GET https://api.alterlab.io/api/v1/b2b/tenants/<tenant_id>/delivery-configs/<config_id> \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json"

    Response Example

    JSON
    {
      "id": "example",
      "tenant_id": "example",
      "delivery_type": "example",
      "config_json": {},
      "freshness_target_seconds": 0,
      "retry_policy_json": {}
    }

    POST /api/v1/b2b/tenants/{tenant_id}/delivery-configs/{config_id}/rotate

    POST
    /api/v1/b2b/tenants/{tenant_id}/delivery-configs/{config_id}/rotate

    Rotate (replace) delivery credentials without downtime (B2B API key)

    Parameters

    NameTypeRequiredDescription
    tenant_idstring
    Required
    Organization (tenant) UUID
    config_idstring
    Required
    Delivery config UUID
    X-Organization-IdstringOptionalX-Organization-Id
    credentialsobject
    Required
    New credentials to replace the existing ones

    Request Example

    Bash
    curl -X POST https://api.alterlab.io/api/v1/b2b/tenants/<tenant_id>/delivery-configs/<config_id>/rotate \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "credentials": "..."
      }'

    Response Example

    JSON
    {
      "id": "example",
      "tenant_id": "example",
      "delivery_type": "example",
      "config_json": {},
      "freshness_target_seconds": 0,
      "retry_policy_json": {}
    }

    POST /api/v1/b2b/tenants/{tenant_id}/delivery-configs/{config_id}/test

    POST
    /api/v1/b2b/tenants/{tenant_id}/delivery-configs/{config_id}/test

    Test a delivery config connection (B2B API key — enterprise tenants only)

    Parameters

    NameTypeRequiredDescription
    tenant_idstring
    Required
    Organization (tenant) UUID
    config_idstring
    Required
    Delivery config UUID

    Request Example

    Bash
    curl -X POST https://api.alterlab.io/api/v1/b2b/tenants/<tenant_id>/delivery-configs/<config_id>/test \
      -H "X-API-Key: YOUR_API_KEY" \
      -H "Content-Type: application/json"

    Response Example

    JSON
    {
      "success": true,
      "message": "example",
      "delivery_type": "example"
    }

    GET /api/v1/b2b/usage

    GET
    /api/v1/b2b/usage

    B2B org-scoped billing-period usage aggregator

    Parameters

    NameTypeRequiredDescription
    X-Organization-IdstringOptionalX-Organization-Id

    Request Example

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

    Response Example

    JSON
    {
      "billing_period": "example",
      "queries_used": 0,
      "queries_limit": 0,
      "ad_fill_rate": "example",
      "avg_ads_per_query": "example",
      "demographic_ad_rate": "example"
    }
    Last updated: June 2026

    On this page