AlterLabAlterLab
PricingComparePlaygroundBlogDocsChangelog
    AlterLabAlterLab
    PricingComparePlaygroundBlogDocsChangelog
    IntroductionQuickstartInstallationYour First Request
    REST APIJob PollingAPI KeysSessions APINew
    OverviewPythonNode.js
    JavaScript RenderingOutput FormatsPDF & OCRCachingWebhooksJSON Schema FilteringWebSocket Real-TimeBring Your Own ProxyProAuthenticated ScrapingNewWeb CrawlingBatch ScrapingSchedulerChange DetectionCloud Storage ExportSpend LimitsOrganizations & TeamsAlerts & Notifications
    Structured ExtractionAIE-commerce ScrapingNews MonitoringPrice MonitoringMulti-Page CrawlingMonitoring DashboardAI Agent / MCPMCPData Pipeline to Cloud
    PricingRate LimitsError Codes
    From FirecrawlFrom ApifyFrom ScrapingBee / ScraperAPI
    PlaygroundPricingStatus
    Reference

    API Versioning Policy

    How AlterLab versions its API, handles breaking changes, and ensures your integrations remain stable.

    Current Version

    API Version:
    v1
    Base URL:https://api.alterlab.io/api/v1/

    All current endpoints are served under the v1 prefix. This version is stable and actively maintained.

    Versioning Strategy

    AlterLab uses URL path versioning. The version number is part of the URL path, making it explicit in every request.

    Bash
    # All requests include the version in the URL path
    curl https://api.alterlab.io/api/v1/scrape
    curl https://api.alterlab.io/api/v1/crawl
    curl https://api.alterlab.io/api/v1/usage
    AspectPolicy
    Versioning schemeURL path prefix (/api/v1/, /api/v2/, etc.)
    Version lifecycleEach major version is supported for at least 12 months after the next version launches
    Deprecation noticeMinimum 90 days before any breaking change or endpoint removal
    FrequencyNew major versions are rare. Non-breaking additions happen continuously.

    What Is a Breaking Change

    A breaking change is any modification that could cause existing integrations to fail. These are never introduced without prior notice.

    Breaking Changes (require a new API version or 90-day notice)

    • •Removing an existing endpoint
    • •Removing or renaming a response field
    • •Changing the type of an existing response field (e.g., string to number)
    • •Making a previously optional parameter required
    • •Changing authentication requirements for an endpoint
    • •Changing the meaning of an existing error code
    • •Reducing rate limits below documented thresholds

    Non-Breaking Changes

    These changes are deployed continuously without version bumps. Your code should handle these gracefully.

    Non-Breaking Changes (no version bump needed)

    • •Adding new API endpoints
    • •Adding new optional request parameters to existing endpoints
    • •Adding new fields to response objects
    • •Adding new values to existing enums (e.g., new error codes, new scraping modes)
    • •Adding new webhook event types
    • •Improving error messages (the error code stays the same)
    • •Increasing rate limits or improving performance

    Best Practice

    Always ignore unknown fields in API responses. New fields may be added at any time. If your JSON parser fails on unknown keys, you will break on non-breaking changes.

    Deprecation Policy

    When a feature or endpoint is scheduled for removal, AlterLab follows a structured deprecation process:

    1

    Announcement

    Deprecation is announced in the changelog with a clear timeline. The endpoint or field is marked as deprecated in the API documentation.

    2

    Sunset Header (minimum 90 days)

    Deprecated endpoints return a Sunset HTTP header indicating the removal date. The endpoint continues to work normally during this period.

    3

    Migration Period

    Documentation is updated with migration guides. If a replacement endpoint exists, both old and new endpoints work side by side.

    4

    Removal

    After the deprecation period, the endpoint is removed and returns 410 Gone. This date is always at least 90 days after the initial announcement.

    Sunset Headers

    When an endpoint is deprecated, every response includes standard deprecation headers per RFC 8594:

    HTTP
    HTTP/1.1 200 OK
    Content-Type: application/json
    Sunset: Sat, 01 Nov 2026 00:00:00 GMT
    Deprecation: true
    Link: </docs/reference/changelog>; rel="sunset"
    
    {
      "data": { ... },
      "warnings": [
        {
          "code": "DEPRECATED_ENDPOINT",
          "message": "This endpoint is deprecated and will be removed on 2026-11-01. Use /api/v1/scrape instead.",
          "documentation": "https://docs.alterlab.io/docs/reference/changelog"
        }
      ]
    }
    HeaderDescription
    SunsetHTTP date when the endpoint will be removed
    DeprecationSet to true on deprecated endpoints
    LinkPoints to the changelog or migration guide with rel="sunset"

    SDK Compatibility

    AlterLab maintains official SDKs for Python and Node.js. SDK versions follow Semantic Versioning:

    SDK VersionAPI VersionMeaning
    2.x.xv1Patch and minor updates are backwards compatible
    3.0.0v2 (future)Major SDK bump aligns with a new API version

    Keep SDKs Updated

    We recommend pinning to a major version (e.g., alterlab~=2.0 in Python or "@alterlab/sdk": "^2.0" in Node.js) and updating regularly within that range.

    Staying Compatible

    Follow these practices to ensure your integration remains stable:

    Ignore unknown fields

    New fields may appear in responses at any time. Configure your JSON parser to ignore unknown keys.

    Handle new enum values

    New error codes, scraping modes, and status values may be added. Use a default/fallback case in switch statements.

    Check for Sunset headers

    Log or alert when you receive a Sunset header so you have time to migrate before the endpoint is removed.

    Pin SDK major versions

    Use version ranges that allow minor and patch updates but not major bumps (e.g., ^2.0.0).

    Follow the changelog

    Check the changelog regularly to stay informed about new features and upcoming deprecations.

    ← ChangelogREST API Reference →
    Last updated: March 2026

    On this page