Hoveydai

Endpoint reference

The /v1 endpoints with parameters and responses, generated from the OpenAPI spec.

This page is generated from the OpenAPI spec. The descriptions come from the spec as written.

Authentication

Authorization: Bearer <hvd_... key>

POST /v1/chat/completions

OpenAI-compatible chat completion (JSON or SSE). hvd_... developer key or a dashboard JWT. With stream: true the response is text/event-stream (data: {chat.completion.chunk} lines, terminated by data: [DONE]). Unknown fields are ignored. Body limit OPENAI_API_MAX_REQUEST_MB (40). Errors always use the OpenAI envelope, **including 401**.

Request body (JSON)

Request body (JSON)
NameTypeRequiredDescription
modelstringYesCatalog slug or auto.
messagesobject[]Yes
max_tokensintegerNo
max_completion_tokensintegerNo
temperaturenumberNo
streambooleanNo
stream_optionsobjectNo

Success response fields

Success response fields
NameTypeRequiredDescription
idstringYes
object"chat.completion"Yes
createdintegerYes
modelstringYes
choicesobject[]Yes
usageobjectYes

Responses

Responses
StatusDescription
200Completion (JSON) or event stream.
400invalid_json, missing_required_parameter, invalid_type, invalid_value, unsupported_value, invalid_image_url, too_many_images.
401invalid_api_key / token_expired / session_revoked.
402insufficient_credits / quota_exceeded (+ wallet_balance_units, quota_code).
403model_requires_paid_plan / content_blocked.
404model_not_found.
413request_too_large.
415
422context_length_exceeded / model_does_not_support_images. Also {"msg": ...} for a malformed/wrong-type token.
429rate_limit_exceeded or too_many_concurrent; carries Retry-After.
500internal_error.
502provider_error (provider failure or empty answer).
503model_unavailable / service_unavailable (+ Retry-After).
504provider_timeout.

GET /v1/models

List models usable by the caller's plan

Success response fields

Success response fields
NameTypeRequiredDescription
object"list"Yes
dataobject[]Yes

Responses

Responses
StatusDescription
200OK
401invalid_api_key / token_expired / session_revoked.
422
429rate_limit_exceeded or too_many_concurrent; carries Retry-After.
500internal_error.
503service_unavailable: catalog not seeded.

GET /v1/models/{model_id}

Retrieve one model

Path parameters

Path parameters
NameTypeRequiredDescription
model_idstringYespath

Success response fields

Success response fields
NameTypeRequiredDescription
idstringYes
object"model"Yes
createdintegerYes
owned_by"hoveydai"Yes
context_windowintegerNo
max_output_tokensintegerNo
supports_visionbooleanNo

Responses

Responses
StatusDescription
200OK
401invalid_api_key / token_expired / session_revoked.
404model_not_found.
422
429rate_limit_exceeded or too_many_concurrent; carries Retry-After.
500internal_error.
503service_unavailable.

Error shape

Every /v1 error response has this shape:

Error shape
NameTypeRequiredDescription
messagestringYes
type"invalid_request_error" | "insufficient_credits" | "permission_error" | "rate_limit_error" | "server_error"Yes
paramstring | nullYes
codestringYesStable code, e.g. invalid_api_key, token_expired, session_revoked, invalid_json, missing_required_parameter, invalid_type, invalid_value, unsupported_value, model_not_found, model_requires_paid_plan, insufficient_credits, quota_exceeded, context_length_exceeded, request_too_large, rate_limit_exceeded, too_many_concurrent, model_unavailable, service_unavailable, provider_timeout, provider_error, content_blocked, internal_error, unknown_url, method_not_allowed.
request_idstringNoAlso sent as the x-request-id header.
quota_codestringNo
wallet_balance_unitsintegerNo
suggested_modelsstring[]No

Source: docs/openapi.yaml

Did this page not help? Tell us.