v1

latestOpenAPI 3.1.0Apache-2.02026-07-13136499.6 KB
Confidential Embeddings

Create confidential embeddings

This endpoint follows the OpenAI API format for generating vector embeddings from input text, but with confidential processing (through AEAD encryption and TEE hardware). The handler receives pre-processed metadata from middleware and forwards the request to the selected node.

Returns

  • Ok(Response) - The embeddings response from the processing node
  • Err(AtomaProxyError) - An error status code if any step fails

Errors

  • INTERNAL_SERVER_ERROR - Processing or node communication failures
post/v1/confidential/embeddings

Request body

ciphertextstring required

The encrypted payload that needs to be processed (base64 encoded)

client_dh_public_keystring required

Client's public key for Diffie-Hellman key exchange (base64 encoded)

model_namestring required

Model name

node_dh_public_keystring required

Node's public key for Diffie-Hellman key exchange (base64 encoded)

noncestring required

Cryptographic nonce used for encryption (base64 encoded)

num_compute_unitsinteger nullable

Number of compute units to be used for the request, for image generations, as this value is known in advance (the number of pixels to generate)

plaintext_body_hashstring required

Hash of the original plaintext body for integrity verification (base64 encoded)

saltstring required

Salt value used in key derivation (base64 encoded)

stack_small_idinteger required

Unique identifier for the small stack being used

streamboolean nullable

Indicates whether this is a streaming request

Response

Confidential embeddings generated successfully

ciphertextstring required

Encrypted response body (base64 encoded)

noncestring required

Nonce used for encryption (base64 encoded)

response_hashstring nullable

Hash of the response body (base64 encoded)

signaturestring nullable

Signature of the response body (base64 encoded)

Example response

{
  "usage": {
    "completion_tokens": 10,
    "completion_tokens_details": {
      "accepted_prediction_tokens": 10,
      "reasoning_tokens": 10
    },
    "prompt_tokens": 10,
    "prompt_tokens_details": {
      "cached_tokens": 10
    },
    "total_tokens": 20
  }
}