{ "opencollection": "1.0.0", "info": { "name": "Invoice Invoices Scribo API", "version": "1.0.0" }, "items": [ { "info": { "name": "Scribo", "type": "folder" }, "items": [ { "info": { "name": "Request a sender email-ownership challenge", "type": "http" }, "http": { "method": "POST", "url": "https://scribo.causaprima.ai/api/v1/scribo/email-verifications", "body": { "type": "json", "data": "{}" } }, "docs": "Emails a 6-character verification code (and magic link) to the address. Always returns a uniform 202 — new, returning, throttled, and send-failed callers are indistinguishable (anti-enumeration). Sends are rate-limited per email (resend cooldown + hourly cap)." }, { "info": { "name": "Redeem the emailed code for a verification token", "type": "http" }, "http": { "method": "POST", "url": "https://scribo.causaprima.ai/api/v1/scribo/email-verifications/:id/redeem", "params": [ { "name": "id", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Exchanges the 6-character code for a verification_token, sent as X-Email-Verification-Token on POST /invoices. The token is reusable for ~30 minutes for the same sender email." }, { "info": { "name": "Verification challenge status snapshot", "type": "http" }, "http": { "method": "GET", "url": "https://scribo.causaprima.ai/api/v1/scribo/email-verifications/:id", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Polling fallback for browser flows waiting on the emailed magic link. verification_token is present only when status is `verified`." }, { "info": { "name": "Verification challenge event stream", "type": "http" }, "http": { "method": "GET", "url": "https://scribo.causaprima.ai/api/v1/scribo/email-verifications/:id/events", "params": [ { "name": "id", "value": "", "type": "path" } ] }, "docs": "Server-Sent Events stream of challenge status transitions; closes after `verified`. Browser flows use this instead of polling the snapshot endpoint." } ] } ], "bundled": true }