Set up Owlbox { "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 . 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." ] }