Create an AI model
POST /aisix/admin/models
POST /aisix/admin/modelsInteractive request editor loads with JavaScript.
In: header
Query Parameters
AI Gateway group ID (filter resources by group).
1 <= lengthRequest Body
application/json
Response Body
application/json
application/json
application/json
curl -X POST "$API_BASE_URL/aisix/admin/models?ai_gateway_group_id=abc1234567890" \ -H "Content-Type: application/json" \ -d '{ "name": "my-gpt4o", "model": "gpt-4o", "provider_id": "provider-abc123" }'Successfully retrieved or modified the AI model.
{
"value": {
"id": "model-abc123",
"ai_gateway_group_id": "group-abc123",
"name": "openai/gpt-4o-alias",
"model": "gpt-4o",
"provider_id": "provider-abc123",
"timeout": 30000,
"rate_limit": {
"tpm": 1,
"tpd": 1,
"rpm": 1,
"rpd": 1,
"concurrency": 1
},
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
}Bad Request — The request was malformed or contained invalid parameters. Check the error_msg field for details.
{
"value": {},
"error_msg": "error message"
}Conflict — A resource with the same unique identifier (e.g., name) already exists.
{
"value": {},
"error_msg": "error message"
}Complete operation details and schema variants
POST /aisix/admin/models
Create an AI model
IAM Action: ai_gateway:CreateAIModel, Resource: arn:api7:ai_gateway:aigatewaygroup/%s
Creates a new AI model configuration in the specified AI Gateway group. The model will be synced to the aisix data plane via etcd.
Parameters
ai_gateway_group_id(query, string, required): AI Gateway group ID (filter resources by group).
Request body
Content type: application/json
name(string, required): Human-readable name for the model. Used as the model identifier in aisix proxy requests.model(string, required): Underlying model identifier used by the provider.provider_id(string, required): ID of the AIProvider that supplies credentials for this model. The provider must belong to the same AI Gateway group.timeout(integer, optional): Request timeout in milliseconds.rate_limit(object, optional): Rate limit configuration for AI requests. Field names use the abbreviated forms that match aisix's internal representation (tpm/tpd/rpm/rpd/concurrency).rate_limit.tpm(integer, optional): Maximum tokens allowed per minute (token_per_minute).rate_limit.tpd(integer, optional): Maximum tokens allowed per day (token_per_day).rate_limit.rpm(integer, optional): Maximum requests allowed per minute (request_per_minute).rate_limit.rpd(integer, optional): Maximum requests allowed per day (request_per_day).rate_limit.concurrency(integer, optional): Maximum concurrent requests allowed.
Responses
200: Successfully retrieved or modified the AI model.- allOf variant 1
value(object, optional): The specific resource.- allOf variant 2
value(object, optional): LLM model configuration in an AI Gateway group.value.id(string, optional): Unique model ID.value.ai_gateway_group_id(string, optional): ID of the AI Gateway group this model belongs to (control-plane only).value.name(string, optional): Human-readable name for the model. Used as the model identifier in aisix proxy requests.value.model(string, optional): Underlying model identifier used by the provider.value.provider_id(string, optional): ID of the AIProvider entry that supplies credentials for this model. The provider must belong to the same AI Gateway group.value.timeout(integer, optional): Request timeout in milliseconds.value.rate_limit(object, optional): Rate limit configuration for AI requests. Field names use the abbreviated forms that match aisix's internal representation (tpm/tpd/rpm/rpd/concurrency).value.rate_limit.tpm(integer, optional): Maximum tokens allowed per minute (token_per_minute).value.rate_limit.tpd(integer, optional): Maximum tokens allowed per day (token_per_day).value.rate_limit.rpm(integer, optional): Maximum requests allowed per minute (request_per_minute).value.rate_limit.rpd(integer, optional): Maximum requests allowed per day (request_per_day).value.rate_limit.concurrency(integer, optional): Maximum concurrent requests allowed.value.created_at(string, optional): Timestamp when the model was created.value.updated_at(string, optional): Timestamp when the model was last updated.400: Bad Request — The request was malformed or contained invalid parameters. Check the error_msg field for details.value(object, optional): The specific resource.error_msg(string, optional): The error message.409: Conflict — A resource with the same unique identifier (e.g., name) already exists. Response fields (application/json): identical toPOST /aisix/admin/models, response 400 above.
cURL
curl -X POST '$API_BASE_URL/aisix/admin/models'