Create key
Issue a program credential with a cluster, namespace, or collection scope.
/keysPermissionCluster key, or a namespace key managing collection keys within its namespace. Key scopes and actions.
- The secret appears only in the create response. Store it securely before continuing.
- Namespace and collection scopes require a nonempty actions list. New actions must be a subset of the creator’s actions.
- Keys remain active until revoked. They have no expiry field.
Request body
Responses
201Key created
The new credential. secret appears only in this response.
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.
The path of the new resource, by ids.
Time the resource was created, as an ISO 8601 UTC timestamp.
Immutable administrative key ID with the key_ prefix. This is not the secret used to authenticate.
Administrative name assigned when this key was created.
Short non-secret prefix used to identify the credential.
Time the key was revoked. Omitted while the key remains active.
Resource scope and actions granted to this key.
Credential returned only once, in the create response. Store it securely on your server. Later list responses omit it.
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.
- 409already_exists
The requested resource name already exists.
What to do: Use a different key name, or list the existing keys before continuing.
- 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.