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.

PUT
/v1/rerankers/{id}

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 an equivalent reranker configuration for this owner after endpoint canonicalization and provider-default resolution (HTTP 409 Conflict / ALREADY_EXISTS). Requires UPDATE_RERANKER on the requested reranker. This operation is idempotent.

Authorization

ApiKeyAuth
headerx-api-key<token>

Path Parameters

id*string

The unique identifier of the reranker to update

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

Request Body

Updated reranker configuration details

application/json
  1. body

Request body for updating an existing Reranker. Only fields that should be updated need to be included. supportedModalities replaces the stored set only when the array contains at least one value; empty or omitted leaves it unchanged and does not count as an update by itself.

displayName?|

User-facing name of the reranker

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

Description of the reranker

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

API endpoint URL

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

API path for reranking request

Example"/rerank"
modelIdentifier?|

Model identifier

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

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?||

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"  }}
replaceLabels?|

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

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

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

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

Version information

Example"1.0.0"
monitoringEndpoint?|

Monitoring endpoint URL

Example"https://monitoring.example.com/rerankers/status"
dashscopeApiDialect?|

Update the DashScope request and response API dialect. Valid only for the DASHSCOPE provider. Omit to preserve the stored dialect. Changing apiPath to a recognized canonical DashScope dialect infers its matching dialect; a custom path preserves an existing dialect, while a legacy null dialect is inferred.

Example"RERANK_NATIVE_NESTED"
Value in"RERANK_NATIVE_NESTED""RERANK_COMPATIBLE_FLAT"

Response Body

Successfully updated reranker

application/json
  1. response

Reranker configuration information

rerankerId*string

Unique identifier of the reranker

Formatuuid
Example"550e8400-e29b-41d4-a716-446655440000"
displayName*string

User-facing name of the reranker

Example"BGE Cross-Encoder Reranker"
description?|

Description of the reranker

Example"BAAI BGE reranker for cross-encoder semantic ranking"
providerType*ProviderType

Type of reranking provider

Example"TEI"
Value in"OPENAI""VLLM""TEI""LLAMA_CPP""VOYAGE""COHERE""JINA""DASHSCOPE""GEMINI"
endpointUrl*string

API endpoint URL

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

API path for reranking request

Example"/rerank"
modelIdentifier*string

Model identifier

Example"BAAI/bge-reranker-base"
supportedModalities*array<>

Supported content modalities

credentials?||

Stored credentials; present only when GetReranker explicitly requests them and the caller has READ_RERANKER_CREDENTIALS. Always omitted from create, update, and list responses.

Example
{  "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*

User-defined labels for categorization

Example
{  "environment": "production",  "team": "search"}
version?|

Version information

Example"1.0.0"
monitoringEndpoint?|

Monitoring endpoint URL

Example"https://monitoring.example.com/rerankers/status"
ownerId*string

Owner ID of the reranker

Formatuuid
Example"550e8400-e29b-41d4-a716-446655440000"
createdAt*integer

Creation timestamp (milliseconds since epoch)

Formatint64
Example1617293472000
updatedAt*integer

Last update timestamp (milliseconds since epoch)

Formatint64
Example1617293472000
createdById*string

ID of the user who created the reranker

Formatuuid
Example"550e8400-e29b-41d4-a716-446655440000"
updatedById*string

ID of the user who last updated the reranker

Formatuuid
Example"550e8400-e29b-41d4-a716-446655440000"
dashscopeApiDialect?|

Configured DashScope request and response API dialect; present only for DashScope configurations with a persisted dialect.

Example"RERANK_NATIVE_NESTED"
Value in"RERANK_NATIVE_NESTED""RERANK_COMPATIBLE_FLAT"
Example Request
curl -X PUT 'https://your-goodmem-server.example.com/v1/rerankers/550e8400-e29b-41d4-a716-446655440000' \  -H 'GoodMem-Timeout-Ms: 30000' \  -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",  "dashscopeApiDialect": "RERANK_NATIVE_NESTED"}'
Example Response
{  "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",  "dashscopeApiDialect": "RERANK_NATIVE_NESTED"}