GoodMemGoodMem
ReferenceAPIREST APIRerankers

Update a reranker

PUT /v1/rerankers/{id}: Updates an existing reranker configuration including display information, endpoint configuration, model parameters, credentials, and labels.

Updates an existing reranker configuration including display information, endpoint configuration, model parameters, credentials, and labels. All fields are optional - only specified fields will be updated.

IMMUTABLE FIELDS: providerType and ownerId cannot be changed after creation. SUPPORTED_MODALITIES

UPDATE: If the array contains >=1 elements, it replaces the stored set; if empty or omitted, no change occurs and it does not count as an update by itself. Returns ALREADY_EXISTS if update would create duplicate with same {ownerId, providerType, endpointUrl, apiPath, modelIdentifier, credentialsFingerprint} after URL canonicalization (HTTP 409 Conflict / ALREADY_EXISTS). Requires UPDATE_RERANKER on the requested reranker. This operation is idempotent.

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

In: header

Path Parameters

idstring

The unique identifier of the reranker to update

Updated reranker configuration details

displayName?string | null

User-facing name of the reranker

Example"Updated BGE Cross-Encoder Reranker"
Length1 <= length <= 255
description?string | null

Description of the reranker

Example"Updated description for BAAI BGE reranker"
endpointUrl?string | null

API endpoint URL

Example"http://bge.reranker.goodmem.ai:8010"
apiPath?string | null

API path for reranking request

Example"/rerank"
modelIdentifier?string | null

Model identifier

Example"BAAI/bge-reranker-base"
supportedModalities?array<Modality> | null

Update supported modalities (if array contains >=1 elements, replaces stored set; if empty or omitted, no change and does not count as an update by itself)

Example["TEXT"]
credentials?ApiKey (CREDENTIAL_KIND_API_KEY) | GcpAdc (CREDENTIAL_KIND_GCP_ADC) | None (omit this field)

Replace stored credentials. Omit this field to preserve the current credentials; a present empty payload is invalid and never clears them.

Example{"kind":"CREDENTIAL_KIND_API_KEY","apiKey":{"inlineSecret":"sk-updated-reranker-key"}}

Structured credential payload describing how GoodMem should authenticate with an upstream provider.

kindstring

Credential strategy — fixed to CREDENTIAL_KIND_API_KEY for this variant

apiKeyApiKeyAuth

Configuration when kind is CREDENTIAL_KIND_API_KEY

Example{"inlineSecret":"sk-1234567890abcdef","secretRef":{"uri":"vault://path/to/secret"},"headerName":"Authorization","prefix":"Bearer "}
labels?object | null

Optional annotations to aid operators (e.g., "owner=vertex")

Propertiesproperties <= 20

Empty Object

Structured credential payload describing how GoodMem should authenticate with an upstream provider.

kindstring

Credential strategy — fixed to CREDENTIAL_KIND_GCP_ADC for this variant

gcpAdcGcpAdcAuth

Configuration when kind is CREDENTIAL_KIND_GCP_ADC

Example{"scopes":["https://www.googleapis.com/auth/cloud-platform"],"quotaProjectId":"my-quota-project"}
labels?object | null

Optional annotations to aid operators (e.g., "owner=vertex")

Propertiesproperties <= 20

Empty Object

replaceLabels?object | null

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

Example{"environment":"production","team":"search"}
Propertiesproperties <= 20

Empty Object

mergeLabels?object | null

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

Example{"environment":"production","team":"search"}
Propertiesproperties <= 20

Empty Object

version?string | null

Version information

Example"1.0.0"
monitoringEndpoint?string | null

Monitoring endpoint URL

Example"https://monitoring.example.com/rerankers/status"

Response Body

curl -X PUT "https://your-goodmem-server.example.com/v1/rerankers/550e8400-e29b-41d4-a716-446655440000" \  -H "Content-Type: application/json" \  -d '{    "displayName": "Updated Production BGE Reranker",    "description": "Updated BAAI BGE cross-encoder reranker with enhanced configuration for production use",    "endpointUrl": "http://bge.reranker.goodmem.ai:8010",    "apiPath": "/rerank",    "modelIdentifier": "BAAI/bge-reranker-large",    "supportedModalities": [      "TEXT"    ],    "credentials": {      "apiKey": {        "inlineSecret": "updated-api-key-here",        "secretRef": {          "uri": "vault://path/to/secret"        },        "headerName": "Authorization",        "prefix": "Bearer "      },      "kind": "CREDENTIAL_KIND_API_KEY"    },    "replaceLabels": {      "environment": "production",      "team": "search-platform",      "cost-center": "ml-infrastructure"    },    "mergeLabels": {      "environment": "production",      "team": "search"    },    "version": "2.1.0",    "monitoringEndpoint": "https://monitoring.company.com/rerankers/status"  }'
{
  "rerankerId": "550e8400-e29b-41d4-a716-446655440000",
  "displayName": "BGE Cross-Encoder Reranker",
  "description": "BAAI BGE reranker for cross-encoder semantic ranking",
  "providerType": "TEI",
  "endpointUrl": "http://bge.reranker.goodmem.ai:8010",
  "apiPath": "/rerank",
  "modelIdentifier": "BAAI/bge-reranker-base",
  "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": "search"
  },
  "version": "1.0.0",
  "monitoringEndpoint": "https://monitoring.example.com/rerankers/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