{"ok":true,"request_id":"37cb93fb-b724-44da-8359-add17e35335d","autonomous_credential_path":true,"oauth_fallback_always_available":true,"tos_version_for_signup":"1-2026-04-04","workflow":{"$schema":"amply.agent_workflow_manifest/1","version":"3.1.13","origin":"https://www.flightmedia.app","auth_mode":"api_key","credential_before_catalog":true,"bootstrap_sequence":"discover → health → schema → credential (optional agent signup → dashboard fallback) → catalog → route → outcome → audit","principal_binding_policy":{"summary":"Use a user-bound Bearer key (amply_sk_* from credential_agent_signup or dashboard api-keys) before route. Server operator keys in AMPLY_API_KEYS return recommendations but integration.principal_attached is false under metering—no wallet debit, quota, or scoped audit.","check_response_field":"integration.principal_attached on POST /api/v1/route","check_response_headers":["X-Amply-Principal-Bound","X-Amply-Auth-Source"],"documentation_url":"https://www.flightmedia.app/docs#production-keys","recommended_machine_flow":[{"step":1,"method":"GET","path":"/api/v1/agent","goal":"load ordered steps + policy"},{"step":2,"method":"GET","path":"/api/v1/status","goal":"read diagnostics.agent_signup + diagnostics.principal_binding"},{"step":3,"method":"POST","path":"/api/v1/signup/agent","goal":"mint amply_sk_* (skip if disabled; use dashboard keys instead)","optional_unless_signup_enabled":true},{"step":4,"method":"POST","path":"/api/v1/route","goal":"verify X-Amply-Principal-Bound: 1 and integration.principal_attached true when metering is on"}]},"route_rate_limit":{"enabled":true,"requests_per_minute_per_ip":120},"agent_signup":{"enabled":true,"requires_shared_secret":false,"tos_version":"1-2026-04-04","max_signups_per_hour_per_ip":10,"path":"/api/v1/signup/agent","workflow_manifest_path":"/api/v1/agent"},"steps":[{"id":"discover","method":"GET","path":"/api/v1/agent","purpose":"Load this workflow manifest (you are here).","auth":"none"},{"id":"health","method":"GET","path":"/api/v1/status","purpose":"Version, auth_mode, catalog diagnostics, rate_limit.","auth":"none"},{"id":"schema","method":"GET","path":"/api/v1/openapi","purpose":"OpenAPI 3 document for tools.","auth":"none"},{"id":"credential_agent_signup","method":"POST","path":"/api/v1/signup/agent","purpose":"Mint amply_sk_* (user-bound principal) before routing — required for wallet debit, quota, and tenant-scoped audit on POST /api/v1/route.","auth":"none","body":{"accept_tos_version":"1-2026-04-04","label":"optional string"},"response_extract":["api_key","principal_id","quickstart.post_route"]},{"id":"credential_oauth_fallback","method":"HUMAN","path":"/dashboard/api-keys","purpose":"Human-operated alternative to agent signup: create a user-bound key after Google sign-in (same wallet, quota, and audit scoping as amply_sk_*).","auth":"browser_session","absolute_url":"https://www.flightmedia.app/dashboard/api-keys"},{"id":"catalog","method":"GET","path":"/api/v1/providers","purpose":"Comparable provider snapshot. Complete credential steps first so POST /api/v1/route uses a user-bound Bearer (expect response header X-Amply-Principal-Bound: 1).","auth":"none"},{"id":"route","method":"POST","path":"/api/v1/route","purpose":"Ranked provider recommendation. Prefer a user-bound Bearer key so integration.principal_attached is true, wallet debits/quota/audit apply, and response headers X-Amply-Principal-Bound=1.","auth":"bearer","body_keys":["task"]},{"id":"outcome","method":"POST","path":"/api/v1/route/outcome","purpose":"Optional execution feedback after using route result.","auth":"bearer","body_keys":["request_id","provider_id","outcome"]},{"id":"audit","method":"GET","path":"/api/v1/route/audit","purpose":"Deterministic audit bundle (decision + usage + outcomes + proof_sha256) for a request_id; scoped to caller principal.","auth":"bearer","query":{"request_id":"uuid from POST /api/v1/route"}}],"commercial":{"agent_builder_usage":{"summary":"Agent/builder access follows a prepaid usage model: deposit balance, then route calls debit it. Inspect usage and estimated_charge_usd on POST /api/v1/route for machine-readable economics.","inspect_response_path":"usage","pricing_human_url":"https://www.flightmedia.app/#pricing","documentation_url":"https://www.flightmedia.app/docs"},"provider_catalog_intent":{"summary":"Catalog placement is editorial; there is no self-serve paid ranking. Use mailto for consideration requests.","mailto_href":"mailto:support@useamply.com?subject=Catalog%20consideration","human_url":"https://www.flightmedia.app/catalog"},"optional_stripe_listing_url":"https://buy.stripe.com/eVqeVd7apavR4T37If5sA00","note":"optional_stripe_listing_url may be configured for legacy listing flows; it does not override editorial catalog policy."}}}