/api/apisAuthenticatedRegister an API server
Registers a new API server (resource server). The body's ownership fields decide who owns it: platform (administrators only), an organization the caller owns/administers, or the caller's own account (when user-owned resources are enabled). hardcoded must be false; created_at/created_by are set by the server. Every API server starts with the owning_organization membership visibility: a body asking for any other value is refused with 400, since widening it is a platform administrator's decision made afterwards with PUT /api/apis/{api_server_id}/organization-membership-visibility. Likewise every API server starts without delegated tokens (accept_delegated_tokens: true is refused with 400); its managers turn them on afterwards with PUT /api/apis/{api_server_id}/delegated-token-policy.
post_api_apisAPI serversAuthentication & permissionsAuthenticated
Any authenticated user
- Accepted credentials
- Auth server session (refresh token cookie)
cookie "refresh_token_<auth_server_app_id>" - Access token (cookie)
cookie "access_token_<auth_server_app_id>" - Access token (Bearer)
Authorization: Bearer <JWT>
- Auth server session (refresh token cookie)
- Who may call
- Any authenticated user
- Notes
- Platform-owned API servers: administrators only. Organization-owned: organization owners/admins. User-owned: any user when the
allow_user_owned_resource_creationsetting is on.
Request body
Required — The API server to register; hardcoded must be false.
| Property | Type | Description |
|---|---|---|
| api_server_id* | string | minLength: 2maxLength: 64pattern: ^[a-z0-9_-]*$ |
| api_server_name* | string | maxLength: 64 |
| api_server_description* | string | maxLength: 512 |
| created_at* | number | minimum: 0 |
| public* | boolean | |
| hardcoded* | boolean | |
| owner_type | "platform" | "organization" | "user" | "dynamic-client-registration" | |
| owner_organization_id | string | null | null | |
| owner_uid | string (uuid) | null (uuid) | null | |
| created_by | string (uuid) | null (uuid) | null | |
| allow_dynamic_clients | boolean | |
| resource_url_match_mode | "exact" | "prefix" | |
| organization_membership_visibility | "owning_organization" | "all_organizations" | |
| accept_delegated_tokens | boolean |
Responses
| Property | Type | Description |
|---|---|---|
| success* | true | |
| message* | string | |
| resource_id* | string | Identifier of the created / affected resource |
Example request
curl -X POST 'https://auth.schemavaults.com/api/apis' \
-b 'refresh_token_<auth_server_app_id>=<value>' \
-H 'Content-Type: application/json' \
-d '{
"api_server_id": "string",
"api_server_name": "string",
"api_server_description": "string",
"created_at": 1.5,
"public": true,
"hardcoded": true,
"owner_type": "platform",
"owner_organization_id": "string",
"owner_uid": "123e4567-e89b-12d3-a456-426614174000",
"created_by": "123e4567-e89b-12d3-a456-426614174000",
"allow_dynamic_clients": true,
"resource_url_match_mode": "exact",
"organization_membership_visibility": "owning_organization",
"accept_delegated_tokens": true
}'