API Changelog
A running log of changes to the AlterLab API. New endpoints, breaking changes, improvements, and fixes.
Versioning Policy
/api/v1/). Breaking changes get a 90-day deprecation window. See the API Versioning Policy for details.Latest Changes
Reliable third-party sign-in flows
We modernized the secure data handoff during sign-ins. This eliminates transient authentication errors and ensures a seamless, reliable login experience.
General bug fixes and improvements
Plus 1 internal improvement for better reliability and performance.
Instant Revocation of Expired Sessions
Active sessions are now immediately terminated and blocked the moment they are revoked. This prevents any unauthorized access to your dashboard or API keys using expired session tokens.
General improvements
This release includes general improvements and maintenance updates.
Enhanced Scraping Reliability
The scraping engine now automatically detects blocked requests and reroutes them through clean IPs. This ensures your scrapes succeed reliably without interrupting interactive solver flows.
Fixed Announcement Bar Layout
We fixed a dashboard layout bug that displayed a blank 45px space. Promotional banners now display correctly, while critical maintenance alerts remain prioritized.
Graceful Session Expiration Handling
API requests with expired sessions now receive a structured error response for easier programmatic handling. Dashboard users are gracefully redirected to log in while keeping their current path.
General bug fixes and improvements
This release includes 2 internal improvements for better reliability and performance.
Durable crawl credit refunds
Scheduled crawl refunds are now durable and spend counters are settled with stable idempotency keys. This ensures you are never double-charged and failed scheduler credits are correctly refunded.
Reliable recurring crawl auth
The resolved billing identity is now persistently used for recurring crawl schedules. This prevents auth timeouts and ensures your scheduled tasks execute reliably.
Preserved crawl budget reservations
Your scheduled crawl budget reservations are now safely preserved when revalidating custom proxy credentials. This ensures validation checks do not block or discard active crawl allocations.
Robust profile ad validation
We have introduced automated retries and terminal status handling to paired profile ad validation. This prevents validation checks from hanging and improves success rates for active ad profiles.
Typed batch scraping responses
The Node SDK now fully exposes accepted and rejected task details for bulk scraping. This provides complete TypeScript compile-time safety when inspecting the results of your batch operations.
Documented batch response schemas
The OpenAPI schema now formally defines the terminal HTTP 200 response body for batch scraping requests. This simplifies custom client generation and bulk request integration.
Enhanced TypeScript type discovery
The Node SDK now successfully detects and parses inline or intersection generic types inside raw request helper calls. This ensures your custom type definitions are correctly captured during developme...
No debits for denied runs
Credit entitlement checks are now performed before charging balances for scheduled scraping tasks. This ensures you are never charged for a scheduled run that gets denied or blocked during pre-dispatc...
Reliable scraping task cancellation
Task cancellations are now properly preserved and raised during background billing retry cycles. This ensures that stopped scraping requests immediately cease processing and do not consume your resour...
Accurate concurrent refund tracking
A concurrency lock has been introduced to prevent concurrent refund replays from overwriting newer balance updates. This ensures your account credit balances remain perfectly accurate and synchronized...
Robust batch payload validation
The batch endpoint now gracefully validates and rejects non-object JSON inputs before queue processing. This prevents malformed bulk requests from stalling or halting execution pipelines.
Secure browser profile isolation
Access restrictions have been tightened to block external access to browser profile directories within served downloads. This secures session-specific data and prevents potential cross-tenant leakage.
General bug fixes and improvements
Plus 9 internal improvements for better reliability and performance.
Redesigned Authentication Pages
Enjoy a modern, beautiful split-screen sign-in and sign-up experience. The site header now points directly to this redesigned signup page, getting you up and running faster.
Interactive Search Playground
Test-drive real search requests directly in the playground before signing up. We also streamlined the interface by replacing manual engine selection with smart automatic routing.
Attributed Lead Opportunity Queue
Discover high-value scraping opportunities automatically with our new Lead Opportunity Queue. This feature aggregates discovery signals into a stable, verified queue with detailed lifecycle tracking.
Verified Social Media Dispatch
Our API now actively verifies that automated submissions on platforms like Reddit and Stack Overflow are live. This guarantees you always receive accurate publication status without manual polling.
Automated Blog Syndication States
Get precise visibility into your content syndication workflows. Separate states for attempts, publication, and verification ensure your content is never double-posted or lost.
Instant Search Failover
Our search API now triggers failover mechanisms immediately when encountering thin or empty results instead of waiting for a timeout. This dynamic escalation drastically reduces total latency.
Efficient Rate-Limit Queueing
Rate-limit reservations are now safely preserved across job deferrals in your scraping queues. This ensures delayed jobs retain their slots, preventing unnecessary API throttling.
Streamlined Batch Rejection
Fully rejected batch requests now return a terminal HTTP 200 response immediately instead of creating a polling resource. This reduces client polling overhead and speeds up error handling.
Zero-CLS Desktop Layouts
We eliminated Cumulative Layout Shift (CLS) on desktop browsers by reserving layout space for the announcement bar. Page elements no longer shift unexpectedly during asynchronous loads.
Deduplicated Initial Scrapes
We resolved an issue where running a scrape on landing pages could trigger duplicate requests or double-billing on navigation. A secure local storage marker now deduplicates initial loads.
Search Reliability Enhancements
We resolved a routing anomaly that caused search requests to occasionally be flagged as automated traffic. By adjusting request parameters, we have boosted success rates on Google queries.
Enhanced B2B Payload Privacy
We hardened B2B demographic proof endpoints by stripping internal proxy details, such as raw exit IPs and unhashed proxy credentials. All sensitive fields are now properly hashed.
Protected Login Redirects
We resolved an open-redirect vulnerability where the post-login callback query parameter could bypass our origin policy. Callback URLs are now strictly sanitized before redirection.
Plaintext Credential Prevention
Our profiling backend now automatically redacts credential-like substrings before persisting error logs to the database. This guarantees that your sensitive keys remain protected.
General bug fixes and improvements
Plus 27 internal improvements for better reliability and performance.
Clearer Domain Error Messages
We updated customer-facing error messages to provide clearer, actionable troubleshooting feedback when domains block requests. Misleading alerts claiming a domain cannot be scraped have been removed.
Smarter IP Block Classification
Our API error categorization is now more granular and distinguishes IP reputation blocks from standard page verification challenges. This allows for more precise routing and proxy rotation strategies.
AI Model Failover Reliability
We enhanced structured data extraction reliability by immediately demoting AI models that encounter parsing failures. The system will seamlessly fall back to another model to prevent empty responses.
Faster Proxy Integration Endpoints
We optimized database connection lifetimes across our proxy integration management endpoints. Releasing active connections before executing outbound calls prevents saturation and speeds up response ti...
SDK Sync-Downgrade Polling Resilience
Both developer SDKs now automatically handle server-side sync-downgrade 202 responses during timeout events. Instead of throwing errors, the SDKs will smoothly transition to polling status updates.
Add-on Retry Billing Correction
We corrected the billing reconciliation logic for screenshot and PDF add-on jobs during automated retries. This ensures you are billed accurately only when initially failed add-ons successfully resolv...
General bug fixes and improvements
Plus 43 internal improvements for better reliability and performance.
General improvements
This release includes general improvements and maintenance updates.
feat(infra): surface the ASN-remediation threshold gap in antibot census
investigation: the platform's ASN-remediation machinery.
feat(worker): aggregate per-vendor per-tier success-rate telemetry
Adds to : a read-only aggregation over (the live per-attempt vendor classification) answering "for vendor V, what's the success rate at tier N?" — the capability 's audit found missing.
fix(infra): close restore-database.sh host-TCP guard bypass
Closes the third addressing axis of 's production-target confirmation guard: /, used whenever doesn't resolve to a running local container (the host-TCP fallback path).
feat(content): restore 2 of ~11 blog posts as new forward content
Four blog-content migrations (, ) never ran on production and cannot be replayed — they hardcode an author user and blog category that don't exist on production, and executing them would FK-fail m.
fix(worker): real end-to-end antibot_hint fallback tests, fix kasada/shape telemetry monitoring syst
Batch fix for three review findings from /, all in and its tests.
fix(worker): don't blind-escalate tier on unclassified 429/5xx job retry
's job-level retry gate bumped a retried job's to 2 (proxy tier) for any non-terminal failure — including (429), (5xx), and a bare unclassified status (e.g.
fix(infra): harden decrypt-secrets.sh sibling config writes against symlink planting
The filed finding claimed at would write decrypted secrets through a pre-existing symlink at.
fix(billing): reject auto-recharge threshold a single recharge cannot clear
Batch fix for two review findings in / , on the same constant , batched per the parent issue's stated exception to the billing never-batch rule.
fix(api): announcement CTA model residue — userinfo threat model + PublicCTA length parity
Batch fix for two LOW/POSSIBLE review findings from , both on the announcement CTA models ( / ).
fix(worker): route cold-start antibot_hint fallback through shared vendor_engine
Batch (three members).
fix(api): resolve announcement CTA href residue from
Resolves the three review findings from (which fixed , the backend protocol-relative/backslash bypass).
fix(batch): unvalidated input and missing startup validation — 3 fail-loud-before-use gaps
Three fail-loud-before-use validation gaps, batched by concern per .
fix(ci): reclaim runner disk space and log df -h in backup-restore-drill
Fixes : the backup restore drill (run 30323945135) failed with — an ENOSPC on the CI runner mid-restore, **not** a corrupt backup.
fix(batch): comment and doc accuracy — four claims that no longer match the code
Four batched review findings where a comment, docstring, or message asserts something the code does not do.
fix(worker): per-domain concurrency gate is a third, unaccounted-for min_tier consumer
's PER-DOMAIN CONCURRENCY GATE was a third, unaccounted-for consumer (review finding on ): it read directly, bypassing the Python-registry precedence that and the API admission gate both hono.
General bug fixes and improvements
Plus 35 internal improvements for better reliability and performance.
fix(infra): stop deleting the local source backup after a verified off-site upload
deleted the local source after a verified upload.
Data retention policy
We have published a clear, formalized data retention and recovery policy for past scraping jobs. This helps development teams accurately plan their local data synchronization intervals and log storage...
Smoother maintenance updates
Upgraded background task cleanup logic to prevent premature task cancellation during platform updates. Active jobs and cleanup operations now gracefully persist or complete without interruption.
Robust credit retry logic
Upgraded safeguards in our credit refund retry pipeline automatically isolate processing failures. This ensures credit transactions are never lost or unaccounted for under any network conditions.
Precise credit refunds
Fixed a refund loop that triggered duplicate refunds when accounts had insufficient balances. This ensures completely accurate credit accounting for all structured scraping requests.
Accurate credit balances
Fixed a balance discrepancy for accounts with negative credit balances during refunds or credit grants. Real-time balance caches now perfectly align with your ledger history to ensure accuracy.
API uptime safeguards
Added per-IP rate limiting to the API readiness endpoint to protect platform availability from accidental high-frequency polling. This ensures health checks remain responsive under heavy load.
General bug fixes and improvements
Plus 47 internal improvements for better reliability and performance.
Accelerated Structured Extraction
We moved structured data conversion off the API response path and directly cached the outputs. This eliminates redundant processing and cuts response latency by up to 8 seconds for cached structured r...
Sub-100ms Scraping Latency
We optimized proxy allocation rules to eliminate a 1-second latency floor for basic scraping tasks. Requests that do not require custom proxies are now completed in just 40 to 109 milliseconds.
Synchronous Scraping Scale-up
Our connection multiplexing for synchronous scrapes has been fully redesigned. This significantly reduces connection bottlenecks and improves query response times during heavy parallel scraping worklo...
Fast-Path Structured Extraction
Lightweight extraction tasks under 50 KiB are now processed directly within the scraping stage, eliminating unnecessary staging hops. This reduces delivery overhead and ensures faster turnaround for s...
Instant Credential Validation
API credential validation is now optimized to run directly from high-speed cache memory without hitting primary databases on subsequent requests. This lowers authentication latency while maintaining r...
Localized Geotargeted Headers
Scraped assets and headers are now automatically built using the correct country context matching your assigned proxy. This ensures highly localized and accurate web scraping results across all target...
Instant Spend Limit Releases
Active spending reservations are now instantly released when an API request fails validation checks. This guarantees that failed or rejected requests never artificially count against your spending or ...
Preflight Webhook Safety
Webhook URL validation is now completed before any charges or debits are applied to your account. This ensures invalid destination URLs are rejected immediately with no temporary billing impact.
Automatic Disruption Protection
Active scraping jobs are now automatically and safely requeued if a processing node undergoes scheduled maintenance or shutdown. Your jobs are guaranteed to finish executing seamlessly without being d...
Better Ticket Attachment Flows
Support ticket submissions and replies now validate attachments before sending, preventing silent file failures. You will receive real-time warnings, accessible error feedback, and retry controls for ...
Accurate Search Fallback Deadlines
Optimized search engine fallback latency by enforcing a strict 25-second deadline for parallel dispatch, fallback, and parsing. This ensures your search API calls reliably return responses within the ...
General Improvements and Fixes
This release also includes several general reliability enhancements. These include automatic background retries for failed search refunds, accessibility labeling improvements for support screens, and ...
Improved Attachment Security
Enforced strict, normalized ownership scopes on support ticket attachments. Unauthorized attempts to query or access ticket media now return a generic 404 error, fully protecting your uploaded support...
Instant structured job handoffs
Structured scraping requests now complete up to one second faster. By replacing polling intervals with instant queue handoffs, your extracted data is delivered immediately after the page is scraped.
Bypassed structuring for raw scrapes
Scrape requests that only require raw HTML responses now completely bypass the structuring queue. This optimization removes unnecessary processing to deliver your raw content significantly faster.
Reduced peak latency tail
We capped individual retry timeouts for advanced browser-based requests. This eliminates the long latency tail, ensuring slow requests either failover rapidly or resolve within a predictable time limi...
Resilient schema extraction engine
Our automatic data extraction engine now automatically self-heals when encountering offline AI model providers. This protects your parsing pipelines from external service disruptions.
Billing protection for blocked pages
You will not be billed for scrapes that encounter block pages, challenges, or system errors. Our detection systems now identify these occurrences to ensure false successes are refunded immediately.
Preserved upstream status codes
Structured scrape responses now return the actual HTTP status code from the targeted upstream website rather than defaulting to 200. This enables more precise error handling in your application.
Accurate scrape outcome tracking
Scrapes that return successful responses from non-200 pages, like soft-404s, are no longer falsely marked as failed in your usage analytics. This ensures your dashboard metrics are accurate.
General bug fixes and improvements
Plus 15 internal improvements for better reliability and performance.
Faster passive verification
The scraping engine now automatically identifies domains that only require background verification checks and skips unnecessary behavioral wait times. This cuts request latency on these sites by up to...
Automatic IP block recovery
The platform now automatically detects connection-level proxy blocks and triggers a fresh egress route rotation. Instead of failing immediately when an IP is flagged, your requests are seamlessly retr...
Enterprise detection compatibility
We have added automatic detection and optimized routing pathways for multiple advanced, enterprise-grade bot protection systems. This ensures significantly higher success rates when scraping highly se...
Direct deep-links for support ratings
Support ticket resolution emails now include direct deep-links that automatically highlight and focus the satisfaction rating widget on our platform. This lets you leave feedback on your support exper...
Parallel multi-engine requests
Optimized request routing to initiate parallel connection strategies from the very start of a request. This removes sequential delays on standard request paths, leading to significantly faster overall...
Budget-aware request timeouts
Request connection timeouts are now dynamically adapted to match your remaining request time budget rather than using a static default. This ensures requests either complete successfully or fail-fast ...
Sticky session documentation updates
Updated our developer documentation and AI-agent reference files to include details on the 10-minute automatic exit IP rotation cycle. This provides clearer guidance on maintaining long-lived scraping...
Improved session persistence reliability
Fixed a routing key mapping issue during back-end migrations to ensure persistent scraping sessions remain uninterrupted. Your sticky sessions and designated identities will transition seamlessly with...
Enhanced verification polling stability
Replaced periodic polling checks with event-driven triggers when waiting for verification challenges to resolve. This eliminates unnecessary delays and ensures requests proceed the millisecond a verif...
Prevented early challenge timeouts
Fixed a race condition where a pre-existing stale-content timeout could trigger a fraction of a second before the newer rejection grace period expired. This prevents premature failures on slow-loading...
Accurate billing for failed pages
Corrected a routing and billing issue on Adidas homepage URLs where queries with empty parameters returned a bad request error disguised as a successful HTTP 200. These requests are now properly handl...
Seamless interactive challenge recovery
Fixed an issue where transient background verification failures would permanently cancel subsequent verification attempts. The system now robustly continues the full verification flow even if initial ...
Targeted content wait on retry
Solved an issue where retried requests that successfully bypassed verification pages would prematurely skip waiting for target selectors. The engine now correctly waits for your specified elements to ...
Keyboard focus collision fix
Resolved a UI focus issue where simultaneously mounted mobile and desktop versions of the customer support feedback widget would compete for keyboard focus. This improves accessibility and usability o...
General bug fixes and improvements
Plus 34 internal improvements for better reliability and performance.
New anti-bot benchmarks
You can now view live difficulty scores across all our comparison pages. This helps you compare real-world performance against modern detection systems to make informed integration decisions.
Optimized request latency
We streamlined our pre-scrape routing pipeline to eliminate redundant checks. This reduces initial routing latency by over two seconds for standard requests, allowing your scraping tasks to start much...
Consistent large-scale exports
We added automatic lock renewals during large-scale data export cycles. This prevents tasks from expiring mid-cycle, eliminating duplicate files and ensuring consistent data delivery.
Accessible comparison metrics
We added full ARIA progressbar semantics to the difficulty scorebars on our comparison pages. This ensures screen readers and assistive devices can easily interpret our real-world benchmark data.
Challenged request recovery
We enabled advanced request properties when encountering temporary verification screens. This automatically rotates IPs with full browser characteristics, boosting success rates on guarded domains.
Batch poller reliability
We resolved an issue where batch workers performed redundant retries after losing their execution locks. This prevents duplicate tasks and ensures much more stable long-running operations.
Resilient batch exports
We added error isolation to the export backfill process. A transient error with a single record will no longer abort the entire run, ensuring your successful scraped data is safely delivered.
How to Stay Updated
Check this page for a summary of all API changes with each release.
Visit the full changelog for a detailed, filterable timeline of all product updates including frontend and infrastructure changes.
Watch for deprecation headers in API responses. Deprecated endpoints return a Sunset header with the removal date.
Change Types
| Type | Description | Action Required? |
|---|---|---|
| New | New endpoints, parameters, response fields, or SDK methods | No |
| Improved | Performance improvements, better error messages, enhanced behavior | No |
| Fixed | Bug fixes, corrected behavior, resolved edge cases | No |
| Security | Security patches and vulnerability fixes | Review recommended |
| Breaking | Removed fields, changed types, removed endpoints (announced 90+ days in advance) | Yes - update your code |
Full Changelog
For a complete, filterable timeline of all AlterLab updates including frontend changes, infrastructure improvements, and more, visit the full changelog.
View Full Changelog