Skip to content

platform.createPlatformModelProvider

POST
/v1/platform/model_providers
curl --request POST \
--url https://example.com/v1/platform/model_providers \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "kind": "openai", "name": "example", "endpoint": "example", "apiKey": "example", "models": [ { "model": "example", "modelOwner": "platform", "upstream": "example", "reasoningEfforts": [ "example" ], "serviceTiers": [ "example" ], "contextWindow": 1, "maxOutputTokens": 1 } ], "availability": { "_tag": "All" } }'

Adds a model provider that the platform pays for. availability says which organizations can use it.

Media typeapplication/json
object
kind
required
string
Allowed values: openai chatgpt anthropic openai-compat typesafe
name
required
string
>= 1 characters <= 120 characters
endpoint
string
>= 1 characters
apiKey
string
>= 1 characters <= 4096 characters
models
required
Array<object>
<= 200 items
object
model
required
string
>= 1 characters <= 200 characters
modelOwner
required
string
Allowed values: platform organization
upstream
string
>= 1 characters <= 200 characters
reasoningEfforts
Array<string>
<= 50 items
serviceTiers
Array<string>
<= 50 items
contextWindow
integer
> 0 <= 9007199254740991
maxOutputTokens
integer
> 0 <= 9007199254740991
availability
required
Any of:
object
_tag
required
string
Allowed values: All

Success

Media typeapplication/json
object
id
required
string
owner
required
string
Allowed values: platform organization
kind
required
string
Allowed values: openai chatgpt anthropic openai-compat typesafe
name
required
string
endpoint
required
Any of:
string
apiKey
required
object
set
required
boolean
hint
required
Any of:
string
oauth
object
connected
required
boolean
loginRequired
required
boolean
email
string
subject
string
models
required
Array<object>
object
model
required
string
>= 1 characters <= 200 characters
modelOwner
required
string
Allowed values: platform organization
upstream
string
>= 1 characters <= 200 characters
reasoningEfforts
Array<string>
<= 50 items
serviceTiers
Array<string>
<= 50 items
contextWindow
integer
> 0 <= 9007199254740991
maxOutputTokens
integer
> 0 <= 9007199254740991
availability
required
Any of:
object
_tag
required
string
Allowed values: All
version
required
integer
<= 9007199254740991
createdAt
required
string
updatedAt
required
string

Example

{
"owner": "platform",
"kind": "openai",
"models": [
{
"modelOwner": "platform"
}
],
"availability": {
"_tag": "All"
}
}

ModelProviderAuthorizationInvalid | ModelProviderInvalid

Media typeapplication/json
Any of:
object
_tag
required
string
Allowed values: ModelProviderAuthorizationInvalid
message
required
string

Example

{
"_tag": "ModelProviderAuthorizationInvalid"
}

AuthenticationRequired

Media typeapplication/json
object
_tag
required
string
Allowed values: AuthenticationRequired

Example

{
"_tag": "AuthenticationRequired"
}

@nmnmcc/ability/Authorizer/Forbidden | MembershipRequired | ForbiddenOrigin

Media typeapplication/json
Any of:
object
_tag
required
string
Allowed values: Forbidden
action
required
string
kind
required
string
field
string
reason
string

Example

{
"_tag": "Forbidden"
}

ModelProviderNotFound | ModelNotFound

Media typeapplication/json
Any of:
object
_tag
required
string
Allowed values: ModelProviderNotFound
providerId
required
string

Example

{
"_tag": "ModelProviderNotFound"
}

ModelProviderLoginRequired | ModelProviderConflict | ModelProviderInUse | ModelConflict | ModelInUse | @nmnmcc/ability/Authorizer/Pending

Media typeapplication/json
Any of:
object
_tag
required
string
Allowed values: ModelProviderLoginRequired

Example

{
"_tag": "ModelProviderLoginRequired"
}

PlatformUnavailable | OrganizationStorageUnavailable | ModelProviderOAuthUnavailable | ModelProvidersUnavailable | AuthenticationUnavailable | RequestFailed

Media typeapplication/json
Any of:
object
_tag
required
string
Allowed values: PlatformUnavailable

Example

{
"_tag": "PlatformUnavailable"
}