GoodMem
ReferenceAPIREST APIRerankers

Update a reranker

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. 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_OWN permission for rerankers you own (or UPDATE_RERANKER_ANY for admin users). 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

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

Description of the reranker

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

API endpoint URL

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

API path for reranking request

Default"/rerank"
modelIdentifier?string | null

Model identifier

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

Supported content modalities

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

Structured credential payload describing how to authenticate with the provider. Omit to keep existing credentials.

Default{"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

Default"CREDENTIAL_KIND_API_KEY"
apiKeyApiKeyAuth

Configuration when kind is CREDENTIAL_KIND_API_KEY

Default{"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

Default"CREDENTIAL_KIND_GCP_ADC"
gcpAdcGcpAdcAuth

Configuration when kind is CREDENTIAL_KIND_GCP_ADC

Default{"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)

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

Empty Object

mergeLabels?object | null

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

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

Empty Object

version?string | null

Version information

Default"1.0.0"
monitoringEndpoint?string | null

Monitoring endpoint URL

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

Response Body

curl -X PUT "http://localhost:8080/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