Update an embedder
Updates an existing embedder configuration including display information, endpoint configuration, model parameters, credentials, and labels. All fields are optional - only specified fields will be updated.
IMPORTANT: providerType is IMMUTABLE after creation and cannot be changed.
CRITICAL: Returns HTTP 412 Precondition Failed (FAILED_PRECONDITION) if attempting to update core fields (dimensionality, distributionType, modelIdentifier) while the embedder is actively referenced by spaces or ingestion jobs.
DUPLICATE DETECTION: Returns HTTP 409 Conflict (ALREADY_EXISTS) if the update would create a duplicate embedder with the same provider, endpoint, model, dimensionality, distribution, and credentials for this owner. Requires UPDATE_EMBEDDER_OWN permission for embedders you own (or UPDATE_EMBEDDER_ANY for admin users).
In: header
Path Parameters
The unique identifier of the embedder to update
Embedder update details
User-facing name of the embedder
"Updated OpenAI Embedder"1 <= length <= 255Description of the embedder
"Updated description for OpenAI's text embedding model"API endpoint URL
"https://api.openai.com/v1"API path for embeddings request
"/embeddings"Model identifier
"text-embedding-3-small"Output vector dimensions
1536int32Maximum input sequence length
8192int32Supported content modalities
["TEXT","IMAGE"]Structured credential payload describing how to authenticate with the provider
{"kind":"CREDENTIAL_KIND_API_KEY","apiKey":{"inlineSecret":"sk-rotated-api-key"}}Structured credential payload describing how GoodMem should authenticate with an upstream provider.
Credential strategy — fixed to CREDENTIAL_KIND_API_KEY for this variant
"CREDENTIAL_KIND_API_KEY"Configuration when kind is CREDENTIAL_KIND_API_KEY
{"inlineSecret":"sk-1234567890abcdef","secretRef":{"uri":"vault://path/to/secret"},"headerName":"Authorization","prefix":"Bearer "}Optional annotations to aid operators (e.g., "owner=vertex")
properties <= 20Empty Object
Structured credential payload describing how GoodMem should authenticate with an upstream provider.
Credential strategy — fixed to CREDENTIAL_KIND_GCP_ADC for this variant
"CREDENTIAL_KIND_GCP_ADC"Configuration when kind is CREDENTIAL_KIND_GCP_ADC
{"scopes":["https://www.googleapis.com/auth/cloud-platform"],"quotaProjectId":"my-quota-project"}Optional annotations to aid operators (e.g., "owner=vertex")
properties <= 20Empty Object
Replace all existing labels with these (mutually exclusive with mergeLabels)
{"environment":"production","team":"nlp"}properties <= 20Empty Object
Merge these labels with existing ones (mutually exclusive with replaceLabels)
{"environment":"production","team":"nlp"}properties <= 20Empty Object
Version information
"1.0.0"Monitoring endpoint URL
"https://monitoring.example.com/embedders/status"Response Body
curl -X PUT "http://localhost:8080/v1/embedders/550e8400-e29b-41d4-a716-446655440000" \ -H "Content-Type: application/json" \ -d '{ "displayName": "Updated Production Embedder", "description": "Updated OpenAI embedding model with enhanced configuration for production use", "endpointUrl": "https://api.openai.com/v1", "apiPath": "/embeddings", "modelIdentifier": "text-embedding-3-large", "dimensionality": 3072, "maxSequenceLength": 8192, "supportedModalities": [ "TEXT" ], "credentials": { "apiKey": { "inlineSecret": "sk-updated-api-key-here", "secretRef": { "uri": "vault://path/to/secret" }, "headerName": "Authorization", "prefix": "Bearer " }, "kind": "CREDENTIAL_KIND_API_KEY" }, "replaceLabels": { "environment": "production", "team": "ml-platform", "cost-center": "ai-infrastructure" }, "mergeLabels": { "environment": "production", "team": "nlp" }, "version": "2.0.1", "monitoringEndpoint": "https://monitoring.company.com/embedders/status" }'{
"embedderId": "550e8400-e29b-41d4-a716-446655440000",
"displayName": "OpenAI Ada-2",
"description": "OpenAI's text embedding model with 1536 dimensions",
"providerType": "OPENAI",
"endpointUrl": "https://api.openai.com/v1",
"apiPath": "/embeddings",
"modelIdentifier": "text-embedding-3-small",
"dimensionality": 1536,
"distributionType": "DENSE",
"maxSequenceLength": 8192,
"supportedModalities": [
"TEXT"
],
"credentials": {
"apiKey": {
"inlineSecret": "sk-1234567890abcdef",
"secretRef": {
"uri": "vault://path/to/secret"
},
"headerName": "Authorization",
"prefix": "Bearer "
},
"gcpAdc": {
"scopes": [
"https://www.googleapis.com/auth/cloud-platform"
],
"quotaProjectId": "my-quota-project"
}
},
"labels": {
"environment": "production",
"team": "nlp"
},
"version": "1.0.0",
"monitoringEndpoint": "https://monitoring.example.com/embedders/status",
"ownerId": "550e8400-e29b-41d4-a716-446655440000",
"createdAt": 1617293472000,
"updatedAt": 1617293472000,
"createdById": "550e8400-e29b-41d4-a716-446655440000",
"updatedById": "550e8400-e29b-41d4-a716-446655440000"
}