Skip to main content
POST
/
v2
/
app-instances
Create App Instance
curl --request POST \
  --url https://public.api.serval.com/v2/app-instances \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "teamId": "<string>",
  "externalServiceInstanceId": "<string>",
  "name": "<string>",
  "customServiceId": "<string>",
  "service": "<string>",
  "defaultAccessPolicyId": "<string>",
  "accessRequestsEnabled": true
}
'
{
  "data": {
    "customServiceId": "<string>",
    "service": "<string>",
    "id": "<string>",
    "teamId": "<string>",
    "externalServiceInstanceId": "<string>",
    "name": "<string>",
    "accessRequestsEnabled": true,
    "defaultAccessPolicyId": "<string>"
  }
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json

Configuration object.

Set exactly ONE of: customServiceId, service

teamId
string
required

The ID of the team.

externalServiceInstanceId
string
required

The external service instance ID (e.g., GitHub org name, Okta domain, AWS account ID).

name
string
required

The name of the app instance.

customServiceId
string

Option: custom_service_id — The ID of a custom service to create the app instance for.

service
string

Option: service — The service identifier (for built-in services like "github", "okta", "aws").

defaultAccessPolicyId
string | null

The default access policy for the app instance (optional).

accessRequestsEnabled
boolean

Whether access requests are enabled for the app instance.

Response

Success

data
data · object

The created app instance.