Responses Proxy keys
Responses Proxy data-plane requests require an org-scoped proxy key. Send the key as the Authorization bearer on POST /v1/responses.
Admin auth and data-plane auth are separate:
- Admin and registry routes use Morph org auth or a Morph service delegation token.
- Data-plane routes use proxy keys minted for the owning Morph organization.
Create a key in the console
Open the Responses page in the Morph Cloud console and switch to Proxy Keys. In the current console, this tab is shown to org admins.
- Enter a key name such as
ci-pipeline. - Click Create key.
- Copy the full secret immediately.
The full key is shown only once. Later lists show only metadata such as name, prefix, created time, last used time, and enabled/revoked state.
Create a key with the admin API
Direct admin calls require Morph bearer auth for the target organization. The backend allows the roles configured by PROXY_ADMIN_ALLOWED_ROLES, which defaults to org:admin,org:member.
export RESPONSES_PROXY_BASE_URL="https://agent-responses-proxy.svc.cloud.morph.so"
export ADMIN_HEADER="Authorization: Bearer ${SEELE_ORG_ADMIN_MORPH_API_KEY}"
Mint a key:
curl -sS -X POST "$RESPONSES_PROXY_BASE_URL/admin/keys" \
-H "$ADMIN_HEADER" \
-H "content-type: application/json" \
-d '{"name":"ci-pipeline"}'
The response includes the secret once:
{
"key": {
"id": "key_...",
"name": "ci-pipeline",
"prefix": "rpx_...",
"enabled": true
},
"secret": "rpx_..."
}
Store secret in your client environment.
Use a key
export RESPONSES_PROXY_API_KEY="rpx_..."
curl -sS "$RESPONSES_PROXY_BASE_URL/v1/responses" \
-H "Authorization: Bearer $RESPONSES_PROXY_API_KEY" \
-H "content-type: application/json" \
-d '{
"model": "openai/gpt-mini",
"input": "Reply with exactly: key ok"
}'
The key binds the request to its owning org. Routing is scoped to that org's providers and aliases.
List and revoke keys
curl -sS -H "$ADMIN_HEADER" "$RESPONSES_PROXY_BASE_URL/admin/keys"
curl -sS -X DELETE \
-H "$ADMIN_HEADER" \
"$RESPONSES_PROXY_BASE_URL/admin/keys/<key-id>"
Revoked keys stop authenticating data-plane requests. Key secrets are stored hashed and are never returned after creation.