Update metadata fields
List, change, or remove the file metadata fields that filters can read.
/namespaces/{namespace}/collections/{collection}/metadata-fieldsPermissionCluster key, or a scoped key with write on this collection. Key scopes and actions.
- Fields that you omit keep their type. Send null for a field to remove it from the list.
- A change returns 202 with a reindex_metadata job. Filters are checked against the new fields at once, so a removed key returns not_listed, but they read the old index until the job succeeds. A request that changes nothing returns 200 with the fields, also while a job runs.
- On a collection with no files, the job succeeds at once. On a collection with files, the index is rebuilt in the background, and the job stays running until the rebuild is done. Poll Get job until it succeeds.
- A collection lists at most 256 fields. A change while the index of the last change is still being rebuilt returns operation_in_progress.
Path parameters
Namespace name or ns_ ID. It must be visible to this key.
Collection name or col_ ID within the namespace. It must be visible to this key.
Request body
Map of metadata key to its setting. A setting lists the field with that type. null removes the field. Keys that you omit keep their setting.
Responses
200No change
The request gave the same fields. The response is the field list.
application/json
Response headers
The Engine request ID. Retain it when investigating a failed or unexpected request.
The X-Request-Id you sent, echoed when it is a valid ID. Otherwise, the Engine request ID.
Map of metadata key to the field. Only these keys can be used in a filter.
202Reindex accepted
The field list changed. The response is the job that rebuilds the metadata index.
application/json
Response headers
The Engine request ID. Retain it when investigating a failed or unexpected request.
The X-Request-Id you sent, echoed when it is a valid ID. Otherwise, the Engine request ID.
Collection name when this job belongs to a collection. Otherwise omitted.
Time the resource was created, as an ISO 8601 UTC timestamp.
Failure details, or null when no failure is recorded.
File ID when this job acts on one file. Otherwise omitted.
Immutable job ID with the job_ prefix. Use it to read the current state.
Namespace name when this job belongs to a namespace.
Current state of the asynchronous work. succeeded, failed, and canceled are terminal states.
- queued
- Accepted and waiting to start.
- running
- Work is in progress.
- succeeded
- Work completed successfully.
- failed
- Work ended with an error.
- canceled
- Work ended after cancellation.
Kind of work accepted by the API.
- index_file
- Index a new or replacement file.
- delete_file
- Remove a file and clean its derived data.
- reindex_collection
- Rebuild the collection’s derived data.
- delete_collection
- Remove a collection and its derived data.
- delete_namespace
- Remove a namespace and its collections.
- apply_access_rule
- Apply changed governing rules to affected files.
- reindex_metadata
- Rebuild the metadata index after a change of the metadata fields.
Time the resource last changed, as an ISO 8601 UTC timestamp.
Errors
Select an error in the response example to see its JSON body. See error handling for the common error format.
- 400invalid_request
A field, path, parameter, or conditional request rule is invalid.
What to do: Correct the request. Unknown fields are rejected.
- 401unauthenticated
The API key is missing, invalid, or revoked.
What to do: Send an active key in Authorization: Bearer or X-API-Key.
- 403forbidden
The key can see the resource but lacks permission for this operation.
What to do: Use a key with the required action or scope kind.
- 404not_found
The resource is absent, deleted, or outside this key’s scope.
What to do: Check the identifier and the key’s namespace and collection scope.
- 409operation_in_progress
An unfinished operation conflicts with this request.
What to do: Inspect the existing job and wait for its completion event before retrying.
- 413request_too_large
The JSON body exceeds the route limit: 6,291,456 bytes on :answer and research, 4,194,304 bytes on :search and :read-spans, and 1,048,576 bytes elsewhere.
What to do: Reduce the JSON body. Use upload or a URI source for larger file content.
- 500internal_error
An unexpected server failure prevented this request from completing.
What to do: Retain request_id for investigation. Follow retryable before retrying a write.