Preview availability
A clear boundary between the current API contract and the production roadmap.
These docs are a developer preview of the initial create search and get search surface. The production API and documentation hostname are planned; a working deployment is not implied by this reference.
Available in the local implementation
- Create a search and retrieve it by
job_id. - Quick and deep search as in the Sourcely app: language-model search phrases, provider ordering, and for deep search a shortlist, full-text reading and a second ranking. See How search works.
- Document and claim tracks, filters including domain filters, citations and enrichment options.
- Structured source maps and the enums listed in the reference.
- Validation errors, unknown-search errors and pollable terminal failures.
- Shared Redis storage with one-hour result retention by default, fenced updates and explicit cache-outage errors.
- Dashboard API key checks on create and get. A search is readable by the owning account only.
- Prepaid credits with Stripe top-ups and optional automatic top-up, managed on the API and MCP page in Sourcely. Subscription discounts of 15%, 35% and 50% for Pro, Ultra and Max.
- A USD quote on create and get, and a charged actual cost when the search finishes. Create returns 402 when the credit balance cannot cover the estimate.
- Per-key rate limits on search creation and polling, with
429andRetry-After. - A webhook when
webhook_urlis set. The POST is sent after the search finishes. Polling remains the source of truth.
The current server queues searches in Redis for a separate worker, which has a 10-minute execution timeout by default and may use heuristic/provider fallbacks. It does not place a hold. The credit balance decreases when a finished search reports its actual cost, and failed searches cost nothing.
Planned before public launch
- Prepaid holds, so that searches started at the same moment cannot overdraw the balance.
- Idempotent creation. A concurrency limit separate from the per-key request windows.
- Account-scoped expiry tombstones, a public expiry timestamp and worker recovery.
- Clearer provider-failure reporting and recovery from whole-worker or Redis outages.
Deferred public capabilities
Pagination actions, claim refetch, and public deletion are not part of the initial public reference. Those routes do not send a webhook. Page metadata remains on current models.
Naming and contract changes
Public field names use snake_case. Current relevance ratings still use human-readable enum strings such as "Perfectly Relevant". These docs deliberately reproduce the implemented values; any move to snake_case enum values must update the API and version policy together.
Download the initial OpenAPI contract for exactly the two documented operations and their reachable schemas.