Encrypted inference
Resolve encrypted model
Resolve an encrypted model to its native model ID and an exact offer before your SDK encrypts the request.
https://api.numes.ai/api/v1/e2ee/resolveSend a discovered :e2ee model ID with an inference key. The response names the native model to put inside the encrypted request, the offer to bind with the X-Inference-* headers, and the encryption transport, protocol and security_policy your client must check before sending. It never contains an encryption key or provider credential. Resolution sends no prompt and costs nothing. Guide: Encrypted inference.
Resolution doesn't reserve capacity or authorize a later request: availability, access and balance are checked again when you send it. Resolve again after a route becomes unavailable.
A model ID without the :e2ee qualifier returns 400. When no provider can serve the model, including unknown, unpublished, other-currency and inaccessible shared models, the response is 503 provider_unavailable; it doesn't reveal whether an inaccessible model exists. See Errors.
Authorization
AuthorizationheaderRequired
Bearer inference key. Charges settle in the key's billing currency. Authorization: Bearer $NUMES_API_KEY
Request body
application/jsonThe contract declares a 4 KiB body limit. The size the service enforces is listed in Limits.
Responses
200Current selection and required protocol/security policy for a qualified encrypted clientapplication/json
BodyEncryptedModelResolutionapplication/json
transportenum<string>RequiredEncryption profile the client must use for this offer. Tinfoil uses enclave attestation; Venice uses provider-managed key discovery with weaker independent verification (see the encrypted inference guide).
One oftinfoil-ehbpsynthetic-ehbpsynthetic-fields-v1venice-ecies-v1
503No eligible provider can serve the request. Unknown, unpublished, currency-mismatched and unauthorized shared model IDs receive the same bounded response (`error.code` 503, `error.metadata.error_type` "provider_unavailable", message "no provider is available"). Inference and encrypted resolution do not classify model existence after routing fails. Earlier validation and authorization errors remain unchanged. An interrupted server execution while the original HTTP caller remains connected also uses 503 provider_unavailable with the fixed message "service temporarily unavailable". Once streaming has started, the error is in-band and the HTTP status remains 200. If an otherwise eligible USD-indexed Bitcoin offer is blocked by an unavailable market reference, or its reference expires before dispatch, the response instead uses 503 with error_type "bitcoin_reference_price_unavailable" and message "Bitcoin pricing is unavailable. Try again shortly."application/json
ErrorCompatible error envelopeapplication/json
Headers