GoodMem
ReferenceAPIREST APIEmbedders

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).

PUT
/v1/embedders/{id}
x-api-key<token>

In: header

Path Parameters

idstring

The unique identifier of the embedder to update

Embedder update details

validateLabelStrategy?object

Empty Object

displayName?string | null

User-facing name of the embedder

Length1 <= length <= 255
description?string | null

Description of the embedder

endpointUrl?string | null

API endpoint URL

apiPath?string | null

API path for embeddings request

modelIdentifier?string | null

Model identifier

dimensionality?integer | null

Output vector dimensions

Formatint32
maxSequenceLength?integer | null

Maximum input sequence length

Formatint32
supportedModalities?array<Modality> | null

Supported content modalities

credentials?EndpointAuthentication

Structured credential payload describing how to authenticate with the provider

replaceLabels?object | null

Replace all existing labels with these (mutually exclusive with mergeLabels)

Propertiesproperties <= 20

Empty Object

mergeLabels?object | null

Merge these labels with existing ones (mutually exclusive with replaceLabels)

Propertiesproperties <= 20

Empty Object

version?string | null

Version information

monitoringEndpoint?string | null

Monitoring endpoint URL

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": "{\\\"kind\\\":\\\"CREDENTIAL_KIND_API_KEY\\\",\\\"apiKey\\\":{\\\"inlineSecret\\\":\\\"sk-updated-api-key-here\\\"}}",    "version": "2.0.1",    "monitoringEndpoint": "https://monitoring.company.com/embedders/status",    "replaceLabels": {      "environment": "production",      "team": "ml-platform",      "cost-center": "ai-infrastructure"    }  }'
{
  "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"
  ],
  "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"
}
Empty
Empty
Empty
Empty
Empty
Empty