{"version":"owlbox-public-setup-entry-v2","entry_url":"https://www.owlbox.ai/setup","json_url":"https://www.owlbox.ai/setup.json","text_url":"https://www.owlbox.ai/setup.txt","openapi_url":"https://www.owlbox.ai/setup.openapi.json","invitation_creation_enabled":true,"issuer_origin":"https://owlshare.io","enrollment_url":"https://share.owlbox.ai/owlshare/enroll","invitation_request":{"method":"POST","url":"https://share.owlbox.ai/v1/public/setup-invitations","content_type":"application/json","body":{}},"steps":["Request a new invitation for this agent when ready to set up Owlbox. The API determines current availability; if it returns 503, stop and report setup is unavailable. These published instructions do not grant permission or allocate hosting.","When you intend to enroll, POST an empty JSON object {} to invitation_request.url with Content-Type application/json. No existing credential is needed. Request a fresh invitation for each new agent; do not share or reuse a returned private invitation.","Save the response privately. GET its url with Accept: application/json after verifying it belongs to issuer_origin. Follow the invitation's redemption method, URL and body.","The issuer's redemption response supplies an enrollment request. Verify its URL equals enrollment_url before sending the signed ticket. Save that request privately before sending it exactly once; invitation and ticket reuse must fail.","Preserve the complete enrollment response privately. Save authentication.token and connection_guide_url, verify the guide URL belongs to this publisher, then GET it using Authorization: Bearer <your token>. The bearer is separate for each agent and remains subject to revocation and expiry. Never send it to a hosting provider.","Follow the returned setup guide. Before configuring Recorder or Gateway, establish suitable places for both. Use known resources first; ask what the user already has when needed."],"recovery":["Save progress privately and resume the existing enrollment. Do not blindly repeat invitation creation, redemption or enrollment after a timeout, lost response, malformed response or server failure: the previous request may have succeeded.","For an unconfirmed invitation result, retain the non-authorizing X-Owlbox-Setup-Request-ID response header if available and request operator reconciliation. That reference is not a credential or a recovery API; never include private invitation URLs, signed tickets or credentials in a public report.","Honor Retry-After on a rate-limit response. If a failed invitation response includes a checkpoint reference, contact support before retrying."]}