GoodMemGoodMem
ReferenceAPIREST APIEmbedders

List embedders

GET /v1/embedders: Retrieves a list of embedder configurations accessible to the caller, with optional filtering.

GET
/v1/embedders

Retrieves a list of embedder configurations accessible to the caller, with optional filtering.

LABEL FILTERS: Label filters accept either label.<key>=<value> or label[key]=value (for example, label.environment=production or label[environment]=production).

AUTHORIZATION: Requires LIST_EMBEDDER on the GoodMem instance. Each returned embedder must also be visible through READ_EMBEDDER; unauthorized embedders are filtered in PostgreSQL. The ownerId parameter filters that already-authorized result set and does not grant additional visibility. This is a read-only operation with no side effects.

Authorization

ApiKeyAuth
headerx-api-key<token>

Query Parameters

ownerId?string

Filter the already-authorized result set by owner principal UUID. Omitting this parameter does not bypass per-embedder READ_EMBEDDER filtering.

providerType?string

Filter embedders by provider type. Allowed values match the ProviderType schema.

Value in"OPENAI""VLLM""TEI""LLAMA_CPP""VOYAGE""COHERE""JINA""DASHSCOPE""GEMINI"
label?

Filter by label key-value pairs. Label filters accept either label.<key>=<value> or label[key]=value (for example, label.environment=production or label[environment]=production).

Example
{  "environment": "production",  "team": "nlp"}

Header Parameters

GoodMem-Timeout-Ms?integer

Optional waiting budget in milliseconds, measured from REST servlet ingress and shared across all internal gRPC calls. Supply one decimal integer from 1 to 86400000. Omission adds no deadline. Existing shorter deadlines still apply. Expiry returns HTTP 504 before streaming starts; after streaming starts, no successful completion event is sent. Use SSE or opt into GoodMem-Stream-Terminal for an explicit terminal outcome. Retrieval work is cooperatively cancelled. An accepted mutation may still commit after timeout or disconnect; a failed response does not imply rollback.

Formatint64
Range1 <= value <= 86400000

Response Body

Successfully retrieved embedders

application/json
  1. response

Response containing a list of embedders

embedders*array<>

List of embedder configurations

Example Request
curl -X GET 'https://your-goodmem-server.example.com/v1/embedders?ownerId=550e8400-e29b-41d4-a716-446655440000&providerType=OPENAI' \  -H 'GoodMem-Timeout-Ms: 30000'
Example Response
{  "embedders": [    {      "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,      "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"        }      },      "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",      "geminiEndpointConfig": {        "backend": "DEVELOPER",        "projectId": "goodmem-production",        "location": "us-central1"      }    }  ]}