Overview
Vine turns a business URL into structured data through two endpoints:- Detect (
POST /api/v1/detect) — synchronous. Send a URL, get back the providers Vine detected and the proposed connections behind them in ~25 seconds. - Extract (
POST /api/v1/extract) — async. Send a URL, Vine detects providers and pulls data from each, and you poll until the job reaches a terminal state.
detect returns its result directly; extract returns a job you poll with GET /api/v1/extractions/{id}.
Get an API key
Mint a key with the key-management endpoint. The Keys look like
plaintext is returned once — store it immediately; it is never recoverable.cURL
Response
vine_test_… (sandbox, the default) or vine_live_… (production). Attach yours as a Bearer token on every request:Detect providers (synchronous)
Send the business URL. A
detect blocks until the classifier finishes (~25s) and returns the result directly — no polling.200 OK returns the detected providers and the connections you can feed into an extraction:Extract provider data (async)
To pull live data (schedules, menus, practitioners, availability), submit an extraction. An The API responds with
Idempotency-Key is optional — supply one to make a submit safely retryable; omit it and each call creates a new job.202 Accepted and a job envelope:Handling errors
Every error follows the same envelope:| HTTP | Meaning | Retryable |
|---|---|---|
401 | Missing, invalid, or revoked key | No — check your key |
409 | Idempotency conflict — same Idempotency-Key, different payload | No — use a new key |
422 | Validation failed — fix the request body | No |
429 | Rate limited or at capacity | Yes — back off and retry |
404 | Extraction not found, or not owned by this key (poll) | No |
failed, check failure.retryable:
Next steps
Detect
Synchronous provider detection — request schema and response fields.
Extract
Async extraction — submit a URL, get a job to poll.
Poll an extraction
Polling semantics and terminal states.
API keys
Create, list, and revoke keys.
