A venture self-manages through endpoints authenticated by its API key. Admins can manage
any venture by id.
Your venture
# View
curl -H "X-API-Key: sk_live_…" http://localhost:8080/api/v1/me
# Rename and/or rotate the API key (old key stops working immediately)
curl -X PATCH http://localhost:8080/api/v1/me \
-H "X-API-Key: sk_live_…" -H 'Content-Type: application/json' \
-d '{"name":"New Name","rotate_api_key":true}'
When rotate_api_key is true, the response returns the new api_key once.
Webhook endpoints
A venture can register several endpoints; each has its own signing secret.
# Add — returns `secret` ONCE
curl -X POST http://localhost:8080/api/v1/webhook-endpoints \
-H "X-API-Key: sk_live_…" -H 'Content-Type: application/json' \
-d '{"url":"https://your-app.example/webhooks"}'
# List (secrets are never returned)
curl -H "X-API-Key: sk_live_…" http://localhost:8080/api/v1/webhook-endpoints
# Update URL / status, or rotate the secret (returns the new secret once)
curl -X PATCH http://localhost:8080/api/v1/webhook-endpoints/ENDPOINT_ID \
-H "X-API-Key: sk_live_…" -H 'Content-Type: application/json' \
-d '{"rotate_secret":true}'
# Remove
curl -X DELETE http://localhost:8080/api/v1/webhook-endpoints/ENDPOINT_ID \
-H "X-API-Key: sk_live_…"
Set {"status":"DISABLED"} to pause an endpoint without deleting it. See
Webhooks for the payload and signature format.
Admin
Provisioning and cross-venture management is done by admins:
POST /api/v1/ventures — create a venture (returns its API key once).
PATCH /api/v1/ventures/{id} — update name/status or rotate the key.
POST|GET|PATCH|DELETE /api/v1/ventures/{id}/webhook-endpoints[/{endpoint_id}] — manage a venture’s endpoints.
Admin endpoints are intended for internal/operator use and should sit behind an admin
guard before production.