Skip to main content

Model Configurations API

Model Configurations combine a model definition with a credential and optional default parameters to create a ready-to-use model for workflow prompt entities.

Endpoints

OperationMethodEndpoint
List ConfigurationsGET/api/model-configurations
Create ConfigurationPOST/api/model-configurations
Get ConfigurationGET/api/model-configurations/{id}
Update ConfigurationPUT/api/model-configurations/{id}
Delete ConfigurationDELETE/api/model-configurations/{id}

List Configurations

GET /api/model-configurations?organizationId={id}&includeSystem=true

Query Parameters

ParameterTypeDefaultDescription
organizationIdUUIDFilter by organization
scopestringsystem or organization
includeSystemstringfalseInclude system-level configs alongside org configs
visibleOnlystringtrueOnly return visible configurations
categorystringFilter by model category (e.g., chat)

Response

{
"data": [
{
"id": "config-uuid-1",
"scope": "organization",
"organizationId": "org-uuid",
"name": "GPT-4o Production",
"description": "Primary model for content generation",
"defaultTemperature": 0.7,
"defaultMaxTokens": 4096,
"defaultTimeout": 30000,
"isVisible": true,
"isDefault": true,
"priority": 1,
"modelDefinition": {
"id": "def-uuid",
"slug": "gpt-4o",
"displayName": "GPT-4o",
"modelId": "gpt-4o",
"category": "chat",
"tier": "premium",
"supportsVision": true,
"provider": {
"slug": "openai",
"name": "OpenAI"
}
},
"credential": {
"id": "cred-uuid",
"name": "Production OpenAI Key",
"hasApiKey": true,
"provider": {
"slug": "openai",
"name": "OpenAI"
}
},
"createdAt": "2026-02-01T10:00:00Z",
"updatedAt": "2026-03-20T14:30:00Z"
}
]
}

Create Configuration

POST /api/model-configurations
Content-Type: application/json

{
"scope": "organization",
"organizationId": "org-uuid",
"modelDefinitionId": "def-uuid",
"credentialId": "cred-uuid",
"name": "GPT-4o Production",
"description": "Primary model for content generation",
"defaultTemperature": 0.7,
"defaultMaxTokens": 4096,
"isVisible": true,
"isDefault": true,
"priority": 1
}

Required Fields

FieldTypeDescription
scopestringsystem or organization
modelDefinitionIdUUIDWhich model to use
credentialIdUUIDWhich credential to authenticate with
namestringDisplay name

Optional Fields

FieldTypeDefaultDescription
organizationIdUUIDRequired if scope is organization
descriptionstringDescription
baseUrlOverridestringOverride provider's default base URL
defaultTemperaturenumberDefault sampling temperature
defaultMaxTokensintegerDefault max response tokens
defaultTimeoutintegerDefault request timeout (ms)
isVisiblebooleantrueShow in model selectors
isDefaultbooleanfalseDefault selection for new entities
priorityinteger0Sort order (lower = higher priority)
fallbackConfigIdUUIDConfiguration to use if this one fails

curl Examples

# List configs for an org (including system ones)
curl -X GET "https://console.rocketwavelabs.io/api/model-configurations?organizationId=ORG_ID&includeSystem=true" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN"

# Create a configuration
curl -X POST "https://console.rocketwavelabs.io/api/model-configurations" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_SERVICE_TOKEN" \
-d '{
"scope": "organization",
"organizationId": "ORG_ID",
"modelDefinitionId": "DEF_ID",
"credentialId": "CRED_ID",
"name": "Claude 3.5 Sonnet",
"defaultTemperature": 0.5,
"defaultMaxTokens": 8192
}'

JavaScript Examples

// List all available configurations for model selection
const response = await fetch(
`/api/model-configurations?organizationId=${orgId}&includeSystem=true`
);
const { data: configs } = await response.json();

// Group by provider
const byProvider = configs.reduce((acc, config) => {
const provider = config.modelDefinition?.provider?.name || 'Unknown';
(acc[provider] = acc[provider] || []).push(config);
return acc;
}, {});