Your own AI credentials, encrypted per project. A saved account is configured until the provider confirms it; only a verified account is admitted into an agent pipeline or a call.
Every example below runs as written once these are exported:
bash
export DVAARIK_API_KEY="dvk_..."# project API key, server side only
export DVAARIK_TOKEN="<account access token>"# console session, from POST /console/auth/login
export ACCOUNT_ID="<uuid>"
export PROJECT_ID="<uuid>"
A <value> inside a JSON body is a value you supply. Responses are JSON; every error body is { "detail": … }. Each schema is expanded once per page, where it first appears.
The request body or query is not valid. detail is an array of {loc, msg, type} and loc names the offending field.
Plus the machine-door errors above. Full list on the errors page.
bash
curl -sS -X POST "https://api.developers.dvaarik.com/v2/provider-accounts" \
-H "X-Api-Key: $DVAARIK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"credentials": {
"<credential field from the catalogue>": "<secret>"
},
"name": "Production account",
"provider": "<provider id from the catalogue>"
}'
Ask the provider to confirm the stored credential. Confirmed becomes verified; rejected becomes invalid; a transient provider failure stays configured, so an uncertain probe never admits a call.
No account session was presented, or it is invalid or expired.
403
The account is suspended or its email is not verified.
404
The project or the addressed resource does not exist for this owner. A resource owned by another developer is deliberately indistinguishable from one that never existed.
422
The request body or query is not valid. detail is an array of {loc, msg, type} and loc names the offending field.
Plus the account-door errors above. Full list on the errors page.
bash
curl -sS -X GET "https://api.developers.dvaarik.com/console/v2/projects/$PROJECT_ID/provider-accounts?limit=20" \
-H "Authorization: Bearer $DVAARIK_TOKEN"
POST /console/v2/projects/{project_id}/provider-accounts#
Save an AI credential for this project. It is encrypted at rest and the account starts configured — saved, not yet usable.
No account session was presented, or it is invalid or expired.
403
The account is suspended or its email is not verified.
404
The project or the addressed resource does not exist for this owner. A resource owned by another developer is deliberately indistinguishable from one that never existed.
409
The project or resource is in a state that refuses this change.
422
The request body or query is not valid. detail is an array of {loc, msg, type} and loc names the offending field.
Plus the account-door errors above. Full list on the errors page.
bash
curl -sS -X POST "https://api.developers.dvaarik.com/console/v2/projects/$PROJECT_ID/provider-accounts" \
-H "Authorization: Bearer $DVAARIK_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"credentials": {
"<credential field from the catalogue>": "<secret>"
},
"name": "Production account",
"provider": "<provider id from the catalogue>"
}'
No account session was presented, or it is invalid or expired.
403
The account is suspended or its email is not verified.
404
The project or the addressed resource does not exist for this owner. A resource owned by another developer is deliberately indistinguishable from one that never existed.
409
The project or resource is in a state that refuses this change.
422
The request body or query is not valid. detail is an array of {loc, msg, type} and loc names the offending field.
Plus the account-door errors above. Full list on the errors page.
No account session was presented, or it is invalid or expired.
403
The account is suspended or its email is not verified.
404
The project or the addressed resource does not exist for this owner. A resource owned by another developer is deliberately indistinguishable from one that never existed.
422
The request body or query is not valid. detail is an array of {loc, msg, type} and loc names the offending field.
Plus the account-door errors above. Full list on the errors page.
bash
curl -sS -X GET "https://api.developers.dvaarik.com/console/v2/projects/$PROJECT_ID/provider-accounts/$ACCOUNT_ID" \
-H "Authorization: Bearer $DVAARIK_TOKEN"
POST /console/v2/projects/{project_id}/provider-accounts/{account_id}/probe#
Ask the provider to confirm the stored credential. Confirmed becomes verified; rejected becomes invalid; a transient provider failure stays configured, so an uncertain probe never admits a call.
No account session was presented, or it is invalid or expired.
403
The account is suspended or its email is not verified.
404
The project or the addressed resource does not exist for this owner. A resource owned by another developer is deliberately indistinguishable from one that never existed.
409
The project or resource is in a state that refuses this change.
422
The request body or query is not valid. detail is an array of {loc, msg, type} and loc names the offending field.
Plus the account-door errors above. Full list on the errors page.
bash
curl -sS -X POST "https://api.developers.dvaarik.com/console/v2/projects/$PROJECT_ID/provider-accounts/$ACCOUNT_ID/probe" \
-H "Authorization: Bearer $DVAARIK_TOKEN"
POST /console/v2/projects/{project_id}/provider-accounts/{account_id}/rotate#
Re-encrypt the stored secret under the current keyring key. The credential itself does not change.
No account session was presented, or it is invalid or expired.
403
The account is suspended or its email is not verified.
404
The project or the addressed resource does not exist for this owner. A resource owned by another developer is deliberately indistinguishable from one that never existed.
409
The project or resource is in a state that refuses this change.
422
The request body or query is not valid. detail is an array of {loc, msg, type} and loc names the offending field.
Plus the account-door errors above. Full list on the errors page.
bash
curl -sS -X POST "https://api.developers.dvaarik.com/console/v2/projects/$PROJECT_ID/provider-accounts/$ACCOUNT_ID/rotate" \
-H "Authorization: Bearer $DVAARIK_TOKEN"
curl -sS -X GET "https://api.developers.dvaarik.com/v2/provider-catalog" \
-H "Authorization: Bearer $DVAARIK_TOKEN"
Try it without a key in the browser
The playground opens a real voice session with your account session, so a project key never reaches a browser. Machine calls belong on your own server.