Changelog
API and SDK version history.
v0.6.0 — February 2026
Breaking changes to improve API consistency and pagination.
Response envelope
- All responses now include an
objectfield indicating the resource type - Collections use
"data"key instead of named keys (jobs,bulk_jobs,lists,items) successanderrorfields removed from enrichment and sequence responses
Cursor-based pagination
offsetparameter replaced withstarting_after(ID-based cursor)totalremoved from list responses (usehas_moreto check for more results)
Webhook event types
- New
event_typesfield on webhook registration for selective subscriptions - Webhook payloads now use structured event envelope format with
id,type,created_at,data - 7 event types:
research.completed,research.failed,bulk.completed,bulk.failed,list.analyzed,list.failed,watchlist.change_detected
SDK changes
- Version bumped to 0.6.0
- All
list_*methods:offsetparameter replaced withstarting_after - Iterators now use cursor-based advancement
register_webhook()acceptsevent_typesparameter- New
WebhookEventresource class
Migration guide
# Before (v0.5.0)
page = client.list_research(limit=10, offset=0)
for job in page["jobs"]:
print(job["job_id"])
# After (v0.6.0)
page = client.list_research(limit=10)
for job in page["data"]:
print(job["job_id"])
# Or use the iterator (handles pagination automatically)
for job in client.iter_research(limit=10):
print(job["job_id"])
v0.5.0 — January 2026
- Rate limit headers (
X-RateLimit-*) - Request ID in error responses
- SDK error subclasses (
AuthenticationError,RateLimitError, etc.) - Webhook signature verification helper
- Bulk job polling helper
v0.4.0 — January 2026
- Watchlist endpoints for recurring research
- Team management endpoints
- Enrichment contact endpoint