diff --git a/docs/openapi.json b/docs/openapi.json
index aa0d02cff..e3a76cb9a 100644
--- a/docs/openapi.json
+++ b/docs/openapi.json
@@ -1 +1 @@
-{"openapi":"3.1.0","info":{"title":"OpenGateLLM","summary":"OpenGateLLM connect to your models. You can configuration this swagger UI in the configuration file, like hide routes or change the title.","description":"[See documentation](https://github.com/etalab-ia/opengatellm/blob/main/README.md)","license":{"name":"MIT Licence","identifier":"MIT","url":"https://raw.githubusercontent.com/etalab-ia/opengatellm/refs/heads/main/LICENSE"},"version":"0.5.0"},"paths":{"/v1/admin/keys":{"post":{"tags":["Admin"],"summary":"Create Key","description":"Create a new key for a user.","operationId":"create_key_v1_admin_keys_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateKeyBody","description":"The key creation request."}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KeyResponse"}}}},"409":{"description":"Key {name} already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"403":{"description":"User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"404":{"description":"User {user_id} not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Admin"],"summary":"Get Keys","operationId":"get_keys_v1_admin_keys_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The user ID to filter keys by.","title":"User"},"description":"The user ID to filter keys by."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Number of keys to skip.","default":0,"title":"Offset"},"description":"Number of keys to skip."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Maximum number of keys to return.","default":10,"title":"Limit"},"description":"Maximum number of keys to return."},{"name":"sort_by","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortField","description":"Field to sort by.","default":"id"},"description":"Field to sort by."},{"name":"sort_order","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortOrder","description":"Sort order.","default":"asc"},"description":"Sort order."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KeysResponse"}}}},"403":{"description":"User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/keys/{key_id}":{"get":{"tags":["Admin"],"summary":"Get Key","operationId":"get_key_v1_admin_keys__key_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"integer","description":"The ID of the key to get.","title":"Key Id"},"description":"The ID of the key to get."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KeyResponse"}}}},"404":{"description":"Key {key_id} not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"403":{"description":"User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/providers":{"post":{"tags":["Admin"],"summary":"Create Provider","operationId":"create_provider_v1_admin_providers_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProviderBody"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProviderResponse"}}}},"403":{"description":"Inconsistent max context length for {model_name}. Expected: {expected_length}. Actual: {actual_length}
Inconsistent vector size for {model_name}. Expected: {expected_size}. Actual: {actual_size}
User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"400":{"description":"Invalid model provider type {input_type} for {expected_type} router.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"424":{"description":"Model provider {name} not reachable ({status_code}): {detail}","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"409":{"description":"Model provider {model_name} for url {url} already exists for router {router_id}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"404":{"description":"Model router {router_id} not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Admin"],"summary":"Get Providers","operationId":"get_providers_v1_admin_providers_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"router_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter providers by router ID.","title":"Router Id"},"description":"Filter providers by router ID."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Number of providers to skip.","default":0,"title":"Offset"},"description":"Number of providers to skip."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Maximum number of providers to return.","default":10,"title":"Limit"},"description":"Maximum number of providers to return."},{"name":"sort_by","in":"query","required":false,"schema":{"$ref":"#/components/schemas/ProviderSortField","description":"Field to sort by.","default":"id"},"description":"Field to sort by."},{"name":"sort_order","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortOrder","description":"Sort order.","default":"asc"},"description":"Sort order."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProvidersResponse"}}}},"403":{"description":"User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/providers/{provider_id}":{"delete":{"tags":["Admin"],"summary":"Delete Provider","operationId":"delete_provider_v1_admin_providers__provider_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"provider_id","in":"path","required":true,"schema":{"type":"integer","description":"The ID of the provider to delete.","title":"Provider Id"},"description":"The ID of the provider to delete."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderResponse"}}}},"404":{"description":"Model provider {provider_id} not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"403":{"description":"User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Admin"],"summary":"Update Provider","operationId":"update_provider_v1_admin_providers__provider_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"provider_id","in":"path","required":true,"schema":{"type":"integer","description":"The ID of the provider to update.","title":"Provider Id"},"description":"The ID of the provider to update."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProviderBody","description":"The provider update request."}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderResponse"}}}},"403":{"description":"Inconsistent max context length for {model_name}. Expected: {expected_length}. Actual: {actual_length}
Inconsistent vector size for {model_name}. Expected: {expected_size}. Actual: {actual_size}
User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"400":{"description":"Invalid model provider type {input_type} for {expected_type} router.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"409":{"description":"Model provider {model_name} for url {url} already exists for router {router_id}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"404":{"description":"Model router {router_id} not found.
Model provider {provider_id} not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Admin"],"summary":"Get Provider","operationId":"get_provider_v1_admin_providers__provider_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"provider_id","in":"path","required":true,"schema":{"type":"integer","description":"The ID of the provider to get.","title":"Provider Id"},"description":"The ID of the provider to get."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderResponse"}}}},"403":{"description":"User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"404":{"description":"Model provider {provider_id} not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/roles":{"post":{"tags":["Admin"],"summary":"Create Role","operationId":"create_role_v1_admin_roles_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRoleBody","description":"The role creation request."}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleResponse"}}}},"403":{"description":"User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"409":{"description":"Role {role_name} already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Admin"],"summary":"Get Roles","operationId":"get_roles_v1_admin_roles_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Number of roles to skip.","default":0,"title":"Offset"},"description":"Number of roles to skip."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Maximum number of roles to return.","default":10,"title":"Limit"},"description":"Maximum number of roles to return."},{"name":"sort_by","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortField","description":"Field to sort by.","default":"id"},"description":"Field to sort by."},{"name":"sort_order","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortOrder","description":"Sort order.","default":"asc"},"description":"Sort order."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RolesResponse"}}}},"403":{"description":"User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/roles/{role_id}":{"patch":{"tags":["Admin"],"summary":"Update Role","operationId":"update_role_v1_admin_roles__role_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"role_id","in":"path","required":true,"schema":{"type":"integer","description":"The ID of the role to update.","title":"Role Id"},"description":"The ID of the role to update."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRoleBody","description":"The role update request."}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleResponse"}}}},"403":{"description":"User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"409":{"description":"Role {role_name} already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"404":{"description":"Role {role_id} not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Admin"],"summary":"Get Role","operationId":"get_role_v1_admin_roles__role_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"role_id","in":"path","required":true,"schema":{"type":"integer","description":"The ID of the role to get.","title":"Role Id"},"description":"The ID of the role to get."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleResponse"}}}},"403":{"description":"User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"404":{"description":"Role {role_id} not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin"],"summary":"Delete Role","operationId":"delete_role_v1_admin_roles__role_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"role_id","in":"path","required":true,"schema":{"type":"integer","description":"The ID of the role to delete.","title":"Role Id"},"description":"The ID of the role to delete."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleResponse"}}}},"403":{"description":"User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"404":{"description":"Role {role_id} not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"409":{"description":"Role {role_id} has {number_of_users} users and cannot be removed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/routers":{"post":{"tags":["Admin"],"summary":"Create Router","operationId":"create_router_v1_admin_routers_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRouterBody","description":"The router creation request."}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RouterResponse"}}}},"409":{"description":"Following aliases already exist: '{router_aliases}'
Router {router_name} already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"403":{"description":"User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Admin"],"summary":"Get Routers","operationId":"get_routers_v1_admin_routers_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Number of routers to skip.","default":0,"title":"Offset"},"description":"Number of routers to skip."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Maximum number of routers to return.","default":10,"title":"Limit"},"description":"Maximum number of routers to return."},{"name":"sort_by","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortField","description":"Field to sort by.","default":"id"},"description":"Field to sort by."},{"name":"sort_order","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortOrder","description":"Sort order.","default":"asc"},"description":"Sort order."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoutersResponse"}}}},"403":{"description":"User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/routers/{router_id}":{"get":{"tags":["Admin"],"summary":"Get Router","operationId":"get_router_v1_admin_routers__router_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"router_id","in":"path","required":true,"schema":{"type":"integer","description":"The router ID.","title":"Router Id"},"description":"The router ID."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RouterResponse"}}}},"403":{"description":"User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"404":{"description":"Model router {router_id} not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin"],"summary":"Delete Router","operationId":"delete_router_v1_admin_routers__router_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"router_id","in":"path","required":true,"schema":{"type":"integer","description":"The ID of the router to delete (router ID, eg. 123).","title":"Router Id"},"description":"The ID of the router to delete (router ID, eg. 123)."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RouterResponse"}}}},"403":{"description":"User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"404":{"description":"Model router {router_id} not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Admin"],"summary":"Update Router","operationId":"update_router_v1_admin_routers__router_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"router_id","in":"path","required":true,"schema":{"type":"integer","description":"The ID of the router to update (router ID, eg. 123).","title":"Router Id"},"description":"The ID of the router to update (router ID, eg. 123)."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRouterBody","description":"The router update request."}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RouterResponse"}}}},"403":{"description":"User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"404":{"description":"Model router {router_id} not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"409":{"description":"Following aliases already exist: '{router_aliases}'
Router {router_name} already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/users":{"post":{"tags":["Admin"],"summary":"Create User","operationId":"create_user_v1_admin_users_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUserBody","description":"The user creation request."}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}},"409":{"description":"User {email} already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"404":{"description":"Role {role_id} not found.
Organization {organization_id} not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"403":{"description":"User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Admin"],"summary":"Get Users","operationId":"get_users_v1_admin_users_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"role_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The ID of the role to filter the users by.","title":"Role Id"},"description":"The ID of the role to filter the users by."},{"name":"organization_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The ID of the organization to filter the users by.","title":"Organization Id"},"description":"The ID of the organization to filter the users by."},{"name":"email","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Email substring to filter the users by.","title":"Email"},"description":"Email substring to filter the users by."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Number of users to skip.","default":0,"title":"Offset"},"description":"Number of users to skip."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Maximum number of users to return.","default":10,"title":"Limit"},"description":"Maximum number of users to return."},{"name":"sort_by","in":"query","required":false,"schema":{"$ref":"#/components/schemas/UserSortField","description":"Field to sort by.","default":"id"},"description":"Field to sort by."},{"name":"sort_order","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortOrder","description":"Sort order.","default":"asc"},"description":"Sort order."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsersResponse"}}}},"403":{"description":"User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/users/{user_id}":{"get":{"tags":["Admin"],"summary":"Get User","operationId":"get_user_v1_admin_users__user_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","description":"The ID of the user to get.","title":"User Id"},"description":"The ID of the user to get."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}},"404":{"description":"User {user_id} not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"403":{"description":"User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin"],"summary":"Delete User","operationId":"delete_user_v1_admin_users__user_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","description":"The ID of the user to delete.","title":"User Id"},"description":"The ID of the user to delete."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}},"404":{"description":"User {user_id} not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"409":{"description":"User cannot be deleted because the user owns routers: {router_ids}.
User cannot be deleted because the user owns providers: {provider_ids}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"403":{"description":"User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Admin"],"summary":"Update User","operationId":"update_user_v1_admin_users__user_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","description":"The ID of the user to update.","title":"User Id"},"description":"The ID of the user to update."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserUpdateRequest","description":"The user update request."}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}},"404":{"description":"User {user_id} not found.
Role {role_id} not found.
Organization {organization_id} not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"409":{"description":"User {email} already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid current password.
Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"403":{"description":"User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/audio/transcriptions":{"post":{"tags":["Audio"],"summary":"Audio Transcriptions","description":"Transcribes audio into the input language.","operationId":"audio_transcriptions_v1_audio_transcriptions_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_audio_transcriptions_v1_audio_transcriptions_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AudioTranscription"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/auth/login":{"post":{"tags":["Auth"],"summary":"Login","operationId":"login_v1_auth_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthLoginBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthLoginResponse"}}}},"401":{"description":"Invalid email or password.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/chat/completions":{"post":{"tags":["Chat"],"summary":"Chat Completions","description":"Creates a model response for the given chat conversation.","operationId":"chat_completions_v1_chat_completions_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateChatCompletion"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ChatCompletion"},{"$ref":"#/components/schemas/ChatCompletionChunk"}],"title":"Response Chat Completions V1 Chat Completions Post"}}}},"404":{"description":"Model not found. Collection not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__schemas__exception__HTTPExceptionModel"}}}},"422":{"description":"Wrong model type.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__schemas__exception__HTTPExceptionModel"}}}},"503":{"description":"Model is too busy, please try again later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__schemas__exception__HTTPExceptionModel"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/embeddings":{"post":{"tags":["Embeddings"],"summary":"Create Embeddings","operationId":"create_embeddings_v1_embeddings_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEmbeddingsBody","description":"The embeddings creation request."}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmbeddingsResponse"}}}},"503":{"description":"Model is too busy, please try again later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"404":{"description":"Model {name} not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"429":{"description":"Token/request limit per minute/day exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Model has wrong type. Expected: {expected_type}. Actual: {actual_type}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"400":{"description":"Insufficient budget.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"403":{"description":"Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}}},"security":[{"HTTPBearer":[]}]}},"/health":{"get":{"tags":["Health"],"summary":"Get Health","description":"Get the health of the API.","operationId":"get_health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/health/models":{"get":{"tags":["Health"],"summary":"Get Health Models","description":"Get the health of the models.","operationId":"get_health_models_health_models_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"403":{"description":"Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/me/info":{"get":{"tags":["Me"],"summary":"Get User","description":"Get information about the current user.","operationId":"get_user_v1_me_info_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserInfo"}}}}},"security":[{"HTTPBearer":[]}]},"patch":{"tags":["Me"],"summary":"Update User","description":"Update information about the current user.","operationId":"update_user_v1_me_info_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserInfo","description":"The user update request."}}},"required":true},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/me/keys":{"post":{"tags":["Me"],"summary":"Create Key","description":"Create a new API key.","operationId":"create_key_v1_me_keys_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateKey","description":"The token creation request."}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateKeyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Me"],"summary":"Get Keys","description":"Get all your tokens.","operationId":"get_keys_v1_me_keys_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"The offset of the tokens to get.","default":0,"title":"Offset"},"description":"The offset of the tokens to get."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"The limit of the tokens to get.","default":10,"title":"Limit"},"description":"The limit of the tokens to get."},{"name":"order_by","in":"query","required":false,"schema":{"enum":["id","name","created"],"type":"string","description":"The field to order the tokens by.","default":"id","title":"Order By"},"description":"The field to order the tokens by."},{"name":"order_direction","in":"query","required":false,"schema":{"enum":["asc","desc"],"type":"string","description":"The direction to order the tokens by.","default":"asc","title":"Order Direction"},"description":"The direction to order the tokens by."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Keys"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/keys/{key}":{"delete":{"tags":["Me"],"summary":"Delete Key","description":"Delete a API key.","operationId":"delete_key_v1_me_keys__key__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"integer","description":"The key ID of the key to delete.","title":"Key"},"description":"The key ID of the key to delete."}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Me"],"summary":"Get Key","description":"Get your token by id.","operationId":"get_key_v1_me_keys__key__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"integer","description":"The key ID of the key to get.","title":"Key"},"description":"The key ID of the key to get."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Key"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/usage":{"get":{"tags":["Me"],"summary":"Get Usage","description":"Get usage for the current user.","operationId":"get_usage_v1_me_usage_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"The offset of the usages to get.","default":0,"title":"Offset"},"description":"The offset of the usages to get."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"The limit of the usages to get.","default":10,"title":"Limit"},"description":"The limit of the usages to get."},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Start time as Unix timestamp (if not provided, will be set to 30 days ago)","title":"Start Time"},"description":"Start time as Unix timestamp (if not provided, will be set to 30 days ago)"},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"End time as Unix timestamp (if not provided, will be set to now)","title":"End Time"},"description":"End time as Unix timestamp (if not provided, will be set to now)"},{"name":"endpoint","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/EndpointUsage"},{"type":"null"}],"description":"The endpoint to get usage for.","title":"Endpoint"},"description":"The endpoint to get usage for."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Usages"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/models":{"get":{"tags":["Models"],"summary":"Get Models","description":"Lists the currently available models and provides basic information.","operationId":"get_models_v1_models_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModelsResponse"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"403":{"description":"Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/models/{model}":{"get":{"tags":["Models"],"summary":"Get Model","description":"Get a model by name and provide basic information.","operationId":"get_model_v1_models__model__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"model","in":"path","required":true,"schema":{"type":"string","description":"The name of the model to get.","title":"Model"},"description":"The name of the model to get."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}},"404":{"description":"Model {name} not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"403":{"description":"Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/ocr":{"post":{"tags":["OCR"],"summary":"Ocr","description":"Extracts text from files using OCR.","operationId":"ocr_v1_ocr_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOCR"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OCR"}}}},"404":{"description":"Model not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__schemas__exception__HTTPExceptionModel"}}}},"422":{"description":"Wrong model type.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__schemas__exception__HTTPExceptionModel"}}}},"503":{"description":"Model is too busy, please try again later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__schemas__exception__HTTPExceptionModel"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/rerank":{"post":{"tags":["Rerank"],"summary":"Create Rerank","operationId":"create_rerank_v1_rerank_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRerankBody","description":"The rerank creation request."}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RerankResponse"}}}},"503":{"description":"Model is too busy, please try again later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"404":{"description":"Model {name} not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"429":{"description":"Token/request limit per minute/day exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Model has wrong type. Expected: {expected_type}. Actual: {actual_type}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"400":{"description":"Insufficient budget.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"403":{"description":"Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/admin/organizations":{"post":{"tags":["Admin"],"summary":"Create Organization","operationId":"create_organization_v1_admin_organizations_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationRequest","description":"The organization creation request."}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Admin"],"summary":"Get Organizations","operationId":"get_organizations_v1_admin_organizations_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"The offset of the organizations to get.","default":0,"title":"Offset"},"description":"The offset of the organizations to get."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"The limit of the organizations to get.","default":10,"title":"Limit"},"description":"The limit of the organizations to get."},{"name":"order_by","in":"query","required":false,"schema":{"enum":["id","name","created","updated"],"type":"string","description":"The field to order the organizations by.","default":"id","title":"Order By"},"description":"The field to order the organizations by."},{"name":"order_direction","in":"query","required":false,"schema":{"enum":["asc","desc"],"type":"string","description":"The direction to order the organizations by.","default":"asc","title":"Order Direction"},"description":"The direction to order the organizations by."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Organizations"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/organizations/{organization}":{"delete":{"tags":["Admin"],"summary":"Delete Organization","operationId":"delete_organization_v1_admin_organizations__organization__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"organization","in":"path","required":true,"schema":{"type":"integer","description":"The ID of the organization to delete.","title":"Organization"},"description":"The ID of the organization to delete."}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Admin"],"summary":"Update Organization","operationId":"update_organization_v1_admin_organizations__organization__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"organization","in":"path","required":true,"schema":{"type":"integer","description":"The ID of the organization to update.","title":"Organization"},"description":"The ID of the organization to update."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationUpdateRequest","description":"The organization update request."}}}},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Admin"],"summary":"Get Organization","operationId":"get_organization_v1_admin_organizations__organization__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"organization","in":"path","required":true,"schema":{"type":"integer","description":"The ID of the organization to get.","title":"Organization"},"description":"The ID of the organization to get."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Organization"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/tokens":{"post":{"tags":["Admin"],"summary":"Create Token","description":"Create a new token.","operationId":"create_token_v1_admin_tokens_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateToken","description":"The token creation request."}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokensResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/admin/tokens/{token}":{"delete":{"tags":["Admin"],"summary":"Delete Token","description":"Delete a token.","operationId":"delete_token_v1_admin_tokens__token__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user","in":"path","required":true,"schema":{"type":"integer","description":"The user ID of the user to delete the token for.","title":"User"},"description":"The user ID of the user to delete the token for."},{"name":"token","in":"path","required":true,"schema":{"type":"integer","description":"The token ID of the token to delete.","title":"Token"},"description":"The token ID of the token to delete."}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/metrics":{"get":{"tags":["Monitoring"],"summary":"Get Metrics","operationId":"get_metrics_metrics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}}},"components":{"schemas":{"Annotation":{"properties":{"type":{"type":"string","const":"url_citation","title":"Type"},"url_citation":{"$ref":"#/components/schemas/AnnotationURLCitation"}},"additionalProperties":true,"type":"object","required":["type","url_citation"],"title":"Annotation","description":"A URL citation when using web search."},"AnnotationURLCitation":{"properties":{"end_index":{"type":"integer","title":"End Index"},"start_index":{"type":"integer","title":"Start Index"},"title":{"type":"string","title":"Title"},"url":{"type":"string","title":"Url"}},"additionalProperties":true,"type":"object","required":["end_index","start_index","title","url"],"title":"AnnotationURLCitation","description":"A URL citation when using web search."},"AudioTranscription":{"properties":{"id":{"type":"string","title":"Id","description":"A unique identifier for the audio transcription."},"text":{"type":"string","title":"Text","description":"The transcription text."},"model":{"type":"string","title":"Model","description":"The model used to generate the transcription."},"segments":{"anyOf":[{"items":{"$ref":"#/components/schemas/Segment"},"type":"array"},{"type":"null"}],"title":"Segments","description":"Diarized segments, only set when `response_format=diarized_json`."},"usage":{"$ref":"#/components/schemas/api__schemas__usage__Usage","description":"Usage information for the request."}},"additionalProperties":true,"type":"object","required":["id","text","model"],"title":"AudioTranscription"},"AudioTranscriptionLanguage":{"type":"string","enum":["af","afrikaans","albanian","am","amharic","ar","arabic","armenian","as","assamese","az","azerbaijani","ba","bashkir","basque","be","belarusian","bengali","bg","bn","bo","bosnian","br","breton","bs","bulgarian","burmese","ca","cantonese","castilian","catalan","chinese","croatian","cs","cy","czech","da","danish","de","dutch","el","en","english","es","estonian","et","eu","fa","faroese","fi","finnish","flemish","fo","fr","french","galician","georgian","german","gl","greek","gu","gujarati","ha","haitian","haitian creole","hausa","haw","hawaiian","he","hebrew","hi","hindi","hr","ht","hu","hungarian","hy","icelandic","id","indonesian","is","it","italian","ja","japanese","javanese","jw","ka","kannada","kazakh","khmer","kk","km","kn","ko","korean","la","lao","latin","latvian","lb","letzeburgesch","lingala","lithuanian","ln","lo","lt","luxembourgish","lv","macedonian","malagasy","malay","malayalam","maltese","mandarin","maori","marathi","mg","mi","mk","ml","mn","moldavian","moldovan","mongolian","mr","ms","mt","my","myanmar","ne","nepali","nl","nn","no","norwegian","nynorsk","oc","occitan","pa","panjabi","pashto","persian","pl","polish","portuguese","ps","pt","punjabi","pushto","ro","romanian","ru","russian","sa","sanskrit","sd","serbian","shona","si","sindhi","sinhala","sinhalese","sk","sl","slovak","slovenian","sn","so","somali","spanish","sq","sr","su","sundanese","sv","sw","swahili","swedish","ta","tagalog","tajik","tamil","tatar","te","telugu","tg","th","thai","tibetan","tk","tl","tr","tt","turkish","turkmen","uk","ukrainian","ur","urdu","uz","uzbek","valencian","vi","vietnamese","welsh","yi","yiddish","yo","yoruba","yue","zh"],"title":"AudioTranscriptionLanguage"},"AudioTranscriptionResponseFormat":{"type":"string","enum":["json","text","verbose_json","diarized_json","srt","vtt"],"title":"AudioTranscriptionResponseFormat"},"AuthLoginBody":{"properties":{"email":{"type":"string","maxLength":254,"minLength":1,"title":"Email","description":"The user email."},"password":{"type":"string","maxLength":72,"minLength":1,"title":"Password","description":"The user password."}},"additionalProperties":true,"type":"object","required":["email","password"],"title":"AuthLoginBody"},"AuthLoginResponse":{"properties":{"object":{"type":"string","const":"key","title":"Object","description":"Type of the object.","default":"key"},"id":{"type":"integer","title":"Id","description":"ID of the key."},"name":{"type":"string","title":"Name","description":"Name of the key."},"value":{"type":"string","title":"Value","description":"Value of the key."},"user":{"type":"integer","title":"User","description":"ID of the user that owns the key."},"expires":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires","description":"Time of expiration, as Unix timestamp. If None, the key never expires."},"created":{"type":"integer","title":"Created","description":"Time of creation, as Unix timestamp."}},"additionalProperties":true,"type":"object","required":["id","name","value","user","created"],"title":"AuthLoginResponse"},"BasicAuth":{"properties":{"username":{"type":"string","title":"Username"},"password":{"type":"string","title":"Password"}},"additionalProperties":true,"type":"object","required":["username","password"],"title":"BasicAuth"},"Body_audio_transcriptions_v1_audio_transcriptions_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File","description":"The audio file object (not file name) to transcribe, in one of these formats: mp3 or wav."},"model":{"type":"string","title":"Model","description":"ID of the model to use. Call `/v1/models` endpoint to get the list of available models, only `automatic-speech-recognition` model type is supported."},"language":{"anyOf":[{"$ref":"#/components/schemas/AudioTranscriptionLanguage"},{"type":"null"}],"description":"The language of the output audio. If the output language is different than the audio language, the audio language will be translated into the output language. Output language must be supplied in ISO-639-1 format (e.g. en, fr) format."},"prompt":{"type":"string","title":"Prompt","description":"An optional text to tell the model what to do with the input audio.","default":""},"response_format":{"$ref":"#/components/schemas/AudioTranscriptionResponseFormat","description":"The format of the transcript output: `json` (default), `text`, `diarized_json` to return per-segment speaker labels, `srt` or `vtt` for subtitle formats.","default":"json"},"temperature":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Temperature","description":"The sampling temperature, between 0 and 1. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. If set to 0, the model will use log probability to automatically increase the temperature until certain thresholds are hit.","default":0.0}},"type":"object","required":["file","model"],"title":"Body_audio_transcriptions_v1_audio_transcriptions_post"},"CarbonFootprintUsage":{"properties":{"kWh":{"$ref":"#/components/schemas/CarbonFootprintUsageKWh","deprecated":true},"kgCO2eq":{"$ref":"#/components/schemas/CarbonFootprintUsageKgCO2eq","deprecated":true}},"additionalProperties":true,"type":"object","title":"CarbonFootprintUsage"},"CarbonFootprintUsageKWh":{"properties":{"min":{"type":"number","title":"Min","description":"Minimum carbon footprint in kWh.","default":0.0,"deprecated":true},"max":{"type":"number","title":"Max","description":"Maximum carbon footprint in kWh.","default":0.0,"deprecated":true}},"additionalProperties":true,"type":"object","title":"CarbonFootprintUsageKWh"},"CarbonFootprintUsageKgCO2eq":{"properties":{"min":{"type":"number","title":"Min","description":"Minimum carbon footprint in kgCO2eq (global warming potential).","default":0.0,"deprecated":true},"max":{"type":"number","title":"Max","description":"Maximum carbon footprint in kgCO2eq (global warming potential).","default":0.0,"deprecated":true}},"additionalProperties":true,"type":"object","title":"CarbonFootprintUsageKgCO2eq"},"ChatCompletion":{"properties":{"id":{"type":"string","title":"Id","description":"A unique identifier for the chat completion."},"choices":{"items":{"$ref":"#/components/schemas/openai__types__chat__chat_completion__Choice"},"type":"array","title":"Choices"},"created":{"type":"integer","title":"Created"},"model":{"type":"string","title":"Model"},"object":{"type":"string","const":"chat.completion","title":"Object"},"service_tier":{"anyOf":[{"type":"string","enum":["auto","default","flex","scale","priority"]},{"type":"null"}],"title":"Service Tier"},"system_fingerprint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"System Fingerprint"},"usage":{"$ref":"#/components/schemas/api__schemas__usage__Usage","description":"Usage information for the request."}},"additionalProperties":true,"type":"object","required":["choices","created","model","object"],"title":"ChatCompletion"},"ChatCompletionAudio":{"properties":{"id":{"type":"string","title":"Id"},"data":{"type":"string","title":"Data"},"expires_at":{"type":"integer","title":"Expires At"},"transcript":{"type":"string","title":"Transcript"}},"additionalProperties":true,"type":"object","required":["id","data","expires_at","transcript"],"title":"ChatCompletionAudio","description":"If the audio output modality is requested, this object contains data\nabout the audio response from the model. [Learn more](https://platform.openai.com/docs/guides/audio)."},"ChatCompletionChunk":{"properties":{"id":{"type":"string","title":"Id"},"choices":{"items":{"$ref":"#/components/schemas/openai__types__chat__chat_completion_chunk__Choice"},"type":"array","title":"Choices"},"created":{"type":"integer","title":"Created"},"model":{"type":"string","title":"Model"},"object":{"type":"string","const":"chat.completion.chunk","title":"Object"},"service_tier":{"anyOf":[{"type":"string","enum":["auto","default","flex","scale","priority"]},{"type":"null"}],"title":"Service Tier"},"system_fingerprint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"System Fingerprint"},"usage":{"anyOf":[{"$ref":"#/components/schemas/CompletionUsage"},{"type":"null"}]}},"additionalProperties":true,"type":"object","required":["id","choices","created","model","object"],"title":"ChatCompletionChunk"},"ChatCompletionMessage":{"properties":{"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"refusal":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Refusal"},"role":{"type":"string","const":"assistant","title":"Role"},"annotations":{"anyOf":[{"items":{"$ref":"#/components/schemas/Annotation"},"type":"array"},{"type":"null"}],"title":"Annotations"},"audio":{"anyOf":[{"$ref":"#/components/schemas/ChatCompletionAudio"},{"type":"null"}]},"function_call":{"anyOf":[{"$ref":"#/components/schemas/FunctionCall"},{"type":"null"}]},"tool_calls":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/ChatCompletionMessageFunctionToolCall"},{"$ref":"#/components/schemas/ChatCompletionMessageCustomToolCall"}]},"type":"array"},{"type":"null"}],"title":"Tool Calls"}},"additionalProperties":true,"type":"object","required":["role"],"title":"ChatCompletionMessage","description":"A chat completion message generated by the model."},"ChatCompletionMessageCustomToolCall":{"properties":{"id":{"type":"string","title":"Id"},"custom":{"$ref":"#/components/schemas/Custom"},"type":{"type":"string","const":"custom","title":"Type"}},"additionalProperties":true,"type":"object","required":["id","custom","type"],"title":"ChatCompletionMessageCustomToolCall","description":"A call to a custom tool created by the model."},"ChatCompletionMessageFunctionToolCall":{"properties":{"id":{"type":"string","title":"Id"},"function":{"$ref":"#/components/schemas/Function"},"type":{"type":"string","const":"function","title":"Type"}},"additionalProperties":true,"type":"object","required":["id","function","type"],"title":"ChatCompletionMessageFunctionToolCall","description":"A call to a function tool created by the model."},"ChatCompletionTokenLogprob":{"properties":{"token":{"type":"string","title":"Token"},"bytes":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Bytes"},"logprob":{"type":"number","title":"Logprob"},"top_logprobs":{"items":{"$ref":"#/components/schemas/TopLogprob"},"type":"array","title":"Top Logprobs"}},"additionalProperties":true,"type":"object","required":["token","logprob","top_logprobs"],"title":"ChatCompletionTokenLogprob"},"ChoiceDelta":{"properties":{"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"function_call":{"anyOf":[{"$ref":"#/components/schemas/ChoiceDeltaFunctionCall"},{"type":"null"}]},"refusal":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Refusal"},"role":{"anyOf":[{"type":"string","enum":["developer","system","user","assistant","tool"]},{"type":"null"}],"title":"Role"},"tool_calls":{"anyOf":[{"items":{"$ref":"#/components/schemas/ChoiceDeltaToolCall"},"type":"array"},{"type":"null"}],"title":"Tool Calls"}},"additionalProperties":true,"type":"object","title":"ChoiceDelta","description":"A chat completion delta generated by streamed model responses."},"ChoiceDeltaFunctionCall":{"properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Arguments"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"additionalProperties":true,"type":"object","title":"ChoiceDeltaFunctionCall","description":"Deprecated and replaced by `tool_calls`.\n\nThe name and arguments of a function that should be called, as generated by the model."},"ChoiceDeltaToolCall":{"properties":{"index":{"type":"integer","title":"Index"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"function":{"anyOf":[{"$ref":"#/components/schemas/ChoiceDeltaToolCallFunction"},{"type":"null"}]},"type":{"anyOf":[{"type":"string","const":"function"},{"type":"null"}],"title":"Type"}},"additionalProperties":true,"type":"object","required":["index"],"title":"ChoiceDeltaToolCall"},"ChoiceDeltaToolCallFunction":{"properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Arguments"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"additionalProperties":true,"type":"object","title":"ChoiceDeltaToolCallFunction"},"ChoiceLogprobs":{"properties":{"content":{"anyOf":[{"items":{"$ref":"#/components/schemas/ChatCompletionTokenLogprob"},"type":"array"},{"type":"null"}],"title":"Content"},"refusal":{"anyOf":[{"items":{"$ref":"#/components/schemas/ChatCompletionTokenLogprob"},"type":"array"},{"type":"null"}],"title":"Refusal"}},"additionalProperties":true,"type":"object","title":"ChoiceLogprobs","description":"Log probability information for the choice."},"CompletionTokensDetails":{"properties":{"accepted_prediction_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Accepted Prediction Tokens"},"audio_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Audio Tokens"},"reasoning_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Reasoning Tokens"},"rejected_prediction_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Rejected Prediction Tokens"}},"additionalProperties":true,"type":"object","title":"CompletionTokensDetails","description":"Breakdown of tokens used in a completion."},"CompletionUsage":{"properties":{"completion_tokens":{"type":"integer","title":"Completion Tokens"},"prompt_tokens":{"type":"integer","title":"Prompt Tokens"},"total_tokens":{"type":"integer","title":"Total Tokens"},"completion_tokens_details":{"anyOf":[{"$ref":"#/components/schemas/CompletionTokensDetails"},{"type":"null"}]},"prompt_tokens_details":{"anyOf":[{"$ref":"#/components/schemas/PromptTokensDetails"},{"type":"null"}]}},"additionalProperties":true,"type":"object","required":["completion_tokens","prompt_tokens","total_tokens"],"title":"CompletionUsage","description":"Usage statistics for the completion request."},"CreateChatCompletion":{"properties":{"messages":{"items":{},"type":"array","title":"Messages","description":"A list of messages comprising the conversation so far."},"model":{"type":"string","title":"Model","description":"ID of the model to use. Call `/v1/models` endpoint to get the list of available models, only `text-generation` model type is supported."},"frequency_penalty":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Frequency Penalty","description":"Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.","default":0.0},"logit_bias":{"anyOf":[{"additionalProperties":{"type":"number"},"type":"object"},{"type":"null"}],"title":"Logit Bias","description":"Modify the likelihood of specified tokens appearing in the completion. Accepts a JSON object that maps tokens (specified by their token ID in the tokenizer) to an associated bias value from -100 to 100. Mathematically, the bias is added to the logits generated by the model prior to sampling. The exact effect will vary per model, but values between -1 and 1 should decrease or increase likelihood of selection; values like -100 or 100 should result in a ban or exclusive selection of the relevant token."},"logprobs":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Logprobs","description":"Whether to return log probabilities of the output tokens or not. If true, returns the log probabilities of each output token returned in the `content` of `message`.","default":false},"top_logprobs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Top Logprobs","description":"An integer between 0 and 20 specifying the number of most likely tokens to return at each token position, each with an associated log probability. `logprobs` must be set to `true` if this parameter is used."},"presence_penalty":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Presence Penalty","description":"Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.","default":0.0},"max_completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Completion Tokens","description":"An upper bound for the number of tokens that can be generated for a completion."},"n":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"N","description":"How many chat completion choices to generate for each input message. Note that you will be charged based on the number of generated tokens across all of the choices. Keep `n` as `1` to minimize costs.","default":1},"response_format":{"anyOf":[{},{"type":"null"}],"title":"Response Format","description":"Setting to `{ \"type\": \"json_schema\", \"json_schema\": {...} }` enables Structured Outputs which ensures the model will match your supplied JSON schema. Learn more in the Structured Outputs guide. Setting to `{ \"type\": \"json_object\" }` enables JSON mode, which ensures the message the model generates is valid JSON.
**Important**: when using JSON mode, you must also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly \"stuck\" request. Also note that the message content may be partially cut off if `finish_reason=\"length\"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length."},"seed":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Seed","description":"If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same `seed` and parameters should return the same result. Determinism is not guaranteed, and you should refer to the system_fingerprint response parameter to monitor changes in the backend."},"stop":{"anyOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Stop","description":"Up to 4 sequences where the API will stop generating further tokens."},"stream":{"anyOf":[{"type":"boolean","enum":[true,false]},{"type":"null"}],"title":"Stream","description":"If set, partial message deltas will be sent. Tokens will be sent as data-only server-sent events as they become available, with the stream terminated by a data: [DONE] message.","default":false},"stream_options":{"anyOf":[{},{"type":"null"}],"title":"Stream Options","description":"Options for streaming response. Only set this when you set `stream: true`."},"temperature":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Temperature","description":"What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. We generally recommend altering this or `top_p` but not both."},"top_p":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Top P","description":"An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered.
We generally recommend altering this or `temperature` but not both."},"tools":{"anyOf":[{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"description":"A list of tools the model may call. Currently, only functions are supported as a tool."},{"type":"null"}],"title":"Tools"},"tool_choice":{"title":"Tool Choice","description":"Controls which (if any) tool is called by the model. `none` means the model will not call any tool and instead generates a message. `auto` means the model can pick between generating a message or calling one or more tools. `required` means the model must call one or more tools. Specifying a particular tool via `{\"type\": \"function\", \"function\": {\"name\": \"my_function\"}}` forces the model to call that tool.
`none` is the default when no tools are present. `auto` is the default if tools are present.","default":"none"},"parallel_tool_calls":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Parallel Tool Calls","description":"Whether to call tools in parallel or sequentially. If true, the model will call tools in parallel. If false, the model will call tools sequentially. If None, the model will call tools in parallel if the model supports it, otherwise it will call tools sequentially.","default":false},"user":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User","description":"A unique identifier representing the user."}},"additionalProperties":true,"type":"object","required":["messages","model"],"title":"CreateChatCompletion"},"CreateEmbeddingsBody":{"properties":{"input":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"items":{"items":{"type":"integer"},"type":"array","minItems":1},"type":"array"},{"type":"string"},{"items":{"type":"string"},"type":"array"}],"minLength":1,"title":"Input","description":"Input text to embed, encoded as a string or array of tokens. To embed multiple inputs in a single request, pass an array of strings or array of token arrays. The input must not exceed the max input tokens for the model (call `/v1/models` endpoint to get the `max_context_length` by model) and cannot be an empty string."},"model":{"type":"string","minLength":1,"title":"Model","description":"ID of the model to use. Call `/v1/models` endpoint to get the list of available models, only `text-embeddings-inference` model type is supported."},"dimensions":{"anyOf":[{"type":"integer","exclusiveMinimum":0.0},{"type":"null"}],"title":"Dimensions","description":"The number of dimensions the resulting output embeddings should have."},"encoding_format":{"$ref":"#/components/schemas/EncodingFormat","description":"The format of the output embeddings.","default":"float"}},"additionalProperties":true,"type":"object","required":["input","model"],"title":"CreateEmbeddingsBody"},"CreateKey":{"properties":{"name":{"type":"string","title":"Name"},"expires":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires","description":"Timestamp in seconds"}},"additionalProperties":true,"type":"object","required":["name"],"title":"CreateKey"},"CreateKeyBody":{"properties":{"name":{"type":"string","minLength":1,"title":"Name","description":"Name of the key.","examples":["key-1"]},"user":{"type":"integer","title":"User","description":"User ID to create the token for another user (by default, the current user). Required CREATE_USER permission."},"expires":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires","description":"Expiration time, as Unix timestamp. If None, the key never expires."}},"additionalProperties":true,"type":"object","required":["name","user"],"title":"CreateKeyBody"},"CreateKeyResponse":{"properties":{"id":{"type":"integer","title":"Id"},"token":{"type":"string","title":"Token"}},"additionalProperties":true,"type":"object","required":["id","token"],"title":"CreateKeyResponse"},"CreateOCR":{"properties":{"bbox_annotation_format":{"anyOf":[{"$ref":"#/components/schemas/ResponseFormat"},{"type":"null"}],"description":"Specify the format that the model must output for the bounding boxes. By default it will use `{ \"type\": \"text\" }`. Setting to `{ \"type\": \"json_object\" }` enables JSON mode, which guarantees the message the model generates is in JSON. When using JSON mode you MUST also instruct the model to produce JSON yourself with a system or a user message. Setting to `{ \"type\": \"json_schema\" }` enables JSON schema mode, which guarantees the message the model generates is in JSON and follows the schema you provide."},"document":{"anyOf":[{"$ref":"#/components/schemas/DocumentURLChunk"},{"$ref":"#/components/schemas/ImageURLChunk"}],"title":"Document","description":"Document to run OCR on."},"document_annotation_format":{"anyOf":[{"$ref":"#/components/schemas/ResponseFormat"},{"type":"null"}],"description":"Specify the format that the model must output for the document. By default it will use `{ \"type\": \"text\" }`. Setting to `{ \"type\": \"json_object\" }` enables JSON mode, which guarantees the message the model generates is in JSON. When using JSON mode you MUST also instruct the model to produce JSON yourself with a system or a user message. Setting to `{ \"type\": \"json_schema\" }` enables JSON schema mode, which guarantees the message the model generates is in JSON and follows the schema you provide."},"document_annotation_prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Document Annotation Prompt","description":"Optional prompt to guide the model in extracting structured output from the entire document. A document_annotation_format must be provided."},"extract_footer":{"type":"boolean","title":"Extract Footer","description":"Whether to extract the footer of the document.","default":false},"extract_header":{"type":"boolean","title":"Extract Header","description":"Whether to extract the header of the document.","default":false},"image_limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Image Limit","description":"Max images to extract"},"image_min_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Image Min Size","description":"Minimum height and width of image to extract"},"include_image_base64":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Include Image Base64","description":"Include image URLs in response"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"The model to use for the OCR."},"pages":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Pages","description":"Specific pages to process. Accepts a list of integers or a string of comma-separated numbers and ranges (e.g. '0,1,2' or '0-5' or '0,2-4'). Page numbers start from 0."},"table_format":{"anyOf":[{"type":"string","enum":["markdown","html"]},{"type":"null"}],"title":"Table Format","description":"Format for table extraction: 'markdown' (default) or 'html'."}},"additionalProperties":true,"type":"object","required":["document"],"title":"CreateOCR"},"CreateProviderBody":{"properties":{"type":{"$ref":"#/components/schemas/ProviderType","description":"Model provider type."},"url":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Url","description":"Model provider API url. The url must only contain the domain name (without `/v1` suffix for example). Depends of the model provider type, the url can be optional (Albert, OpenAI)."},"key":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Key","description":"Model provider API key."},"basic_auth":{"anyOf":[{"$ref":"#/components/schemas/BasicAuth"},{"type":"null"}],"description":"Model provider basic authentication."},"timeout":{"type":"integer","title":"Timeout","description":"Timeout for the model provider requests, after user receive an 503 error (model is too busy).","default":300},"model_name":{"type":"string","title":"Model Name","description":"Model name from the model provider."},"model_hosting_zone":{"$ref":"#/components/schemas/HostingZone","description":"Model hosting zone using ISO 3166-1 alpha-3 code format (e.g., `WOR` for World, `FRA` for France, `USA` for United States). This determines the electricity mix used for carbon intensity calculations. For more information, see https://ecologits.ai","default":"WOR"},"model_total_params":{"type":"integer","minimum":0.0,"title":"Model Total Params","description":"Total params of the model in billions of parameters for carbon footprint computation. For more information, see https://ecologits.ai","default":0},"model_active_params":{"type":"integer","minimum":0.0,"title":"Model Active Params","description":"Active params of the model in billions of parameters for carbon footprint computation. For more information, see https://ecologits.ai","default":0},"qos_metric":{"anyOf":[{"$ref":"#/components/schemas/Metric"},{"type":"null"}],"description":"The metric to use for the quality of service policy. If not provided, no QoS policy is applied."},"qos_limit":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Qos Limit","description":"The value to use for the quality of service. Depends of the metric, the value can be a percentile, a threshold, etc."},"router_id":{"type":"integer","title":"Router Id","description":"ID of the model to create the provider for (router ID, eg. 123)."}},"additionalProperties":true,"type":"object","required":["type","model_name","router_id"],"title":"CreateProviderBody"},"CreateProviderResponse":{"properties":{"id":{"type":"integer","title":"Id","description":"Provider ID."},"router_id":{"type":"integer","title":"Router Id","description":"ID of the router that owns the provider."},"user_id":{"type":"integer","title":"User Id","description":"ID of the user that owns the provider."},"type":{"$ref":"#/components/schemas/ProviderType","description":"Provider type."},"url":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Url","description":"Provider API url. The url must only contain the domain name (without `/v1` suffix for example)."},"key":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Key","description":"Provider API key."},"basic_auth":{"anyOf":[{"$ref":"#/components/schemas/BasicAuth"},{"type":"null"}],"description":"Provider basic authentication."},"timeout":{"type":"integer","maximum":3600.0,"minimum":1.0,"title":"Timeout","description":"Timeout for the provider requests, after user receive an 500 error (model is too busy)."},"model_name":{"type":"string","minLength":1,"title":"Model Name","description":"Model name from the model provider."},"model_hosting_zone":{"$ref":"#/components/schemas/HostingZone","description":"Model hosting zone using ISO 3166-1 alpha-3 code format (e.g., `WOR` for World, `FRA` for France, `USA` for United States). This determines the electricity mix used for carbon intensity calculations. For more information, see https://ecologits.ai","default":"WOR","examples":["WOR"]},"model_total_params":{"type":"integer","minimum":0.0,"title":"Model Total Params","description":"Total params of the model in billions of parameters for carbon footprint computation. If not provided, the active params will be used if provided, else carbon footprint will not be computed. For more information, see https://ecologits.ai","default":0},"model_active_params":{"type":"integer","minimum":0.0,"title":"Model Active Params","description":"Active params of the model in billions of parameters for carbon footprint computation. If not provided, the total params will be used if provided, else carbon footprint will not be computed. For more information, see https://ecologits.ai","default":0},"qos_metric":{"anyOf":[{"$ref":"#/components/schemas/QoSMetric"},{"type":"null"}],"description":"The metric to use for the QoS policy. If not provided, no QoS policy is applied."},"qos_limit":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Qos Limit","description":"The value to use for the quality of service. Depends of the metric, the value can be a percentile, a threshold, etc."},"created":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created","description":"Time of creation, as Unix timestamp."},"updated":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated","description":"Time of last update, as Unix timestamp."}},"additionalProperties":true,"type":"object","required":["id","router_id","user_id","type","timeout","model_name"],"title":"CreateProviderResponse"},"CreateRerankBody":{"properties":{"query":{"type":"string","minLength":1,"title":"Query","description":"The search query to use for the reranking. `query` and `prompt` cannot both be provided."},"documents":{"items":{"type":"string","minLength":1},"type":"array","title":"Documents"},"model":{"type":"string","minLength":1,"title":"Model","description":"The model to use for the reranking, call `/v1/models` endpoint to get the list of available models, only `text-classification` model type is supported."},"top_n":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Top N","description":"The number of top results to return. If set to None, all results will be returned."}},"additionalProperties":true,"type":"object","required":["query","documents","model"],"title":"CreateRerankBody"},"CreateRoleBody":{"properties":{"name":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Name","description":"Name of the role.","examples":["my-role"]},"permissions":{"anyOf":[{"items":{"$ref":"#/components/schemas/PermissionType"},"type":"array"},{"type":"null"}],"title":"Permissions","description":"List of permissions."},"limits":{"anyOf":[{"items":{"$ref":"#/components/schemas/Limit"},"type":"array"},{"type":"null"}],"title":"Limits","description":"List of limits."}},"additionalProperties":true,"type":"object","title":"CreateRoleBody"},"CreateRouterBody":{"properties":{"name":{"type":"string","minLength":1,"title":"Name","description":"Name of the model router.","examples":["model-router-1"]},"type":{"$ref":"#/components/schemas/ModelType-Input","description":"Type of the model router. It will be used to identify the model router type.","examples":["text-generation"]},"aliases":{"items":{"type":"string","maxLength":64,"minLength":1},"type":"array","title":"Aliases","description":"Aliases of the model. It will be used to identify the model by users.","examples":[["model-alias","model-alias-2"]]},"load_balancing_strategy":{"$ref":"#/components/schemas/RouterLoadBalancingStrategy","description":"Routing strategy for load balancing between providers of the model. It will be used to identify the model type.","default":"shuffle"},"cost_prompt_tokens":{"type":"number","minimum":0.0,"title":"Cost Prompt Tokens","description":"Cost of a million prompt tokens (decrease user budget)","default":0.0},"cost_completion_tokens":{"type":"number","minimum":0.0,"title":"Cost Completion Tokens","description":"Cost of a million completion tokens (decrease user budget)","default":0.0}},"additionalProperties":true,"type":"object","required":["name","type"],"title":"CreateRouterBody"},"CreateToken":{"properties":{"name":{"type":"string","minLength":1,"title":"Name"},"user":{"type":"integer","title":"User","description":"User ID to create the token for another user (by default, the current user). Required CREATE_USER permission."},"expires":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires","description":"Timestamp in seconds"}},"additionalProperties":true,"type":"object","required":["name","user"],"title":"CreateToken"},"CreateUserBody":{"properties":{"email":{"type":"string","maxLength":254,"minLength":1,"title":"Email","description":"The user email."},"name":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Name","description":"The user name."},"password":{"type":"string","maxLength":72,"minLength":6,"title":"Password","description":"The user password."},"role":{"type":"integer","title":"Role","description":"The role ID."},"organization_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Organization Id","description":"The organization ID."},"budget":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Budget","description":"The budget."},"expires":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires","description":"The expiration timestamp."},"priority":{"type":"integer","minimum":0.0,"title":"Priority","description":"The user priority. Higher value means higher priority.","default":0}},"additionalProperties":true,"type":"object","required":["email","password","role"],"title":"CreateUserBody"},"Custom":{"properties":{"input":{"type":"string","title":"Input"},"name":{"type":"string","title":"Name"}},"additionalProperties":true,"type":"object","required":["input","name"],"title":"Custom","description":"The custom tool that the model called."},"DocumentURLChunk":{"properties":{"document_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Document Name","description":"The filename of the document."},"document_url":{"type":"string","title":"Document Url","description":"The URL of the document."},"type":{"type":"string","const":"document_url","title":"Type","description":"The type of the document.","default":"document_url"}},"additionalProperties":true,"type":"object","required":["document_url"],"title":"DocumentURLChunk"},"Embedding":{"properties":{"embedding":{"items":{"type":"number"},"type":"array","title":"Embedding"},"index":{"type":"integer","title":"Index"},"object":{"type":"string","const":"embedding","title":"Object"}},"additionalProperties":true,"type":"object","required":["embedding","index","object"],"title":"Embedding","description":"Represents an embedding vector returned by embedding endpoint."},"EmbeddingsResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/Embedding"},"type":"array","title":"Data"},"model":{"type":"string","title":"Model"},"object":{"type":"string","const":"list","title":"Object","description":"The type of object returned.","default":"list"},"usage":{"$ref":"#/components/schemas/api__domain__usage__entities__Usage","description":"Usage information for the request."},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"A unique identifier for the request."}},"additionalProperties":true,"type":"object","required":["data","model"],"title":"EmbeddingsResponse"},"EncodingFormat":{"type":"string","enum":["float","base64"],"title":"EncodingFormat"},"EndpointUsage":{"type":"string","enum":["/v1/audio/transcriptions","/v1/chat/completions","/v1/embeddings","/v1/ocr","/v1/rerank","/v1/search"],"title":"EndpointUsage"},"Function":{"properties":{"arguments":{"type":"string","title":"Arguments"},"name":{"type":"string","title":"Name"}},"additionalProperties":true,"type":"object","required":["arguments","name"],"title":"Function","description":"The function that the model called."},"FunctionCall":{"properties":{"arguments":{"type":"string","title":"Arguments"},"name":{"type":"string","title":"Name"}},"additionalProperties":true,"type":"object","required":["arguments","name"],"title":"FunctionCall","description":"Deprecated and replaced by `tool_calls`.\n\nThe name and arguments of a function that should be called, as generated by the model."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HostingZone":{"type":"string","enum":["ABW","AFG","AGO","AIA","ALA","ALB","AND","ARE","ARG","ARM","ASM","ATA","ATF","ATG","AUS","AUT","AZE","BDI","BEL","BEN","BES","BFA","BGD","BGR","BHR","BHS","BIH","BLM","BLR","BLZ","BMU","BOL","BRA","BRB","BRN","BTN","BVT","BWA","CAF","CAN","CCK","CHE","CHL","CHN","CIV","CMR","COD","COG","COK","COL","COM","CPV","CRI","CUB","CUW","CXR","CYM","CYP","CZE","DEU","DJI","DMA","DNK","DOM","DZA","ECU","EGY","ERI","ESH","ESP","EST","ETH","FIN","FJI","FLK","FRA","FRO","FSM","GAB","GBR","GEO","GGY","GHA","GIB","GIN","GLP","GMB","GNB","GNQ","GRC","GRD","GRL","GTM","GUF","GUM","GUY","HKG","HMD","HND","HRV","HTI","HUN","IDN","IMN","IND","IOT","IRL","IRN","IRQ","ISL","ISR","ITA","JAM","JEY","JOR","JPN","KAZ","KEN","KGZ","KHM","KIR","KNA","KOR","KWT","LAO","LBN","LBR","LBY","LCA","LIE","LKA","LSO","LTU","LUX","LVA","MAC","MAF","MAR","MCO","MDA","MDG","MDV","MEX","MHL","MKD","MLI","MLT","MMR","MNE","MNG","MNP","MOZ","MRT","MSR","MTQ","MUS","MWI","MYS","MYT","NAM","NCL","NER","NFK","NGA","NIC","NIU","NLD","NOR","NPL","NRU","NZL","OMN","PAK","PAN","PCN","PER","PHL","PLW","PNG","POL","PRI","PRK","PRT","PRY","PSE","PYF","QAT","REU","ROU","RUS","RWA","SAU","SDN","SEN","SGP","SGS","SHN","SJM","SLB","SLE","SLV","SMR","SOM","SPM","SRB","SSD","STP","SUR","SVK","SVN","SWE","SWZ","SXM","SYC","SYR","TCA","TCD","TGO","THA","TJK","TKL","TKM","TLS","TON","TTO","TUN","TUR","TUV","TWN","TZA","UGA","UKR","UMI","URY","USA","UZB","VAT","VCT","VEN","VGB","VIR","VNM","VUT","WLF","WOR","WSM","YEM","ZAF","ZMB","ZWE"],"title":"HostingZone"},"ImageURL":{"properties":{"detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Detail","description":"The detail of the image."},"url":{"type":"string","title":"Url","description":"The URL of the image."}},"additionalProperties":true,"type":"object","required":["url"],"title":"ImageURL"},"ImageURLChunk":{"properties":{"image_url":{"anyOf":[{"$ref":"#/components/schemas/ImageURL"},{"type":"string"}],"title":"Image Url","description":"The URL of the image to OCR."},"type":{"type":"string","const":"image_url","title":"Type","description":"The type of the image.","default":"image_url"}},"additionalProperties":true,"type":"object","required":["image_url"],"title":"ImageURLChunk"},"JsonSchema":{"properties":{"name":{"type":"string","title":"Name","description":"The name of the JSON schema."},"schema":{"additionalProperties":true,"type":"object","title":"Schema","description":"The JSON schema definition."},"strict":{"type":"boolean","title":"Strict","description":"Whether to use strict mode.","default":false},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Optional description of the schema."}},"additionalProperties":true,"type":"object","required":["name","schema"],"title":"JsonSchema"},"Key":{"properties":{"object":{"type":"string","const":"key","title":"Object","default":"key"},"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"token":{"type":"string","title":"Token"},"expires":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires"},"created":{"type":"integer","title":"Created"}},"additionalProperties":true,"type":"object","required":["id","name","token","created"],"title":"Key"},"KeyResponse":{"properties":{"object":{"type":"string","const":"key","title":"Object","description":"Type of the object.","default":"key"},"id":{"type":"integer","title":"Id","description":"ID of the key."},"name":{"type":"string","title":"Name","description":"Name of the key."},"value":{"type":"string","title":"Value","description":"Value of the key."},"user":{"type":"integer","title":"User","description":"ID of the user that owns the key."},"expires":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires","description":"Time of expiration, as Unix timestamp. If None, the key never expires."},"created":{"type":"integer","title":"Created","description":"Time of creation, as Unix timestamp."}},"additionalProperties":true,"type":"object","required":["id","name","value","user","created"],"title":"KeyResponse"},"Keys":{"properties":{"object":{"type":"string","const":"list","title":"Object","default":"list"},"data":{"items":{"$ref":"#/components/schemas/Key"},"type":"array","title":"Data"}},"additionalProperties":true,"type":"object","required":["data"],"title":"Keys"},"KeysResponse":{"properties":{"object":{"type":"string","const":"list","title":"Object","description":"Type of the object.","default":"list"},"total":{"type":"integer","title":"Total","description":"Total number of keys."},"offset":{"type":"integer","title":"Offset","description":"Offset of the keys list."},"limit":{"type":"integer","title":"Limit","description":"Limit of the keys list."},"data":{"items":{"$ref":"#/components/schemas/KeyResponse"},"type":"array","title":"Data","description":"List of keys."}},"additionalProperties":true,"type":"object","required":["total","offset","limit","data"],"title":"KeysResponse"},"Limit":{"properties":{"router_id":{"type":"integer","title":"Router Id","description":"The router ID."},"type":{"$ref":"#/components/schemas/LimitType","description":"The limit type."},"value":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Value","description":"The limit value."}},"additionalProperties":true,"type":"object","required":["router_id","type"],"title":"Limit"},"LimitType":{"type":"string","enum":["tpm","tpd","rpm","rpd"],"title":"LimitType"},"Metric":{"type":"string","enum":["ttft","latency","inflight","performance","normalized_latency"],"title":"Metric"},"MetricsUsage":{"properties":{"latency":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Latency"},"ttft":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ttft"}},"additionalProperties":true,"type":"object","title":"MetricsUsage"},"Model":{"properties":{"object":{"type":"string","const":"model","title":"Object","description":"Type of the object.","default":"model"},"id":{"type":"string","title":"Id","description":"The model identifier, which can be referenced in the API endpoints."},"type":{"anyOf":[{"$ref":"#/components/schemas/api__domain__model__entities__ModelType"},{"type":"null"}],"description":"The type of the model, which can be used to identify the model type.","examples":["text-generation"]},"aliases":{"items":{"type":"string"},"type":"array","title":"Aliases","description":"Aliases of the model. It will be used to identify the model by users.","examples":[["model-alias","model-alias-2"]]},"created":{"type":"integer","title":"Created","description":"Time of creation, as Unix timestamp."},"owned_by":{"type":"string","title":"Owned By","description":"The organization that owns the model."},"max_context_length":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Context Length","description":"Maximum amount of tokens a context could contains. Makes sure it is the same for all models."},"costs":{"$ref":"#/components/schemas/ModelCosts","description":"Costs of the model."}},"additionalProperties":true,"type":"object","required":["id","created","owned_by"],"title":"Model"},"ModelCosts":{"properties":{"prompt_tokens":{"type":"number","minimum":0.0,"title":"Prompt Tokens","description":"Cost of a million prompt tokens (decrease user budget)","default":0.0},"completion_tokens":{"type":"number","minimum":0.0,"title":"Completion Tokens","description":"Cost of a million completion tokens (decrease user budget)","default":0.0}},"additionalProperties":true,"type":"object","title":"ModelCosts"},"ModelType-Input":{"type":"string","enum":["automatic-speech-recognition","image-text-to-text","image-to-text","text-embeddings-inference","text-generation","text-classification"],"title":"ModelType"},"ModelsResponse":{"properties":{"object":{"type":"string","const":"list","title":"Object","description":"Type of the object.","default":"list"},"data":{"items":{"$ref":"#/components/schemas/Model"},"type":"array","title":"Data","description":"List of models."}},"additionalProperties":true,"type":"object","required":["data"],"title":"ModelsResponse"},"Nullable_OCRPageDimensions_":{"anyOf":[{"$ref":"#/components/schemas/OCRPageDimensions"},{"type":"null"}]},"Nullable_int_":{"anyOf":[{"type":"integer"},{"type":"null"}]},"Nullable_str_":{"anyOf":[{"type":"string"},{"type":"null"}]},"OCR":{"properties":{"pages":{"items":{"$ref":"#/components/schemas/OCRPageObject"},"type":"array","title":"Pages"},"model":{"type":"string","title":"Model"},"usage_info":{"$ref":"#/components/schemas/OCRUsageInfo"},"document_annotation":{"$ref":"#/components/schemas/OptionalNullable_str_","default":"~?~unset~?~sentinel~?~"},"id":{"type":"string","title":"Id","description":"The ID of the OCR request."},"usage":{"anyOf":[{"$ref":"#/components/schemas/api__schemas__usage__Usage"},{"type":"null"}],"description":"Usage information for the request."}},"type":"object","required":["pages","model","usage_info","id"],"title":"OCR"},"OCRImageObject":{"properties":{"id":{"type":"string","title":"Id"},"top_left_x":{"$ref":"#/components/schemas/Nullable_int_"},"top_left_y":{"$ref":"#/components/schemas/Nullable_int_"},"bottom_right_x":{"$ref":"#/components/schemas/Nullable_int_"},"bottom_right_y":{"$ref":"#/components/schemas/Nullable_int_"},"image_base64":{"$ref":"#/components/schemas/OptionalNullable_str_","default":"~?~unset~?~sentinel~?~"},"image_annotation":{"$ref":"#/components/schemas/OptionalNullable_str_","default":"~?~unset~?~sentinel~?~"}},"type":"object","required":["id","top_left_x","top_left_y","bottom_right_x","bottom_right_y"],"title":"OCRImageObject"},"OCRPageDimensions":{"properties":{"dpi":{"type":"integer","title":"Dpi"},"height":{"type":"integer","title":"Height"},"width":{"type":"integer","title":"Width"}},"type":"object","required":["dpi","height","width"],"title":"OCRPageDimensions"},"OCRPageObject":{"properties":{"index":{"type":"integer","title":"Index"},"markdown":{"type":"string","title":"Markdown"},"images":{"items":{"$ref":"#/components/schemas/OCRImageObject"},"type":"array","title":"Images"},"dimensions":{"$ref":"#/components/schemas/Nullable_OCRPageDimensions_"},"tables":{"anyOf":[{"items":{"$ref":"#/components/schemas/OCRTableObject"},"type":"array"},{"type":"null"}],"title":"Tables"},"hyperlinks":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Hyperlinks"},"header":{"$ref":"#/components/schemas/OptionalNullable_str_","default":"~?~unset~?~sentinel~?~"},"footer":{"$ref":"#/components/schemas/OptionalNullable_str_","default":"~?~unset~?~sentinel~?~"}},"type":"object","required":["index","markdown","images","dimensions"],"title":"OCRPageObject"},"OCRTableObject":{"properties":{"id":{"type":"string","title":"Id"},"content":{"type":"string","title":"Content"},"format":{"type":"string","enum":["markdown","html"],"title":"Format"}},"type":"object","required":["id","content","format"],"title":"OCRTableObject"},"OCRUsageInfo":{"properties":{"pages_processed":{"type":"integer","title":"Pages Processed"},"doc_size_bytes":{"$ref":"#/components/schemas/OptionalNullable_int_","default":"~?~unset~?~sentinel~?~"}},"type":"object","required":["pages_processed"],"title":"OCRUsageInfo"},"OptionalNullable_int_":{"anyOf":[{"$ref":"#/components/schemas/Nullable_int_"},{"$ref":"#/components/schemas/Unset"},{"type":"null"}]},"OptionalNullable_str_":{"anyOf":[{"$ref":"#/components/schemas/Nullable_str_"},{"$ref":"#/components/schemas/Unset"},{"type":"null"}]},"Organization":{"properties":{"object":{"type":"string","const":"organization","title":"Object","default":"organization"},"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"users":{"type":"integer","title":"Users"},"created":{"type":"integer","title":"Created"},"updated":{"type":"integer","title":"Updated"}},"additionalProperties":true,"type":"object","required":["id","name","users"],"title":"Organization"},"OrganizationRequest":{"properties":{"name":{"type":"string","minLength":1,"title":"Name","description":"The organization name."}},"additionalProperties":true,"type":"object","required":["name"],"title":"OrganizationRequest"},"OrganizationUpdateRequest":{"properties":{"name":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Name","description":"The new organization name."}},"additionalProperties":true,"type":"object","title":"OrganizationUpdateRequest"},"Organizations":{"properties":{"object":{"type":"string","const":"list","title":"Object","default":"list"},"data":{"items":{"$ref":"#/components/schemas/Organization"},"type":"array","title":"Data"}},"additionalProperties":true,"type":"object","required":["data"],"title":"Organizations"},"OrganizationsResponse":{"properties":{"id":{"type":"integer","title":"Id"}},"additionalProperties":true,"type":"object","required":["id"],"title":"OrganizationsResponse"},"PermissionType":{"type":"string","enum":["admin","create_public_collection","read_metric","provide_models"],"title":"PermissionType"},"PromptTokensDetails":{"properties":{"audio_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Audio Tokens"},"cached_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cached Tokens"}},"additionalProperties":true,"type":"object","title":"PromptTokensDetails","description":"Breakdown of tokens used in the prompt."},"ProviderResponse":{"properties":{"object":{"type":"string","const":"provider","title":"Object","description":"Type of the object.","default":"provider"},"id":{"type":"integer","title":"Id","description":"provider ID."},"router_id":{"type":"integer","title":"Router Id","description":"ID of the router that owns the provider."},"user_id":{"type":"integer","title":"User Id","description":"ID of the user that owns the provider."},"type":{"$ref":"#/components/schemas/ProviderType","description":"Provider type."},"url":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Url","description":"provider API url. The url must only contain the domain name (without `/v1` suffix for example)."},"timeout":{"type":"integer","title":"Timeout","description":"Timeout for the provider requests, after user receive an 500 error (model is too busy)."},"model_name":{"type":"string","minLength":1,"title":"Model Name","description":"Model name from the model provider."},"model_hosting_zone":{"$ref":"#/components/schemas/HostingZone","description":"Model hosting zone using ISO 3166-1 alpha-3 code format (e.g., `WOR` for World, `FRA` for France, `USA` for United States). This determines the electricity mix used for carbon intensity calculations. For more information, see https://ecologits.ai","default":"WOR","examples":["WOR"]},"model_total_params":{"type":"integer","minimum":0.0,"title":"Model Total Params","description":"Total params of the model in billions of parameters for carbon footprint computation. If not provided, the active params will be used if provided, else carbon footprint will not be computed. For more information, see https://ecologits.ai","default":0},"model_active_params":{"type":"integer","minimum":0.0,"title":"Model Active Params","description":"Active params of the model in billions of parameters for carbon footprint computation. If not provided, the total params will be used if provided, else carbon footprint will not be computed. For more information, see https://ecologits.ai","default":0},"qos_metric":{"anyOf":[{"$ref":"#/components/schemas/QoSMetric"},{"type":"null"}],"description":"The metric to use for the QoS policy. If not provided, no QoS policy is applied."},"qos_limit":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Qos Limit","description":"The value to use for the quality of service. Depends of the metric, the value can be a percentile, a threshold, etc."},"created":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created","description":"Time of creation, as Unix timestamp."},"updated":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated","description":"Time of last update, as Unix timestamp."}},"additionalProperties":true,"type":"object","required":["id","router_id","user_id","type","timeout","model_name","qos_metric"],"title":"ProviderResponse"},"ProviderSortField":{"type":"string","enum":["id","model_name","created"],"title":"ProviderSortField"},"ProviderType":{"type":"string","enum":["albert","openai","mistral","tei","vllm"],"title":"ProviderType"},"ProvidersResponse":{"properties":{"object":{"type":"string","const":"list","title":"Object","description":"Type of the object.","default":"list"},"total":{"type":"integer","title":"Total","description":"Total number of providers."},"offset":{"type":"integer","title":"Offset","description":"Offset of the providers list."},"limit":{"type":"integer","title":"Limit","description":"Limit of the providers list."},"data":{"items":{"$ref":"#/components/schemas/ProviderResponse"},"type":"array","title":"Data","description":"List of providers."}},"additionalProperties":true,"type":"object","required":["total","offset","limit","data"],"title":"ProvidersResponse"},"QoSMetric":{"type":"string","enum":["ttft","latency","inflight","performance"],"title":"QoSMetric"},"RerankResponse":{"properties":{"object":{"type":"string","const":"list","title":"Object","default":"list"},"id":{"type":"string","title":"Id","description":"A unique identifier for the request."},"results":{"items":{"$ref":"#/components/schemas/RerankResult"},"type":"array","title":"Results","description":"The list of reranked texts."},"model":{"type":"string","title":"Model","description":"The model used to generate the reranking."},"usage":{"$ref":"#/components/schemas/api__domain__usage__entities__Usage","description":"Usage information for the request."}},"additionalProperties":true,"type":"object","required":["id","results","model"],"title":"RerankResponse"},"RerankResult":{"properties":{"relevance_score":{"type":"number","title":"Relevance Score","description":"The relevance score of the reranked text."},"index":{"type":"integer","title":"Index","description":"The index of the reranked text."}},"additionalProperties":true,"type":"object","required":["relevance_score","index"],"title":"RerankResult"},"ResponseFormat":{"properties":{"type":{"type":"string","enum":["text","json_object","json_schema"],"title":"Type","description":"Specify the format that the model must output. By default it will use `{ \"type\": \"text\" }`. Setting to `{ \"type\": \"json_object\" }` enables JSON mode, which guarantees the message the model generates is in JSON. When using JSON mode you MUST also instruct the model to produce JSON yourself with a system or a user message. Setting to `{ \"type\": \"json_schema\" }` enables JSON schema mode, which guarantees the message the model generates is in JSON and follows the schema you provide.","default":"text"},"json_schema":{"anyOf":[{"$ref":"#/components/schemas/JsonSchema"},{"type":"null"}],"description":"The JSON schema definition. Required when type is 'json_schema'."}},"additionalProperties":true,"type":"object","title":"ResponseFormat"},"RoleResponse":{"properties":{"object":{"type":"string","const":"role","title":"Object","description":"Type of the object.","default":"role"},"id":{"type":"integer","title":"Id","description":"ID of the role."},"name":{"type":"string","title":"Name","description":"Name of the role."},"permissions":{"items":{"$ref":"#/components/schemas/PermissionType"},"type":"array","title":"Permissions","description":"List of permissions."},"limits":{"items":{"$ref":"#/components/schemas/Limit"},"type":"array","title":"Limits","description":"List of limits."},"users":{"type":"integer","title":"Users","description":"Number of users assigned to the role."},"created":{"type":"integer","title":"Created","description":"Time of creation, as Unix timestamp."},"updated":{"type":"integer","title":"Updated","description":"Time of last update, as Unix timestamp."}},"additionalProperties":true,"type":"object","required":["id","name","permissions","limits","users","created","updated"],"title":"RoleResponse"},"RolesResponse":{"properties":{"object":{"type":"string","const":"list","title":"Object","description":"Type of the object.","default":"list"},"total":{"type":"integer","title":"Total","description":"Total number of roles."},"offset":{"type":"integer","title":"Offset","description":"Offset of the roles list."},"limit":{"type":"integer","title":"Limit","description":"Limit of the roles list."},"data":{"items":{"$ref":"#/components/schemas/RoleResponse"},"type":"array","title":"Data","description":"List of roles."}},"additionalProperties":true,"type":"object","required":["total","offset","limit","data"],"title":"RolesResponse"},"RouterLoadBalancingStrategy":{"type":"string","enum":["shuffle","least_busy"],"title":"RouterLoadBalancingStrategy"},"RouterResponse":{"properties":{"object":{"type":"string","const":"router","title":"Object","description":"Type of the object.","default":"router"},"id":{"type":"integer","title":"Id","description":"ID of the router."},"name":{"type":"string","title":"Name","description":"Name of the router."},"user_id":{"type":"integer","title":"User Id","description":"ID of the user that owns the router."},"type":{"$ref":"#/components/schemas/api__schemas__models__ModelType","description":"Type of the model router. It will be used to identify the model router type.","examples":["text-generation"]},"aliases":{"items":{"type":"string","maxLength":64,"minLength":1},"type":"array","title":"Aliases","description":"Aliases of the model. It will be used to identify the model by users.","examples":[["model-alias","model-alias-2"]]},"load_balancing_strategy":{"$ref":"#/components/schemas/RouterLoadBalancingStrategy","description":"Routing strategy for load balancing between providers of the model. It will be used to identify the model type.","examples":["least_busy"]},"vector_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Vector Size","description":"Dimension of the vectors, if the models are embeddings. Make sure it is the same for all models."},"max_context_length":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Context Length","description":"Maximum amount of tokens a context could contains. Make sure it is the same for all models."},"cost_prompt_tokens":{"type":"number","title":"Cost Prompt Tokens","description":"Cost of a million prompt tokens (decrease user budget)"},"cost_completion_tokens":{"type":"number","title":"Cost Completion Tokens","description":"Cost of a million completion tokens (decrease user budget)"},"providers":{"type":"integer","title":"Providers","description":"Number of providers in the router.","default":0},"created":{"type":"integer","title":"Created","description":"Time of creation, as Unix timestamp."},"updated":{"type":"integer","title":"Updated","description":"Time of last update, as Unix timestamp."}},"additionalProperties":true,"type":"object","required":["id","name","user_id","type","aliases","load_balancing_strategy","cost_prompt_tokens","cost_completion_tokens","created","updated"],"title":"RouterResponse"},"RoutersResponse":{"properties":{"object":{"type":"string","const":"list","title":"Object","description":"Type of the object.","default":"list"},"total":{"type":"integer","title":"Total","description":"Total number of routers."},"offset":{"type":"integer","title":"Offset","description":"Offset of the routers list."},"limit":{"type":"integer","title":"Limit","description":"Limit of the routers list."},"data":{"items":{"$ref":"#/components/schemas/RouterResponse"},"type":"array","title":"Data","description":"List of routers."}},"additionalProperties":true,"type":"object","required":["total","offset","limit","data"],"title":"RoutersResponse"},"Segment":{"properties":{"id":{"type":"integer","title":"Id","description":"A unique identifier for the segment."},"type":{"type":"string","title":"Type","description":"The type of the segment.","default":"transcript.text.segment"},"text":{"type":"string","title":"Text","description":"The segment text."},"start":{"type":"number","title":"Start","description":"Start time of the segment in seconds."},"end":{"type":"number","title":"End","description":"End time of the segment in seconds."},"speaker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Speaker","description":"Speaker label assigned by diarization, if available."}},"additionalProperties":true,"type":"object","required":["id","text","start","end"],"title":"Segment"},"SortField":{"type":"string","enum":["id","name","created"],"title":"SortField"},"SortOrder":{"type":"string","enum":["asc","desc"],"title":"SortOrder"},"TokensResponse":{"properties":{"id":{"type":"integer","title":"Id"},"token":{"type":"string","title":"Token"}},"additionalProperties":true,"type":"object","required":["id","token"],"title":"TokensResponse"},"TopLogprob":{"properties":{"token":{"type":"string","title":"Token"},"bytes":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Bytes"},"logprob":{"type":"number","title":"Logprob"}},"additionalProperties":true,"type":"object","required":["token","logprob"],"title":"TopLogprob"},"Unset":{"properties":{},"type":"object","title":"Unset"},"UpdateProviderBody":{"properties":{"router_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Router Id","description":"The ID of the new router to assign to the provider."},"timeout":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Timeout","description":"Timeout for the model provider requests, after user receive an 500 error (model is too busy)."},"model_hosting_zone":{"anyOf":[{"$ref":"#/components/schemas/HostingZone"},{"type":"null"}],"description":"Model hosting zone using ISO 3166-1 alpha-3 code format (e.g., `WOR` for World, `FRA` for France, `USA` for United States). This determines the electricity mix used for carbon intensity calculations. For more information, see https://ecologits.ai"},"model_total_params":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Model Total Params","description":"Total params of the model in billions of parameters for carbon footprint computation. If not provided, the active params will be used if provided, else carbon footprint will not be computed. For more information, see https://ecologits.ai"},"model_active_params":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Model Active Params","description":"Active params of the model in billions of parameters for carbon footprint computation. If not provided, the total params will be used if provided, else carbon footprint will not be computed. For more information, see https://ecologits.ai"},"qos_metric":{"anyOf":[{"$ref":"#/components/schemas/QoSMetric"},{"type":"null"}],"description":"The metric to use for the quality of service policy. If not provided, no QoS policy is applied."},"qos_limit":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Qos Limit","description":"The value to use for the quality of service. Depends of the metric, the value can be a percentile, a threshold, etc."}},"additionalProperties":true,"type":"object","title":"UpdateProviderBody"},"UpdateRouterBody":{"properties":{"name":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Name","description":"Name of the model router.","examples":["model-router-1"]},"type":{"anyOf":[{"$ref":"#/components/schemas/ModelType-Input"},{"type":"null"}],"description":"Type of the model router. It will be used to identify the model router type.","examples":["text-generation"]},"aliases":{"anyOf":[{"items":{"type":"string","maxLength":64,"minLength":1},"type":"array"},{"type":"null"}],"title":"Aliases","description":"Aliases of the model. It will be used to identify the model by users.","examples":[["model-alias","model-alias-2"]]},"load_balancing_strategy":{"anyOf":[{"$ref":"#/components/schemas/RouterLoadBalancingStrategy"},{"type":"null"}],"description":"Routing strategy for load balancing between providers of the model. It will be used to identify the model type.","examples":["least_busy"]},"cost_prompt_tokens":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Cost Prompt Tokens","description":"Cost of a million prompt tokens (decrease user budget)"},"cost_completion_tokens":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Cost Completion Tokens","description":"Cost of a million completion tokens (decrease user budget)"}},"additionalProperties":true,"type":"object","title":"UpdateRouterBody"},"UpdateUserInfo":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"The user name."},"email":{"anyOf":[{"type":"string","maxLength":254},{"type":"null"}],"title":"Email","description":"The user email."},"current_password":{"anyOf":[{"type":"string","maxLength":72},{"type":"null"}],"title":"Current Password","description":"The current user password."},"password":{"anyOf":[{"type":"string","maxLength":72},{"type":"null"}],"title":"Password","description":"The new user password. If None, the user password is not changed."}},"additionalProperties":true,"type":"object","title":"UpdateUserInfo"},"UsageDetail":{"properties":{"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Prompt Tokens","description":"Number of prompt tokens (e.g. input tokens)."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Completion Tokens","description":"Number of completion tokens (e.g. output tokens)."},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total number of tokens (e.g. input and output tokens)."},"cost":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cost","description":"Total cost of the request."},"impacts":{"$ref":"#/components/schemas/api__schemas__usage__EnvironmentalImpacts"},"metrics":{"$ref":"#/components/schemas/MetricsUsage"}},"additionalProperties":true,"type":"object","title":"UsageDetail"},"Usages":{"properties":{"object":{"type":"string","const":"list","title":"Object","description":"Object type.","default":"list"},"data":{"items":{"$ref":"#/components/schemas/api__schemas__me__usage__Usage"},"type":"array","title":"Data","description":"List of usages."}},"additionalProperties":true,"type":"object","required":["data"],"title":"Usages"},"UserInfo":{"properties":{"object":{"type":"string","const":"userInfo","title":"Object","description":"The user info object type.","default":"userInfo"},"id":{"type":"integer","title":"Id","description":"The user ID."},"email":{"type":"string","title":"Email","description":"The user email."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"The user name."},"organization":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Organization","description":"The user organization ID."},"budget":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Budget","description":"The user budget. If None, the user has unlimited budget."},"permissions":{"items":{"$ref":"#/components/schemas/PermissionType"},"type":"array","title":"Permissions","description":"The user permissions."},"limits":{"items":{"$ref":"#/components/schemas/Limit"},"type":"array","title":"Limits","description":"The user rate limits."},"expires":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires","description":"The user expiration timestamp. If None, the user will never expire."},"priority":{"type":"integer","title":"Priority","description":"The user priority (higher = higher priority). This value influences scheduling/queue priority for non-streaming model invocations.","default":0},"created":{"type":"integer","title":"Created","description":"The user creation timestamp."},"updated":{"type":"integer","title":"Updated","description":"The user update timestamp."}},"additionalProperties":true,"type":"object","required":["id","email","permissions","limits","created","updated"],"title":"UserInfo"},"UserResponse":{"properties":{"object":{"type":"string","const":"user","title":"Object","description":"Type of the object.","default":"user"},"id":{"type":"integer","title":"Id","description":"ID of the user."},"email":{"type":"string","title":"Email","description":"Email of the user."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the user."},"sub":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub","description":"Subject identifier for SSO."},"iss":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Iss","description":"Issuer identifier for SSO."},"role":{"type":"integer","title":"Role","description":"ID of the role assigned to the user."},"organization_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Organization Id","description":"ID of the organization the user belongs to."},"budget":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Budget","description":"Budget allocated to the user."},"expires":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires","description":"Expiration time of the user, as Unix timestamp."},"created":{"type":"integer","title":"Created","description":"Time of creation, as Unix timestamp."},"updated":{"type":"integer","title":"Updated","description":"Time of last update, as Unix timestamp."},"priority":{"type":"integer","title":"Priority","description":"Priority of the user. Higher value means higher priority."}},"additionalProperties":false,"type":"object","required":["id","email","role","created","updated","priority"],"title":"UserResponse"},"UserSortField":{"type":"string","enum":["id","email","created","updated"],"title":"UserSortField"},"UserUpdateRequest":{"properties":{"email":{"anyOf":[{"type":"string","maxLength":254,"minLength":1},{"type":"null"}],"title":"Email","description":"The new user email. If None, the user email is not changed."},"name":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Name","description":"The new user name. If None, the user name is not changed."},"current_password":{"anyOf":[{"type":"string","maxLength":72,"minLength":1},{"type":"null"}],"title":"Current Password","description":"The current user password."},"password":{"anyOf":[{"type":"string","maxLength":72,"minLength":1},{"type":"null"}],"title":"Password","description":"The new user password. If None, the user password is not changed."},"role":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Role","description":"The new role ID. If None, the user role is not changed."},"organization":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Organization","description":"The new organization ID. If None, the user will be removed from the organization if he was in one."},"budget":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Budget","description":"The new budget. If None, the user will have no budget."},"expires":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires","description":"The new expiration timestamp. If None, the user will never expire."},"priority":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Priority","description":"The new user priority. Higher value means higher priority. If None, unchanged."}},"additionalProperties":true,"type":"object","title":"UserUpdateRequest"},"UsersResponse":{"properties":{"object":{"type":"string","const":"list","title":"Object","description":"Type of the object.","default":"list"},"total":{"type":"integer","title":"Total","description":"Total number of users matching the query."},"offset":{"type":"integer","title":"Offset","description":"Number of users skipped."},"limit":{"type":"integer","title":"Limit","description":"Maximum number of users returned."},"data":{"items":{"$ref":"#/components/schemas/UserResponse"},"type":"array","title":"Data","description":"List of users."}},"additionalProperties":true,"type":"object","required":["total","offset","limit","data"],"title":"UsersResponse"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"api__domain__model__entities__ModelType":{"type":"string","enum":["automatic-speech-recognition","image-text-to-text","image-to-text","text-classification","text-embeddings-inference","text-generation"],"title":"ModelType"},"api__domain__usage__entities__EnvironmentalImpacts":{"properties":{"kWh":{"type":"number","title":"Kwh","default":0.0},"kgCO2eq":{"type":"number","title":"Kgco2Eq","default":0.0}},"additionalProperties":true,"type":"object","title":"EnvironmentalImpacts"},"api__domain__usage__entities__Usage":{"properties":{"prompt_tokens":{"type":"integer","title":"Prompt Tokens","default":0},"completion_tokens":{"type":"integer","title":"Completion Tokens","default":0},"total_tokens":{"type":"integer","title":"Total Tokens","default":0},"cost":{"type":"number","title":"Cost","default":0.0},"impacts":{"$ref":"#/components/schemas/api__domain__usage__entities__EnvironmentalImpacts","default":{"kWh":0.0,"kgCO2eq":0.0}}},"additionalProperties":true,"type":"object","title":"Usage"},"api__infrastructure__fastapi__documentation__HTTPExceptionModel":{"properties":{"status_code":{"type":"integer","title":"Status Code"},"detail":{"type":"string","title":"Detail"},"headers":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Headers"}},"type":"object","required":["status_code","detail"],"title":"HTTPExceptionModel"},"api__schemas__exception__HTTPExceptionModel":{"properties":{"status_code":{"type":"integer","maximum":599.0,"minimum":100.0,"title":"Status Code","description":"HTTP status code to send to the client."},"detail":{"title":"Detail","description":"Any data to be sent to the client in the `detail` key of the JSON response."},"headers":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Headers","description":"Any headers to send to the client in the response."}},"type":"object","required":["status_code","detail","headers"],"title":"HTTPExceptionModel"},"api__schemas__me__usage__Usage":{"properties":{"object":{"type":"string","const":"me.usage","title":"Object","description":"Object type.","default":"me.usage"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model used for the request."},"key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key","description":"Key used for the request."},"endpoint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Endpoint","description":"Endpoint used for the request."},"method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Method","description":"Method used for the request."},"status":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status","description":"Status code of the response."},"usage":{"$ref":"#/components/schemas/UsageDetail"},"created":{"type":"integer","title":"Created","description":"Timestamp in seconds"}},"additionalProperties":true,"type":"object","required":["created"],"title":"Usage"},"api__schemas__models__ModelType":{"type":"string","enum":["automatic-speech-recognition","image-text-to-text","image-to-text","text-embeddings-inference","text-generation","text-classification"],"title":"ModelType"},"api__schemas__usage__EnvironmentalImpacts":{"properties":{"kWh":{"type":"number","title":"Kwh","description":"Carbon footprint in kWh.","default":0.0},"kgCO2eq":{"type":"number","title":"Kgco2Eq","description":"Carbon footprint in kgCO2eq (global warming potential).","default":0.0}},"additionalProperties":true,"type":"object","title":"EnvironmentalImpacts"},"api__schemas__usage__Usage":{"properties":{"prompt_tokens":{"type":"integer","title":"Prompt Tokens","description":"Number of prompt tokens (e.g. input tokens).","default":0},"completion_tokens":{"type":"integer","title":"Completion Tokens","description":"Number of completion tokens (e.g. output tokens).","default":0},"total_tokens":{"type":"integer","title":"Total Tokens","description":"Total number of tokens (e.g. input and output tokens).","default":0},"cost":{"type":"number","title":"Cost","description":"Total cost of the request.","default":0.0},"carbon":{"$ref":"#/components/schemas/CarbonFootprintUsage","deprecated":true},"impacts":{"$ref":"#/components/schemas/api__schemas__usage__EnvironmentalImpacts"},"requests":{"type":"integer","title":"Requests","description":"Number of model requests.","default":0}},"additionalProperties":true,"type":"object","title":"Usage"},"openai__types__chat__chat_completion__Choice":{"properties":{"finish_reason":{"type":"string","enum":["stop","length","tool_calls","content_filter","function_call"],"title":"Finish Reason"},"index":{"type":"integer","title":"Index"},"logprobs":{"anyOf":[{"$ref":"#/components/schemas/ChoiceLogprobs"},{"type":"null"}]},"message":{"$ref":"#/components/schemas/ChatCompletionMessage"}},"additionalProperties":true,"type":"object","required":["finish_reason","index","message"],"title":"Choice"},"openai__types__chat__chat_completion_chunk__Choice":{"properties":{"delta":{"$ref":"#/components/schemas/ChoiceDelta"},"finish_reason":{"anyOf":[{"type":"string","enum":["stop","length","tool_calls","content_filter","function_call"]},{"type":"null"}],"title":"Finish Reason"},"index":{"type":"integer","title":"Index"},"logprobs":{"anyOf":[{"$ref":"#/components/schemas/ChoiceLogprobs"},{"type":"null"}]}},"additionalProperties":true,"type":"object","required":["delta","index"],"title":"Choice"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}}
\ No newline at end of file
+{"openapi":"3.1.0","info":{"title":"OpenGateLLM","summary":"OpenGateLLM connect to your models. You can configuration this swagger UI in the configuration file, like hide routes or change the title.","description":"[See documentation](https://github.com/etalab-ia/opengatellm/blob/main/README.md)","license":{"name":"MIT Licence","identifier":"MIT","url":"https://raw.githubusercontent.com/etalab-ia/opengatellm/refs/heads/main/LICENSE"},"version":"0.5.0"},"paths":{"/v1/admin/keys":{"post":{"tags":["Admin"],"summary":"Create Key","description":"Create a new key for a user.","operationId":"create_key_v1_admin_keys_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateKeyBody","description":"The key creation request."}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KeyResponse"}}}},"409":{"description":"Key {name} already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"403":{"description":"User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"404":{"description":"User {user_id} not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Admin"],"summary":"Get Keys","operationId":"get_keys_v1_admin_keys_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The user ID to filter keys by.","title":"User"},"description":"The user ID to filter keys by."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Number of keys to skip.","default":0,"title":"Offset"},"description":"Number of keys to skip."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Maximum number of keys to return.","default":10,"title":"Limit"},"description":"Maximum number of keys to return."},{"name":"sort_by","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortField","description":"Field to sort by.","default":"id"},"description":"Field to sort by."},{"name":"sort_order","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortOrder","description":"Sort order.","default":"asc"},"description":"Sort order."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KeysResponse"}}}},"403":{"description":"User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/keys/{key_id}":{"get":{"tags":["Admin"],"summary":"Get Key","operationId":"get_key_v1_admin_keys__key_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"integer","description":"The ID of the key to get.","title":"Key Id"},"description":"The ID of the key to get."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KeyResponse"}}}},"404":{"description":"Key {key_id} not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"403":{"description":"User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/providers":{"post":{"tags":["Admin"],"summary":"Create Provider","operationId":"create_provider_v1_admin_providers_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProviderBody"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProviderResponse"}}}},"403":{"description":"Inconsistent max context length for {model_name}. Expected: {expected_length}. Actual: {actual_length}
Inconsistent vector size for {model_name}. Expected: {expected_size}. Actual: {actual_size}
User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"400":{"description":"Invalid model provider type {input_type} for {expected_type} router.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"424":{"description":"Model provider {name} not reachable ({status_code}): {detail}","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"409":{"description":"Model provider {model_name} for url {url} already exists for router {router_id}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"404":{"description":"Model router {router_id} not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Admin"],"summary":"Get Providers","operationId":"get_providers_v1_admin_providers_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"router_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter providers by router ID.","title":"Router Id"},"description":"Filter providers by router ID."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Number of providers to skip.","default":0,"title":"Offset"},"description":"Number of providers to skip."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Maximum number of providers to return.","default":10,"title":"Limit"},"description":"Maximum number of providers to return."},{"name":"sort_by","in":"query","required":false,"schema":{"$ref":"#/components/schemas/ProviderSortField","description":"Field to sort by.","default":"id"},"description":"Field to sort by."},{"name":"sort_order","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortOrder","description":"Sort order.","default":"asc"},"description":"Sort order."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProvidersResponse"}}}},"403":{"description":"User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/providers/{provider_id}":{"delete":{"tags":["Admin"],"summary":"Delete Provider","operationId":"delete_provider_v1_admin_providers__provider_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"provider_id","in":"path","required":true,"schema":{"type":"integer","description":"The ID of the provider to delete.","title":"Provider Id"},"description":"The ID of the provider to delete."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderResponse"}}}},"404":{"description":"Model provider {provider_id} not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"403":{"description":"User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Admin"],"summary":"Update Provider","operationId":"update_provider_v1_admin_providers__provider_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"provider_id","in":"path","required":true,"schema":{"type":"integer","description":"The ID of the provider to update.","title":"Provider Id"},"description":"The ID of the provider to update."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProviderBody","description":"The provider update request."}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderResponse"}}}},"403":{"description":"Inconsistent max context length for {model_name}. Expected: {expected_length}. Actual: {actual_length}
Inconsistent vector size for {model_name}. Expected: {expected_size}. Actual: {actual_size}
User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"400":{"description":"Invalid model provider type {input_type} for {expected_type} router.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"409":{"description":"Model provider {model_name} for url {url} already exists for router {router_id}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"404":{"description":"Model router {router_id} not found.
Model provider {provider_id} not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Admin"],"summary":"Get Provider","operationId":"get_provider_v1_admin_providers__provider_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"provider_id","in":"path","required":true,"schema":{"type":"integer","description":"The ID of the provider to get.","title":"Provider Id"},"description":"The ID of the provider to get."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderResponse"}}}},"403":{"description":"User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"404":{"description":"Model provider {provider_id} not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/roles":{"post":{"tags":["Admin"],"summary":"Create Role","operationId":"create_role_v1_admin_roles_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRoleBody","description":"The role creation request."}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleResponse"}}}},"403":{"description":"User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"409":{"description":"Role {role_name} already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Admin"],"summary":"Get Roles","operationId":"get_roles_v1_admin_roles_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Number of roles to skip.","default":0,"title":"Offset"},"description":"Number of roles to skip."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Maximum number of roles to return.","default":10,"title":"Limit"},"description":"Maximum number of roles to return."},{"name":"sort_by","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortField","description":"Field to sort by.","default":"id"},"description":"Field to sort by."},{"name":"sort_order","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortOrder","description":"Sort order.","default":"asc"},"description":"Sort order."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RolesResponse"}}}},"403":{"description":"User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/roles/{role_id}":{"patch":{"tags":["Admin"],"summary":"Update Role","operationId":"update_role_v1_admin_roles__role_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"role_id","in":"path","required":true,"schema":{"type":"integer","description":"The ID of the role to update.","title":"Role Id"},"description":"The ID of the role to update."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRoleBody","description":"The role update request."}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleResponse"}}}},"403":{"description":"User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"409":{"description":"Role {role_name} already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"404":{"description":"Role {role_id} not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Admin"],"summary":"Get Role","operationId":"get_role_v1_admin_roles__role_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"role_id","in":"path","required":true,"schema":{"type":"integer","description":"The ID of the role to get.","title":"Role Id"},"description":"The ID of the role to get."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleResponse"}}}},"403":{"description":"User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"404":{"description":"Role {role_id} not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin"],"summary":"Delete Role","operationId":"delete_role_v1_admin_roles__role_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"role_id","in":"path","required":true,"schema":{"type":"integer","description":"The ID of the role to delete.","title":"Role Id"},"description":"The ID of the role to delete."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleResponse"}}}},"403":{"description":"User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"404":{"description":"Role {role_id} not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"409":{"description":"Role {role_id} has {number_of_users} users and cannot be removed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/routers":{"post":{"tags":["Admin"],"summary":"Create Router","operationId":"create_router_v1_admin_routers_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRouterBody","description":"The router creation request."}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RouterResponse"}}}},"409":{"description":"Following aliases already exist: '{router_aliases}'
Router {router_name} already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"403":{"description":"User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Admin"],"summary":"Get Routers","operationId":"get_routers_v1_admin_routers_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Number of routers to skip.","default":0,"title":"Offset"},"description":"Number of routers to skip."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Maximum number of routers to return.","default":10,"title":"Limit"},"description":"Maximum number of routers to return."},{"name":"sort_by","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortField","description":"Field to sort by.","default":"id"},"description":"Field to sort by."},{"name":"sort_order","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortOrder","description":"Sort order.","default":"asc"},"description":"Sort order."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoutersResponse"}}}},"403":{"description":"User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/routers/{router_id}":{"get":{"tags":["Admin"],"summary":"Get Router","operationId":"get_router_v1_admin_routers__router_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"router_id","in":"path","required":true,"schema":{"type":"integer","description":"The router ID.","title":"Router Id"},"description":"The router ID."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RouterResponse"}}}},"403":{"description":"User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"404":{"description":"Model router {router_id} not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin"],"summary":"Delete Router","operationId":"delete_router_v1_admin_routers__router_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"router_id","in":"path","required":true,"schema":{"type":"integer","description":"The ID of the router to delete (router ID, eg. 123).","title":"Router Id"},"description":"The ID of the router to delete (router ID, eg. 123)."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RouterResponse"}}}},"403":{"description":"User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"404":{"description":"Model router {router_id} not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Admin"],"summary":"Update Router","operationId":"update_router_v1_admin_routers__router_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"router_id","in":"path","required":true,"schema":{"type":"integer","description":"The ID of the router to update (router ID, eg. 123).","title":"Router Id"},"description":"The ID of the router to update (router ID, eg. 123)."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRouterBody","description":"The router update request."}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RouterResponse"}}}},"403":{"description":"User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"404":{"description":"Model router {router_id} not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"409":{"description":"Following aliases already exist: '{router_aliases}'
Router {router_name} already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/users":{"post":{"tags":["Admin"],"summary":"Create User","operationId":"create_user_v1_admin_users_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUserBody","description":"The user creation request."}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}},"409":{"description":"User {email} already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"404":{"description":"Role {role_id} not found.
Organization {organization_id} not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"403":{"description":"User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Admin"],"summary":"Get Users","operationId":"get_users_v1_admin_users_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"role_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The ID of the role to filter the users by.","title":"Role Id"},"description":"The ID of the role to filter the users by."},{"name":"organization_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"The ID of the organization to filter the users by.","title":"Organization Id"},"description":"The ID of the organization to filter the users by."},{"name":"email","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Email substring to filter the users by.","title":"Email"},"description":"Email substring to filter the users by."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Number of users to skip.","default":0,"title":"Offset"},"description":"Number of users to skip."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Maximum number of users to return.","default":10,"title":"Limit"},"description":"Maximum number of users to return."},{"name":"sort_by","in":"query","required":false,"schema":{"$ref":"#/components/schemas/UserSortField","description":"Field to sort by.","default":"id"},"description":"Field to sort by."},{"name":"sort_order","in":"query","required":false,"schema":{"$ref":"#/components/schemas/SortOrder","description":"Sort order.","default":"asc"},"description":"Sort order."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsersResponse"}}}},"403":{"description":"User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/users/{user_id}":{"get":{"tags":["Admin"],"summary":"Get User","operationId":"get_user_v1_admin_users__user_id__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","description":"The ID of the user to get.","title":"User Id"},"description":"The ID of the user to get."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}},"404":{"description":"User {user_id} not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"403":{"description":"User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Admin"],"summary":"Delete User","operationId":"delete_user_v1_admin_users__user_id__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","description":"The ID of the user to delete.","title":"User Id"},"description":"The ID of the user to delete."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}},"404":{"description":"User {user_id} not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"409":{"description":"User cannot be deleted because the user owns routers: {router_ids}.
User cannot be deleted because the user owns providers: {provider_ids}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"403":{"description":"User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Admin"],"summary":"Update User","operationId":"update_user_v1_admin_users__user_id__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","description":"The ID of the user to update.","title":"User Id"},"description":"The ID of the user to update."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserUpdateRequest","description":"The user update request."}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}},"404":{"description":"User {user_id} not found.
Role {role_id} not found.
Organization {organization_id} not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"409":{"description":"User {email} already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid current password.
Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"403":{"description":"User has no admin rights.
Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/audio/transcriptions":{"post":{"tags":["Audio"],"summary":"Audio Transcriptions","description":"Transcribes audio into the input language.","operationId":"audio_transcriptions_v1_audio_transcriptions_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_audio_transcriptions_v1_audio_transcriptions_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AudioTranscription"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/auth/login":{"post":{"tags":["Auth"],"summary":"Login","operationId":"login_v1_auth_login_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthLoginBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthLoginResponse"}}}},"401":{"description":"Invalid email or password.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/chat/completions":{"post":{"tags":["Chat"],"summary":"Chat Completions","description":"Creates a model response for the given chat conversation.","operationId":"chat_completions_v1_chat_completions_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateChatCompletion"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ChatCompletion"},{"$ref":"#/components/schemas/ChatCompletionChunk"}],"title":"Response Chat Completions V1 Chat Completions Post"}}}},"404":{"description":"Model not found. Collection not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__schemas__exception__HTTPExceptionModel"}}}},"422":{"description":"Wrong model type.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__schemas__exception__HTTPExceptionModel"}}}},"503":{"description":"Model is too busy, please try again later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__schemas__exception__HTTPExceptionModel"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/embeddings":{"post":{"tags":["Embeddings"],"summary":"Create Embeddings","operationId":"create_embeddings_v1_embeddings_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEmbeddingsBody","description":"The embeddings creation request."}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmbeddingsResponse"}}}},"503":{"description":"Model is too busy, please try again later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"404":{"description":"Model {name} not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"429":{"description":"Token/request limit per minute/day exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Model has wrong type. Expected: {expected_type}. Actual: {actual_type}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"400":{"description":"Insufficient budget.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"403":{"description":"Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}}},"security":[{"HTTPBearer":[]}]}},"/health":{"get":{"tags":["Health"],"summary":"Get Health","description":"Get the health of the API.","operationId":"get_health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/health/models":{"get":{"tags":["Health"],"summary":"Get Health Models","description":"Get the health of the models.","operationId":"get_health_models_health_models_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"403":{"description":"Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/me/info":{"get":{"tags":["Me"],"summary":"Get User","description":"Get information about the current user.","operationId":"get_user_v1_me_info_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserInfo"}}}}},"security":[{"HTTPBearer":[]}]},"patch":{"tags":["Me"],"summary":"Update User","description":"Update information about the current user.","operationId":"update_user_v1_me_info_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserInfo","description":"The user update request."}}},"required":true},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/me/keys":{"post":{"tags":["Me"],"summary":"Create Key","description":"Create a new API key.","operationId":"create_key_v1_me_keys_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateKey","description":"The token creation request."}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateKeyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Me"],"summary":"Get Keys","description":"Get all your tokens.","operationId":"get_keys_v1_me_keys_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"The offset of the tokens to get.","default":0,"title":"Offset"},"description":"The offset of the tokens to get."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"The limit of the tokens to get.","default":10,"title":"Limit"},"description":"The limit of the tokens to get."},{"name":"order_by","in":"query","required":false,"schema":{"enum":["id","name","created"],"type":"string","description":"The field to order the tokens by.","default":"id","title":"Order By"},"description":"The field to order the tokens by."},{"name":"order_direction","in":"query","required":false,"schema":{"enum":["asc","desc"],"type":"string","description":"The direction to order the tokens by.","default":"asc","title":"Order Direction"},"description":"The direction to order the tokens by."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Keys"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/keys/{key}":{"delete":{"tags":["Me"],"summary":"Delete Key","description":"Delete a API key.","operationId":"delete_key_v1_me_keys__key__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"integer","description":"The key ID of the key to delete.","title":"Key"},"description":"The key ID of the key to delete."}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Me"],"summary":"Get Key","description":"Get your token by id.","operationId":"get_key_v1_me_keys__key__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"integer","description":"The key ID of the key to get.","title":"Key"},"description":"The key ID of the key to get."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Key"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/me/usage":{"get":{"tags":["Me"],"summary":"Get Usage","description":"Get usage for the current user.","operationId":"get_usage_v1_me_usage_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"The offset of the usages to get.","default":0,"title":"Offset"},"description":"The offset of the usages to get."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"The limit of the usages to get.","default":10,"title":"Limit"},"description":"The limit of the usages to get."},{"name":"start_time","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Start time as Unix timestamp (if not provided, will be set to 30 days ago)","title":"Start Time"},"description":"Start time as Unix timestamp (if not provided, will be set to 30 days ago)"},{"name":"end_time","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"End time as Unix timestamp (if not provided, will be set to now)","title":"End Time"},"description":"End time as Unix timestamp (if not provided, will be set to now)"},{"name":"endpoint","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/EndpointUsage"},{"type":"null"}],"description":"The endpoint to get usage for.","title":"Endpoint"},"description":"The endpoint to get usage for."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Usages"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/models":{"get":{"tags":["Models"],"summary":"Get Models","description":"Lists the currently available models and provides basic information.","operationId":"get_models_v1_models_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModelsResponse"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"403":{"description":"Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/models/{model}":{"get":{"tags":["Models"],"summary":"Get Model","description":"Get a model by name and provide basic information.","operationId":"get_model_v1_models__model__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"model","in":"path","required":true,"schema":{"type":"string","description":"The name of the model to get.","title":"Model"},"description":"The name of the model to get."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Model"}}}},"404":{"description":"Model {name} not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"403":{"description":"Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/ocr":{"post":{"tags":["OCR"],"summary":"Ocr","description":"Extracts text from files using OCR.","operationId":"ocr_v1_ocr_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOCR"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OCR"}}}},"404":{"description":"Model not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__schemas__exception__HTTPExceptionModel"}}}},"422":{"description":"Wrong model type.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__schemas__exception__HTTPExceptionModel"}}}},"503":{"description":"Model is too busy, please try again later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__schemas__exception__HTTPExceptionModel"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/rerank":{"post":{"tags":["Rerank"],"summary":"Create Rerank","operationId":"create_rerank_v1_rerank_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRerankBody","description":"The rerank creation request."}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RerankResponse"}}}},"503":{"description":"Model is too busy, please try again later.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"404":{"description":"Model {name} not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"429":{"description":"Token/request limit per minute/day exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"422":{"description":"Model has wrong type. Expected: {expected_type}. Actual: {actual_type}.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"400":{"description":"Insufficient budget.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"401":{"description":"Invalid authentication scheme.
Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}},"403":{"description":"Your account has expired. Please contact support to renew your account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__infrastructure__fastapi__documentation__HTTPExceptionModel"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/admin/organizations":{"post":{"tags":["Admin"],"summary":"Create Organization","operationId":"create_organization_v1_admin_organizations_post","security":[{"HTTPBearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationRequest","description":"The organization creation request."}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Admin"],"summary":"Get Organizations","operationId":"get_organizations_v1_admin_organizations_get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"The offset of the organizations to get.","default":0,"title":"Offset"},"description":"The offset of the organizations to get."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"The limit of the organizations to get.","default":10,"title":"Limit"},"description":"The limit of the organizations to get."},{"name":"order_by","in":"query","required":false,"schema":{"enum":["id","name","created","updated"],"type":"string","description":"The field to order the organizations by.","default":"id","title":"Order By"},"description":"The field to order the organizations by."},{"name":"order_direction","in":"query","required":false,"schema":{"enum":["asc","desc"],"type":"string","description":"The direction to order the organizations by.","default":"asc","title":"Order Direction"},"description":"The direction to order the organizations by."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Organizations"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/organizations/{organization}":{"delete":{"tags":["Admin"],"summary":"Delete Organization","operationId":"delete_organization_v1_admin_organizations__organization__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"organization","in":"path","required":true,"schema":{"type":"integer","description":"The ID of the organization to delete.","title":"Organization"},"description":"The ID of the organization to delete."}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Admin"],"summary":"Update Organization","operationId":"update_organization_v1_admin_organizations__organization__patch","security":[{"HTTPBearer":[]}],"parameters":[{"name":"organization","in":"path","required":true,"schema":{"type":"integer","description":"The ID of the organization to update.","title":"Organization"},"description":"The ID of the organization to update."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationUpdateRequest","description":"The organization update request."}}}},"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Admin"],"summary":"Get Organization","operationId":"get_organization_v1_admin_organizations__organization__get","security":[{"HTTPBearer":[]}],"parameters":[{"name":"organization","in":"path","required":true,"schema":{"type":"integer","description":"The ID of the organization to get.","title":"Organization"},"description":"The ID of the organization to get."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Organization"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/admin/tokens":{"post":{"tags":["Admin"],"summary":"Create Token","description":"Create a new token.","operationId":"create_token_v1_admin_tokens_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateToken","description":"The token creation request."}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokensResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]}]}},"/v1/admin/tokens/{token}":{"delete":{"tags":["Admin"],"summary":"Delete Token","description":"Delete a token.","operationId":"delete_token_v1_admin_tokens__token__delete","security":[{"HTTPBearer":[]}],"parameters":[{"name":"user","in":"path","required":true,"schema":{"type":"integer","description":"The user ID of the user to delete the token for.","title":"User"},"description":"The user ID of the user to delete the token for."},{"name":"token","in":"path","required":true,"schema":{"type":"integer","description":"The token ID of the token to delete.","title":"Token"},"description":"The token ID of the token to delete."}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/metrics":{"get":{"tags":["Monitoring"],"summary":"Get Metrics","operationId":"get_metrics_metrics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"HTTPBearer":[]}]}}},"components":{"schemas":{"Annotation":{"properties":{"type":{"type":"string","const":"url_citation","title":"Type"},"url_citation":{"$ref":"#/components/schemas/AnnotationURLCitation"}},"additionalProperties":true,"type":"object","required":["type","url_citation"],"title":"Annotation","description":"A URL citation when using web search."},"AnnotationURLCitation":{"properties":{"end_index":{"type":"integer","title":"End Index"},"start_index":{"type":"integer","title":"Start Index"},"title":{"type":"string","title":"Title"},"url":{"type":"string","title":"Url"}},"additionalProperties":true,"type":"object","required":["end_index","start_index","title","url"],"title":"AnnotationURLCitation","description":"A URL citation when using web search."},"AudioTranscription":{"properties":{"id":{"type":"string","title":"Id","description":"A unique identifier for the audio transcription."},"text":{"type":"string","title":"Text","description":"The transcription text."},"model":{"type":"string","title":"Model","description":"The model used to generate the transcription."},"segments":{"anyOf":[{"items":{"$ref":"#/components/schemas/Segment"},"type":"array"},{"type":"null"}],"title":"Segments","description":"Diarized segments, only set when `response_format=diarized_json`."},"usage":{"$ref":"#/components/schemas/api__schemas__usage__Usage","description":"Usage information for the request."}},"additionalProperties":true,"type":"object","required":["id","text","model"],"title":"AudioTranscription"},"AudioTranscriptionLanguage":{"type":"string","enum":["af","afrikaans","albanian","am","amharic","ar","arabic","armenian","as","assamese","az","azerbaijani","ba","bashkir","basque","be","belarusian","bengali","bg","bn","bo","bosnian","br","breton","bs","bulgarian","burmese","ca","cantonese","castilian","catalan","chinese","croatian","cs","cy","czech","da","danish","de","dutch","el","en","english","es","estonian","et","eu","fa","faroese","fi","finnish","flemish","fo","fr","french","galician","georgian","german","gl","greek","gu","gujarati","ha","haitian","haitian creole","hausa","haw","hawaiian","he","hebrew","hi","hindi","hr","ht","hu","hungarian","hy","icelandic","id","indonesian","is","it","italian","ja","japanese","javanese","jw","ka","kannada","kazakh","khmer","kk","km","kn","ko","korean","la","lao","latin","latvian","lb","letzeburgesch","lingala","lithuanian","ln","lo","lt","luxembourgish","lv","macedonian","malagasy","malay","malayalam","maltese","mandarin","maori","marathi","mg","mi","mk","ml","mn","moldavian","moldovan","mongolian","mr","ms","mt","my","myanmar","ne","nepali","nl","nn","no","norwegian","nynorsk","oc","occitan","pa","panjabi","pashto","persian","pl","polish","portuguese","ps","pt","punjabi","pushto","ro","romanian","ru","russian","sa","sanskrit","sd","serbian","shona","si","sindhi","sinhala","sinhalese","sk","sl","slovak","slovenian","sn","so","somali","spanish","sq","sr","su","sundanese","sv","sw","swahili","swedish","ta","tagalog","tajik","tamil","tatar","te","telugu","tg","th","thai","tibetan","tk","tl","tr","tt","turkish","turkmen","uk","ukrainian","ur","urdu","uz","uzbek","valencian","vi","vietnamese","welsh","yi","yiddish","yo","yoruba","yue","zh"],"title":"AudioTranscriptionLanguage"},"AudioTranscriptionResponseFormat":{"type":"string","enum":["json","text","verbose_json","diarized_json","srt","vtt"],"title":"AudioTranscriptionResponseFormat"},"AuthLoginBody":{"properties":{"email":{"type":"string","maxLength":254,"minLength":1,"title":"Email","description":"The user email."},"password":{"type":"string","maxLength":72,"minLength":1,"title":"Password","description":"The user password."}},"additionalProperties":true,"type":"object","required":["email","password"],"title":"AuthLoginBody"},"AuthLoginResponse":{"properties":{"object":{"type":"string","const":"key","title":"Object","description":"Type of the object.","default":"key"},"id":{"type":"integer","title":"Id","description":"ID of the key."},"name":{"type":"string","title":"Name","description":"Name of the key."},"value":{"type":"string","title":"Value","description":"Value of the key."},"user":{"type":"integer","title":"User","description":"ID of the user that owns the key."},"expires":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires","description":"Time of expiration, as Unix timestamp. If None, the key never expires."},"created":{"type":"integer","title":"Created","description":"Time of creation, as Unix timestamp."}},"additionalProperties":true,"type":"object","required":["id","name","value","user","created"],"title":"AuthLoginResponse"},"BasicAuth":{"properties":{"username":{"type":"string","title":"Username"},"password":{"type":"string","title":"Password"}},"additionalProperties":true,"type":"object","required":["username","password"],"title":"BasicAuth"},"Body_audio_transcriptions_v1_audio_transcriptions_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File","description":"The audio file object (not file name) to transcribe, in one of these formats: mp3 or wav."},"model":{"type":"string","title":"Model","description":"ID of the model to use. Call `/v1/models` endpoint to get the list of available models, only `automatic-speech-recognition` model type is supported."},"language":{"anyOf":[{"$ref":"#/components/schemas/AudioTranscriptionLanguage"},{"type":"null"}],"description":"The language of the output audio. If the output language is different than the audio language, the audio language will be translated into the output language. Output language must be supplied in ISO-639-1 format (e.g. en, fr) format."},"prompt":{"type":"string","title":"Prompt","description":"An optional text to tell the model what to do with the input audio.","default":""},"response_format":{"$ref":"#/components/schemas/AudioTranscriptionResponseFormat","description":"The format of the transcript output: `json` (default), `text`, `diarized_json` to return per-segment speaker labels, `srt` or `vtt` for subtitle formats.","default":"json"},"temperature":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Temperature","description":"The sampling temperature, between 0 and 1. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. If set to 0, the model will use log probability to automatically increase the temperature until certain thresholds are hit.","default":0.0}},"type":"object","required":["file","model"],"title":"Body_audio_transcriptions_v1_audio_transcriptions_post"},"CarbonFootprintUsage":{"properties":{"kWh":{"$ref":"#/components/schemas/CarbonFootprintUsageKWh","deprecated":true},"kgCO2eq":{"$ref":"#/components/schemas/CarbonFootprintUsageKgCO2eq","deprecated":true}},"additionalProperties":true,"type":"object","title":"CarbonFootprintUsage"},"CarbonFootprintUsageKWh":{"properties":{"min":{"type":"number","title":"Min","description":"Minimum carbon footprint in kWh.","default":0.0,"deprecated":true},"max":{"type":"number","title":"Max","description":"Maximum carbon footprint in kWh.","default":0.0,"deprecated":true}},"additionalProperties":true,"type":"object","title":"CarbonFootprintUsageKWh"},"CarbonFootprintUsageKgCO2eq":{"properties":{"min":{"type":"number","title":"Min","description":"Minimum carbon footprint in kgCO2eq (global warming potential).","default":0.0,"deprecated":true},"max":{"type":"number","title":"Max","description":"Maximum carbon footprint in kgCO2eq (global warming potential).","default":0.0,"deprecated":true}},"additionalProperties":true,"type":"object","title":"CarbonFootprintUsageKgCO2eq"},"ChatCompletion":{"properties":{"id":{"type":"string","title":"Id","description":"A unique identifier for the chat completion."},"choices":{"items":{"$ref":"#/components/schemas/openai__types__chat__chat_completion__Choice"},"type":"array","title":"Choices"},"created":{"type":"integer","title":"Created"},"model":{"type":"string","title":"Model"},"object":{"type":"string","const":"chat.completion","title":"Object"},"service_tier":{"anyOf":[{"type":"string","enum":["auto","default","flex","scale","priority"]},{"type":"null"}],"title":"Service Tier"},"system_fingerprint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"System Fingerprint"},"usage":{"$ref":"#/components/schemas/api__schemas__usage__Usage","description":"Usage information for the request."}},"additionalProperties":true,"type":"object","required":["choices","created","model","object"],"title":"ChatCompletion"},"ChatCompletionAudio":{"properties":{"id":{"type":"string","title":"Id"},"data":{"type":"string","title":"Data"},"expires_at":{"type":"integer","title":"Expires At"},"transcript":{"type":"string","title":"Transcript"}},"additionalProperties":true,"type":"object","required":["id","data","expires_at","transcript"],"title":"ChatCompletionAudio","description":"If the audio output modality is requested, this object contains data\nabout the audio response from the model. [Learn more](https://platform.openai.com/docs/guides/audio)."},"ChatCompletionChunk":{"properties":{"id":{"type":"string","title":"Id"},"choices":{"items":{"$ref":"#/components/schemas/openai__types__chat__chat_completion_chunk__Choice"},"type":"array","title":"Choices"},"created":{"type":"integer","title":"Created"},"model":{"type":"string","title":"Model"},"object":{"type":"string","const":"chat.completion.chunk","title":"Object"},"service_tier":{"anyOf":[{"type":"string","enum":["auto","default","flex","scale","priority"]},{"type":"null"}],"title":"Service Tier"},"system_fingerprint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"System Fingerprint"},"usage":{"anyOf":[{"$ref":"#/components/schemas/CompletionUsage"},{"type":"null"}]}},"additionalProperties":true,"type":"object","required":["id","choices","created","model","object"],"title":"ChatCompletionChunk"},"ChatCompletionContentPartImageParam":{"properties":{"image_url":{"$ref":"#/components/schemas/openai__types__chat__chat_completion_content_part_image_param__ImageURL"},"type":{"type":"string","const":"image_url","title":"Type"}},"additionalProperties":true,"type":"object","required":["image_url","type"],"title":"ChatCompletionContentPartImageParam","description":"Learn about [image inputs](https://platform.openai.com/docs/guides/vision)."},"ChatCompletionContentPartInputAudioParam":{"properties":{"input_audio":{"$ref":"#/components/schemas/InputAudio"},"type":{"type":"string","const":"input_audio","title":"Type"}},"additionalProperties":true,"type":"object","required":["input_audio","type"],"title":"ChatCompletionContentPartInputAudioParam","description":"Learn about [audio inputs](https://platform.openai.com/docs/guides/audio)."},"ChatCompletionContentPartTextParam":{"properties":{"text":{"type":"string","title":"Text"},"type":{"type":"string","const":"text","title":"Type"}},"additionalProperties":true,"type":"object","required":["text","type"],"title":"ChatCompletionContentPartTextParam","description":"Learn about [text inputs](https://platform.openai.com/docs/guides/text-generation)."},"ChatCompletionMessage":{"properties":{"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"refusal":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Refusal"},"role":{"type":"string","const":"assistant","title":"Role"},"annotations":{"anyOf":[{"items":{"$ref":"#/components/schemas/Annotation"},"type":"array"},{"type":"null"}],"title":"Annotations"},"audio":{"anyOf":[{"$ref":"#/components/schemas/ChatCompletionAudio"},{"type":"null"}]},"function_call":{"anyOf":[{"$ref":"#/components/schemas/FunctionCall"},{"type":"null"}]},"tool_calls":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/ChatCompletionMessageFunctionToolCall"},{"$ref":"#/components/schemas/ChatCompletionMessageCustomToolCall"}]},"type":"array"},{"type":"null"}],"title":"Tool Calls"}},"additionalProperties":true,"type":"object","required":["role"],"title":"ChatCompletionMessage","description":"A chat completion message generated by the model."},"ChatCompletionMessageCustomToolCall":{"properties":{"id":{"type":"string","title":"Id"},"custom":{"$ref":"#/components/schemas/Custom"},"type":{"type":"string","const":"custom","title":"Type"}},"additionalProperties":true,"type":"object","required":["id","custom","type"],"title":"ChatCompletionMessageCustomToolCall","description":"A call to a custom tool created by the model."},"ChatCompletionMessageFunctionToolCall":{"properties":{"id":{"type":"string","title":"Id"},"function":{"$ref":"#/components/schemas/Function"},"type":{"type":"string","const":"function","title":"Type"}},"additionalProperties":true,"type":"object","required":["id","function","type"],"title":"ChatCompletionMessageFunctionToolCall","description":"A call to a function tool created by the model."},"ChatCompletionTokenLogprob":{"properties":{"token":{"type":"string","title":"Token"},"bytes":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Bytes"},"logprob":{"type":"number","title":"Logprob"},"top_logprobs":{"items":{"$ref":"#/components/schemas/TopLogprob"},"type":"array","title":"Top Logprobs"}},"additionalProperties":true,"type":"object","required":["token","logprob","top_logprobs"],"title":"ChatCompletionTokenLogprob"},"ChoiceDelta":{"properties":{"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"function_call":{"anyOf":[{"$ref":"#/components/schemas/ChoiceDeltaFunctionCall"},{"type":"null"}]},"refusal":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Refusal"},"role":{"anyOf":[{"type":"string","enum":["developer","system","user","assistant","tool"]},{"type":"null"}],"title":"Role"},"tool_calls":{"anyOf":[{"items":{"$ref":"#/components/schemas/ChoiceDeltaToolCall"},"type":"array"},{"type":"null"}],"title":"Tool Calls"}},"additionalProperties":true,"type":"object","title":"ChoiceDelta","description":"A chat completion delta generated by streamed model responses."},"ChoiceDeltaFunctionCall":{"properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Arguments"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"additionalProperties":true,"type":"object","title":"ChoiceDeltaFunctionCall","description":"Deprecated and replaced by `tool_calls`.\n\nThe name and arguments of a function that should be called, as generated by the model."},"ChoiceDeltaToolCall":{"properties":{"index":{"type":"integer","title":"Index"},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"function":{"anyOf":[{"$ref":"#/components/schemas/ChoiceDeltaToolCallFunction"},{"type":"null"}]},"type":{"anyOf":[{"type":"string","const":"function"},{"type":"null"}],"title":"Type"}},"additionalProperties":true,"type":"object","required":["index"],"title":"ChoiceDeltaToolCall"},"ChoiceDeltaToolCallFunction":{"properties":{"arguments":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Arguments"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"additionalProperties":true,"type":"object","title":"ChoiceDeltaToolCallFunction"},"ChoiceLogprobs":{"properties":{"content":{"anyOf":[{"items":{"$ref":"#/components/schemas/ChatCompletionTokenLogprob"},"type":"array"},{"type":"null"}],"title":"Content"},"refusal":{"anyOf":[{"items":{"$ref":"#/components/schemas/ChatCompletionTokenLogprob"},"type":"array"},{"type":"null"}],"title":"Refusal"}},"additionalProperties":true,"type":"object","title":"ChoiceLogprobs","description":"Log probability information for the choice."},"CompletionTokensDetails":{"properties":{"accepted_prediction_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Accepted Prediction Tokens"},"audio_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Audio Tokens"},"reasoning_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Reasoning Tokens"},"rejected_prediction_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Rejected Prediction Tokens"}},"additionalProperties":true,"type":"object","title":"CompletionTokensDetails","description":"Breakdown of tokens used in a completion."},"CompletionUsage":{"properties":{"completion_tokens":{"type":"integer","title":"Completion Tokens"},"prompt_tokens":{"type":"integer","title":"Prompt Tokens"},"total_tokens":{"type":"integer","title":"Total Tokens"},"completion_tokens_details":{"anyOf":[{"$ref":"#/components/schemas/CompletionTokensDetails"},{"type":"null"}]},"prompt_tokens_details":{"anyOf":[{"$ref":"#/components/schemas/PromptTokensDetails"},{"type":"null"}]}},"additionalProperties":true,"type":"object","required":["completion_tokens","prompt_tokens","total_tokens"],"title":"CompletionUsage","description":"Usage statistics for the completion request."},"CreateChatCompletion":{"properties":{"messages":{"items":{},"type":"array","title":"Messages","description":"A list of messages comprising the conversation so far."},"model":{"type":"string","title":"Model","description":"ID of the model to use. Call `/v1/models` endpoint to get the list of available models, only `text-generation` model type is supported."},"frequency_penalty":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Frequency Penalty","description":"Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.","default":0.0},"logit_bias":{"anyOf":[{"additionalProperties":{"type":"number"},"type":"object"},{"type":"null"}],"title":"Logit Bias","description":"Modify the likelihood of specified tokens appearing in the completion. Accepts a JSON object that maps tokens (specified by their token ID in the tokenizer) to an associated bias value from -100 to 100. Mathematically, the bias is added to the logits generated by the model prior to sampling. The exact effect will vary per model, but values between -1 and 1 should decrease or increase likelihood of selection; values like -100 or 100 should result in a ban or exclusive selection of the relevant token."},"logprobs":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Logprobs","description":"Whether to return log probabilities of the output tokens or not. If true, returns the log probabilities of each output token returned in the `content` of `message`.","default":false},"top_logprobs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Top Logprobs","description":"An integer between 0 and 20 specifying the number of most likely tokens to return at each token position, each with an associated log probability. `logprobs` must be set to `true` if this parameter is used."},"presence_penalty":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Presence Penalty","description":"Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.","default":0.0},"max_completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Completion Tokens","description":"An upper bound for the number of tokens that can be generated for a completion."},"n":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"N","description":"How many chat completion choices to generate for each input message. Note that you will be charged based on the number of generated tokens across all of the choices. Keep `n` as `1` to minimize costs.","default":1},"response_format":{"anyOf":[{},{"type":"null"}],"title":"Response Format","description":"Setting to `{ \"type\": \"json_schema\", \"json_schema\": {...} }` enables Structured Outputs which ensures the model will match your supplied JSON schema. Learn more in the Structured Outputs guide. Setting to `{ \"type\": \"json_object\" }` enables JSON mode, which ensures the message the model generates is valid JSON.
**Important**: when using JSON mode, you must also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly \"stuck\" request. Also note that the message content may be partially cut off if `finish_reason=\"length\"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length."},"seed":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Seed","description":"If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same `seed` and parameters should return the same result. Determinism is not guaranteed, and you should refer to the system_fingerprint response parameter to monitor changes in the backend."},"stop":{"anyOf":[{"type":"string"},{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Stop","description":"Up to 4 sequences where the API will stop generating further tokens."},"stream":{"anyOf":[{"type":"boolean","enum":[true,false]},{"type":"null"}],"title":"Stream","description":"If set, partial message deltas will be sent. Tokens will be sent as data-only server-sent events as they become available, with the stream terminated by a data: [DONE] message.","default":false},"stream_options":{"anyOf":[{},{"type":"null"}],"title":"Stream Options","description":"Options for streaming response. Only set this when you set `stream: true`."},"temperature":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Temperature","description":"What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. We generally recommend altering this or `top_p` but not both."},"top_p":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Top P","description":"An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered.
We generally recommend altering this or `temperature` but not both."},"tools":{"anyOf":[{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"description":"A list of tools the model may call. Currently, only functions are supported as a tool."},{"type":"null"}],"title":"Tools"},"tool_choice":{"title":"Tool Choice","description":"Controls which (if any) tool is called by the model. `none` means the model will not call any tool and instead generates a message. `auto` means the model can pick between generating a message or calling one or more tools. `required` means the model must call one or more tools. Specifying a particular tool via `{\"type\": \"function\", \"function\": {\"name\": \"my_function\"}}` forces the model to call that tool.
`none` is the default when no tools are present. `auto` is the default if tools are present.","default":"none"},"parallel_tool_calls":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Parallel Tool Calls","description":"Whether to call tools in parallel or sequentially. If true, the model will call tools in parallel. If false, the model will call tools sequentially. If None, the model will call tools in parallel if the model supports it, otherwise it will call tools sequentially.","default":false},"user":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User","description":"A unique identifier representing the user."}},"additionalProperties":true,"type":"object","required":["messages","model"],"title":"CreateChatCompletion"},"CreateEmbeddingsBody":{"properties":{"model":{"type":"string","minLength":1,"title":"Model","description":"ID of the model to use. Call `/v1/models` endpoint to get the list of available models, only `text-embeddings-inference` model type is supported."},"input":{"anyOf":[{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"items":{"items":{"type":"integer"},"type":"array","minItems":1},"type":"array"},{"type":"string"},{"items":{"type":"string"},"type":"array"}],"minLength":1},{"type":"null"}],"title":"Input","description":"Input text to embed, encoded as a string or array of tokens. To embed multiple inputs in a single request, pass an array of strings or array of token arrays. The input must not exceed the max input tokens for the model (call `/v1/models` endpoint to get the `max_context_length` by model) and cannot be an empty string."},"dimensions":{"anyOf":[{"type":"integer","exclusiveMinimum":0.0},{"type":"null"}],"title":"Dimensions","description":"The number of dimensions the resulting output embeddings should have."},"encoding_format":{"$ref":"#/components/schemas/EncodingFormat","description":"The format of the output embeddings.","default":"float"}},"additionalProperties":true,"type":"object","required":["model"],"title":"CreateEmbeddingsBody"},"CreateKey":{"properties":{"name":{"type":"string","title":"Name"},"expires":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires","description":"Timestamp in seconds"}},"additionalProperties":true,"type":"object","required":["name"],"title":"CreateKey"},"CreateKeyBody":{"properties":{"name":{"type":"string","minLength":1,"title":"Name","description":"Name of the key.","examples":["key-1"]},"user":{"type":"integer","title":"User","description":"User ID to create the token for another user (by default, the current user). Required CREATE_USER permission."},"expires":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires","description":"Expiration time, as Unix timestamp. If None, the key never expires."}},"additionalProperties":true,"type":"object","required":["name","user"],"title":"CreateKeyBody"},"CreateKeyResponse":{"properties":{"id":{"type":"integer","title":"Id"},"token":{"type":"string","title":"Token"}},"additionalProperties":true,"type":"object","required":["id","token"],"title":"CreateKeyResponse"},"CreateOCR":{"properties":{"bbox_annotation_format":{"anyOf":[{"$ref":"#/components/schemas/ResponseFormat"},{"type":"null"}],"description":"Specify the format that the model must output for the bounding boxes. By default it will use `{ \"type\": \"text\" }`. Setting to `{ \"type\": \"json_object\" }` enables JSON mode, which guarantees the message the model generates is in JSON. When using JSON mode you MUST also instruct the model to produce JSON yourself with a system or a user message. Setting to `{ \"type\": \"json_schema\" }` enables JSON schema mode, which guarantees the message the model generates is in JSON and follows the schema you provide."},"document":{"anyOf":[{"$ref":"#/components/schemas/DocumentURLChunk"},{"$ref":"#/components/schemas/ImageURLChunk"}],"title":"Document","description":"Document to run OCR on."},"document_annotation_format":{"anyOf":[{"$ref":"#/components/schemas/ResponseFormat"},{"type":"null"}],"description":"Specify the format that the model must output for the document. By default it will use `{ \"type\": \"text\" }`. Setting to `{ \"type\": \"json_object\" }` enables JSON mode, which guarantees the message the model generates is in JSON. When using JSON mode you MUST also instruct the model to produce JSON yourself with a system or a user message. Setting to `{ \"type\": \"json_schema\" }` enables JSON schema mode, which guarantees the message the model generates is in JSON and follows the schema you provide."},"document_annotation_prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Document Annotation Prompt","description":"Optional prompt to guide the model in extracting structured output from the entire document. A document_annotation_format must be provided."},"extract_footer":{"type":"boolean","title":"Extract Footer","description":"Whether to extract the footer of the document.","default":false},"extract_header":{"type":"boolean","title":"Extract Header","description":"Whether to extract the header of the document.","default":false},"image_limit":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Image Limit","description":"Max images to extract"},"image_min_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Image Min Size","description":"Minimum height and width of image to extract"},"include_image_base64":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Include Image Base64","description":"Include image URLs in response"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"The model to use for the OCR."},"pages":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Pages","description":"Specific pages to process. Accepts a list of integers or a string of comma-separated numbers and ranges (e.g. '0,1,2' or '0-5' or '0,2-4'). Page numbers start from 0."},"table_format":{"anyOf":[{"type":"string","enum":["markdown","html"]},{"type":"null"}],"title":"Table Format","description":"Format for table extraction: 'markdown' (default) or 'html'."}},"additionalProperties":true,"type":"object","required":["document"],"title":"CreateOCR"},"CreateProviderBody":{"properties":{"type":{"$ref":"#/components/schemas/ProviderType","description":"Model provider type."},"url":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Url","description":"Model provider API url. The url must only contain the domain name (without `/v1` suffix for example). Depends of the model provider type, the url can be optional (Albert, OpenAI)."},"key":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Key","description":"Model provider API key."},"basic_auth":{"anyOf":[{"$ref":"#/components/schemas/BasicAuth"},{"type":"null"}],"description":"Model provider basic authentication."},"timeout":{"type":"integer","title":"Timeout","description":"Timeout for the model provider requests, after user receive an 503 error (model is too busy).","default":300},"model_name":{"type":"string","title":"Model Name","description":"Model name from the model provider."},"model_hosting_zone":{"$ref":"#/components/schemas/HostingZone","description":"Model hosting zone using ISO 3166-1 alpha-3 code format (e.g., `WOR` for World, `FRA` for France, `USA` for United States). This determines the electricity mix used for carbon intensity calculations. For more information, see https://ecologits.ai","default":"WOR"},"model_total_params":{"type":"integer","minimum":0.0,"title":"Model Total Params","description":"Total params of the model in billions of parameters for carbon footprint computation. For more information, see https://ecologits.ai","default":0},"model_active_params":{"type":"integer","minimum":0.0,"title":"Model Active Params","description":"Active params of the model in billions of parameters for carbon footprint computation. For more information, see https://ecologits.ai","default":0},"qos_metric":{"anyOf":[{"$ref":"#/components/schemas/Metric"},{"type":"null"}],"description":"The metric to use for the quality of service policy. If not provided, no QoS policy is applied."},"qos_limit":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Qos Limit","description":"The value to use for the quality of service. Depends of the metric, the value can be a percentile, a threshold, etc."},"router_id":{"type":"integer","title":"Router Id","description":"ID of the model to create the provider for (router ID, eg. 123)."}},"additionalProperties":true,"type":"object","required":["type","model_name","router_id"],"title":"CreateProviderBody"},"CreateProviderResponse":{"properties":{"id":{"type":"integer","title":"Id","description":"Provider ID."},"router_id":{"type":"integer","title":"Router Id","description":"ID of the router that owns the provider."},"user_id":{"type":"integer","title":"User Id","description":"ID of the user that owns the provider."},"type":{"$ref":"#/components/schemas/ProviderType","description":"Provider type."},"url":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Url","description":"Provider API url. The url must only contain the domain name (without `/v1` suffix for example)."},"key":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Key","description":"Provider API key."},"basic_auth":{"anyOf":[{"$ref":"#/components/schemas/BasicAuth"},{"type":"null"}],"description":"Provider basic authentication."},"timeout":{"type":"integer","maximum":3600.0,"minimum":1.0,"title":"Timeout","description":"Timeout for the provider requests, after user receive an 500 error (model is too busy)."},"model_name":{"type":"string","minLength":1,"title":"Model Name","description":"Model name from the model provider."},"model_hosting_zone":{"$ref":"#/components/schemas/HostingZone","description":"Model hosting zone using ISO 3166-1 alpha-3 code format (e.g., `WOR` for World, `FRA` for France, `USA` for United States). This determines the electricity mix used for carbon intensity calculations. For more information, see https://ecologits.ai","default":"WOR","examples":["WOR"]},"model_total_params":{"type":"integer","minimum":0.0,"title":"Model Total Params","description":"Total params of the model in billions of parameters for carbon footprint computation. If not provided, the active params will be used if provided, else carbon footprint will not be computed. For more information, see https://ecologits.ai","default":0},"model_active_params":{"type":"integer","minimum":0.0,"title":"Model Active Params","description":"Active params of the model in billions of parameters for carbon footprint computation. If not provided, the total params will be used if provided, else carbon footprint will not be computed. For more information, see https://ecologits.ai","default":0},"qos_metric":{"anyOf":[{"$ref":"#/components/schemas/QoSMetric"},{"type":"null"}],"description":"The metric to use for the QoS policy. If not provided, no QoS policy is applied."},"qos_limit":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Qos Limit","description":"The value to use for the quality of service. Depends of the metric, the value can be a percentile, a threshold, etc."},"created":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created","description":"Time of creation, as Unix timestamp."},"updated":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated","description":"Time of last update, as Unix timestamp."}},"additionalProperties":true,"type":"object","required":["id","router_id","user_id","type","timeout","model_name"],"title":"CreateProviderResponse"},"CreateRerankBody":{"properties":{"query":{"type":"string","minLength":1,"title":"Query","description":"The search query to use for the reranking. `query` and `prompt` cannot both be provided."},"documents":{"items":{"type":"string","minLength":1},"type":"array","title":"Documents"},"model":{"type":"string","minLength":1,"title":"Model","description":"The model to use for the reranking, call `/v1/models` endpoint to get the list of available models, only `text-classification` model type is supported."},"top_n":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Top N","description":"The number of top results to return. If set to None, all results will be returned."}},"additionalProperties":true,"type":"object","required":["query","documents","model"],"title":"CreateRerankBody"},"CreateRoleBody":{"properties":{"name":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Name","description":"Name of the role.","examples":["my-role"]},"permissions":{"anyOf":[{"items":{"$ref":"#/components/schemas/PermissionType"},"type":"array"},{"type":"null"}],"title":"Permissions","description":"List of permissions."},"limits":{"anyOf":[{"items":{"$ref":"#/components/schemas/Limit"},"type":"array"},{"type":"null"}],"title":"Limits","description":"List of limits."}},"additionalProperties":true,"type":"object","title":"CreateRoleBody"},"CreateRouterBody":{"properties":{"name":{"type":"string","minLength":1,"title":"Name","description":"Name of the model router.","examples":["model-router-1"]},"type":{"$ref":"#/components/schemas/ModelType-Input","description":"Type of the model router. It will be used to identify the model router type.","examples":["text-generation"]},"aliases":{"items":{"type":"string","maxLength":64,"minLength":1},"type":"array","title":"Aliases","description":"Aliases of the model. It will be used to identify the model by users.","examples":[["model-alias","model-alias-2"]]},"load_balancing_strategy":{"$ref":"#/components/schemas/RouterLoadBalancingStrategy","description":"Routing strategy for load balancing between providers of the model. It will be used to identify the model type.","default":"shuffle"},"cost_prompt_tokens":{"type":"number","minimum":0.0,"title":"Cost Prompt Tokens","description":"Cost of a million prompt tokens (decrease user budget)","default":0.0},"cost_completion_tokens":{"type":"number","minimum":0.0,"title":"Cost Completion Tokens","description":"Cost of a million completion tokens (decrease user budget)","default":0.0}},"additionalProperties":true,"type":"object","required":["name","type"],"title":"CreateRouterBody"},"CreateToken":{"properties":{"name":{"type":"string","minLength":1,"title":"Name"},"user":{"type":"integer","title":"User","description":"User ID to create the token for another user (by default, the current user). Required CREATE_USER permission."},"expires":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires","description":"Timestamp in seconds"}},"additionalProperties":true,"type":"object","required":["name","user"],"title":"CreateToken"},"CreateUserBody":{"properties":{"email":{"type":"string","maxLength":254,"minLength":1,"title":"Email","description":"The user email."},"name":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Name","description":"The user name."},"password":{"type":"string","maxLength":72,"minLength":6,"title":"Password","description":"The user password."},"role":{"type":"integer","title":"Role","description":"The role ID."},"organization_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Organization Id","description":"The organization ID."},"budget":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Budget","description":"The budget."},"expires":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires","description":"The expiration timestamp."},"priority":{"type":"integer","minimum":0.0,"title":"Priority","description":"The user priority. Higher value means higher priority.","default":0}},"additionalProperties":true,"type":"object","required":["email","password","role"],"title":"CreateUserBody"},"Custom":{"properties":{"input":{"type":"string","title":"Input"},"name":{"type":"string","title":"Name"}},"additionalProperties":true,"type":"object","required":["input","name"],"title":"Custom","description":"The custom tool that the model called."},"DocumentURLChunk":{"properties":{"document_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Document Name","description":"The filename of the document."},"document_url":{"type":"string","title":"Document Url","description":"The URL of the document."},"type":{"type":"string","const":"document_url","title":"Type","description":"The type of the document.","default":"document_url"}},"additionalProperties":true,"type":"object","required":["document_url"],"title":"DocumentURLChunk"},"Embedding":{"properties":{"embedding":{"items":{"type":"number"},"type":"array","title":"Embedding"},"index":{"type":"integer","title":"Index"},"object":{"type":"string","const":"embedding","title":"Object"}},"additionalProperties":true,"type":"object","required":["embedding","index","object"],"title":"Embedding","description":"Represents an embedding vector returned by embedding endpoint."},"EmbeddingMessage":{"properties":{"role":{"type":"string","enum":["system","user","assistant","developer","function","tool"],"title":"Role","description":"The role of the message."},"content":{"anyOf":[{"type":"string"},{"items":{"anyOf":[{"$ref":"#/components/schemas/ChatCompletionContentPartTextParam"},{"$ref":"#/components/schemas/ChatCompletionContentPartImageParam"},{"$ref":"#/components/schemas/ChatCompletionContentPartInputAudioParam"},{"$ref":"#/components/schemas/File"}]},"type":"array"}],"title":"Content","description":"The content of the message."}},"additionalProperties":true,"type":"object","required":["role","content"],"title":"EmbeddingMessage"},"EmbeddingsResponse":{"properties":{"data":{"items":{"$ref":"#/components/schemas/Embedding"},"type":"array","title":"Data"},"model":{"type":"string","title":"Model"},"object":{"type":"string","const":"list","title":"Object","description":"The type of object returned.","default":"list"},"usage":{"$ref":"#/components/schemas/api__domain__usage__entities__Usage","description":"Usage information for the request."},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"A unique identifier for the request."}},"additionalProperties":true,"type":"object","required":["data","model"],"title":"EmbeddingsResponse"},"EncodingFormat":{"type":"string","enum":["float","base64"],"title":"EncodingFormat"},"EndpointUsage":{"type":"string","enum":["/v1/audio/transcriptions","/v1/chat/completions","/v1/embeddings","/v1/ocr","/v1/rerank","/v1/search"],"title":"EndpointUsage"},"File":{"properties":{"file":{"$ref":"#/components/schemas/FileFile"},"type":{"type":"string","const":"file","title":"Type"}},"additionalProperties":true,"type":"object","required":["file","type"],"title":"File","description":"Learn about [file inputs](https://platform.openai.com/docs/guides/text) for text generation."},"FileFile":{"properties":{"file_data":{"type":"string","title":"File Data"},"file_id":{"type":"string","title":"File Id"},"filename":{"type":"string","title":"Filename"}},"additionalProperties":true,"type":"object","title":"FileFile"},"Function":{"properties":{"arguments":{"type":"string","title":"Arguments"},"name":{"type":"string","title":"Name"}},"additionalProperties":true,"type":"object","required":["arguments","name"],"title":"Function","description":"The function that the model called."},"FunctionCall":{"properties":{"arguments":{"type":"string","title":"Arguments"},"name":{"type":"string","title":"Name"}},"additionalProperties":true,"type":"object","required":["arguments","name"],"title":"FunctionCall","description":"Deprecated and replaced by `tool_calls`.\n\nThe name and arguments of a function that should be called, as generated by the model."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HostingZone":{"type":"string","enum":["ABW","AFG","AGO","AIA","ALA","ALB","AND","ARE","ARG","ARM","ASM","ATA","ATF","ATG","AUS","AUT","AZE","BDI","BEL","BEN","BES","BFA","BGD","BGR","BHR","BHS","BIH","BLM","BLR","BLZ","BMU","BOL","BRA","BRB","BRN","BTN","BVT","BWA","CAF","CAN","CCK","CHE","CHL","CHN","CIV","CMR","COD","COG","COK","COL","COM","CPV","CRI","CUB","CUW","CXR","CYM","CYP","CZE","DEU","DJI","DMA","DNK","DOM","DZA","ECU","EGY","ERI","ESH","ESP","EST","ETH","FIN","FJI","FLK","FRA","FRO","FSM","GAB","GBR","GEO","GGY","GHA","GIB","GIN","GLP","GMB","GNB","GNQ","GRC","GRD","GRL","GTM","GUF","GUM","GUY","HKG","HMD","HND","HRV","HTI","HUN","IDN","IMN","IND","IOT","IRL","IRN","IRQ","ISL","ISR","ITA","JAM","JEY","JOR","JPN","KAZ","KEN","KGZ","KHM","KIR","KNA","KOR","KWT","LAO","LBN","LBR","LBY","LCA","LIE","LKA","LSO","LTU","LUX","LVA","MAC","MAF","MAR","MCO","MDA","MDG","MDV","MEX","MHL","MKD","MLI","MLT","MMR","MNE","MNG","MNP","MOZ","MRT","MSR","MTQ","MUS","MWI","MYS","MYT","NAM","NCL","NER","NFK","NGA","NIC","NIU","NLD","NOR","NPL","NRU","NZL","OMN","PAK","PAN","PCN","PER","PHL","PLW","PNG","POL","PRI","PRK","PRT","PRY","PSE","PYF","QAT","REU","ROU","RUS","RWA","SAU","SDN","SEN","SGP","SGS","SHN","SJM","SLB","SLE","SLV","SMR","SOM","SPM","SRB","SSD","STP","SUR","SVK","SVN","SWE","SWZ","SXM","SYC","SYR","TCA","TCD","TGO","THA","TJK","TKL","TKM","TLS","TON","TTO","TUN","TUR","TUV","TWN","TZA","UGA","UKR","UMI","URY","USA","UZB","VAT","VCT","VEN","VGB","VIR","VNM","VUT","WLF","WOR","WSM","YEM","ZAF","ZMB","ZWE"],"title":"HostingZone"},"ImageURLChunk":{"properties":{"image_url":{"anyOf":[{"$ref":"#/components/schemas/api__schemas__ocr__ImageURL"},{"type":"string"}],"title":"Image Url","description":"The URL of the image to OCR."},"type":{"type":"string","const":"image_url","title":"Type","description":"The type of the image.","default":"image_url"}},"additionalProperties":true,"type":"object","required":["image_url"],"title":"ImageURLChunk"},"InputAudio":{"properties":{"data":{"type":"string","title":"Data"},"format":{"type":"string","enum":["wav","mp3"],"title":"Format"}},"additionalProperties":true,"type":"object","required":["data","format"],"title":"InputAudio"},"JsonSchema":{"properties":{"name":{"type":"string","title":"Name","description":"The name of the JSON schema."},"schema":{"additionalProperties":true,"type":"object","title":"Schema","description":"The JSON schema definition."},"strict":{"type":"boolean","title":"Strict","description":"Whether to use strict mode.","default":false},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Optional description of the schema."}},"additionalProperties":true,"type":"object","required":["name","schema"],"title":"JsonSchema"},"Key":{"properties":{"object":{"type":"string","const":"key","title":"Object","default":"key"},"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"token":{"type":"string","title":"Token"},"expires":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires"},"created":{"type":"integer","title":"Created"}},"additionalProperties":true,"type":"object","required":["id","name","token","created"],"title":"Key"},"KeyResponse":{"properties":{"object":{"type":"string","const":"key","title":"Object","description":"Type of the object.","default":"key"},"id":{"type":"integer","title":"Id","description":"ID of the key."},"name":{"type":"string","title":"Name","description":"Name of the key."},"value":{"type":"string","title":"Value","description":"Value of the key."},"user":{"type":"integer","title":"User","description":"ID of the user that owns the key."},"expires":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires","description":"Time of expiration, as Unix timestamp. If None, the key never expires."},"created":{"type":"integer","title":"Created","description":"Time of creation, as Unix timestamp."}},"additionalProperties":true,"type":"object","required":["id","name","value","user","created"],"title":"KeyResponse"},"Keys":{"properties":{"object":{"type":"string","const":"list","title":"Object","default":"list"},"data":{"items":{"$ref":"#/components/schemas/Key"},"type":"array","title":"Data"}},"additionalProperties":true,"type":"object","required":["data"],"title":"Keys"},"KeysResponse":{"properties":{"object":{"type":"string","const":"list","title":"Object","description":"Type of the object.","default":"list"},"total":{"type":"integer","title":"Total","description":"Total number of keys."},"offset":{"type":"integer","title":"Offset","description":"Offset of the keys list."},"limit":{"type":"integer","title":"Limit","description":"Limit of the keys list."},"data":{"items":{"$ref":"#/components/schemas/KeyResponse"},"type":"array","title":"Data","description":"List of keys."}},"additionalProperties":true,"type":"object","required":["total","offset","limit","data"],"title":"KeysResponse"},"Limit":{"properties":{"router_id":{"type":"integer","title":"Router Id","description":"The router ID."},"type":{"$ref":"#/components/schemas/LimitType","description":"The limit type."},"value":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Value","description":"The limit value."}},"additionalProperties":true,"type":"object","required":["router_id","type"],"title":"Limit"},"LimitType":{"type":"string","enum":["tpm","tpd","rpm","rpd"],"title":"LimitType"},"Metric":{"type":"string","enum":["ttft","latency","inflight","performance","normalized_latency"],"title":"Metric"},"MetricsUsage":{"properties":{"latency":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Latency"},"ttft":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ttft"}},"additionalProperties":true,"type":"object","title":"MetricsUsage"},"Model":{"properties":{"object":{"type":"string","const":"model","title":"Object","description":"Type of the object.","default":"model"},"id":{"type":"string","title":"Id","description":"The model identifier, which can be referenced in the API endpoints."},"type":{"anyOf":[{"$ref":"#/components/schemas/api__domain__model__entities__ModelType"},{"type":"null"}],"description":"The type of the model, which can be used to identify the model type.","examples":["text-generation"]},"aliases":{"items":{"type":"string"},"type":"array","title":"Aliases","description":"Aliases of the model. It will be used to identify the model by users.","examples":[["model-alias","model-alias-2"]]},"created":{"type":"integer","title":"Created","description":"Time of creation, as Unix timestamp."},"owned_by":{"type":"string","title":"Owned By","description":"The organization that owns the model."},"max_context_length":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Context Length","description":"Maximum amount of tokens a context could contains. Makes sure it is the same for all models."},"costs":{"$ref":"#/components/schemas/ModelCosts","description":"Costs of the model."}},"additionalProperties":true,"type":"object","required":["id","created","owned_by"],"title":"Model"},"ModelCosts":{"properties":{"prompt_tokens":{"type":"number","minimum":0.0,"title":"Prompt Tokens","description":"Cost of a million prompt tokens (decrease user budget)","default":0.0},"completion_tokens":{"type":"number","minimum":0.0,"title":"Completion Tokens","description":"Cost of a million completion tokens (decrease user budget)","default":0.0}},"additionalProperties":true,"type":"object","title":"ModelCosts"},"ModelType-Input":{"type":"string","enum":["automatic-speech-recognition","image-text-to-text","image-to-text","text-embeddings-inference","text-generation","text-classification"],"title":"ModelType"},"ModelsResponse":{"properties":{"object":{"type":"string","const":"list","title":"Object","description":"Type of the object.","default":"list"},"data":{"items":{"$ref":"#/components/schemas/Model"},"type":"array","title":"Data","description":"List of models."}},"additionalProperties":true,"type":"object","required":["data"],"title":"ModelsResponse"},"Nullable_OCRPageDimensions_":{"anyOf":[{"$ref":"#/components/schemas/OCRPageDimensions"},{"type":"null"}]},"Nullable_int_":{"anyOf":[{"type":"integer"},{"type":"null"}]},"Nullable_str_":{"anyOf":[{"type":"string"},{"type":"null"}]},"OCR":{"properties":{"pages":{"items":{"$ref":"#/components/schemas/OCRPageObject"},"type":"array","title":"Pages"},"model":{"type":"string","title":"Model"},"usage_info":{"$ref":"#/components/schemas/OCRUsageInfo"},"document_annotation":{"$ref":"#/components/schemas/OptionalNullable_str_","default":"~?~unset~?~sentinel~?~"},"id":{"type":"string","title":"Id","description":"The ID of the OCR request."},"usage":{"anyOf":[{"$ref":"#/components/schemas/api__schemas__usage__Usage"},{"type":"null"}],"description":"Usage information for the request."}},"type":"object","required":["pages","model","usage_info","id"],"title":"OCR"},"OCRImageObject":{"properties":{"id":{"type":"string","title":"Id"},"top_left_x":{"$ref":"#/components/schemas/Nullable_int_"},"top_left_y":{"$ref":"#/components/schemas/Nullable_int_"},"bottom_right_x":{"$ref":"#/components/schemas/Nullable_int_"},"bottom_right_y":{"$ref":"#/components/schemas/Nullable_int_"},"image_base64":{"$ref":"#/components/schemas/OptionalNullable_str_","default":"~?~unset~?~sentinel~?~"},"image_annotation":{"$ref":"#/components/schemas/OptionalNullable_str_","default":"~?~unset~?~sentinel~?~"}},"type":"object","required":["id","top_left_x","top_left_y","bottom_right_x","bottom_right_y"],"title":"OCRImageObject"},"OCRPageDimensions":{"properties":{"dpi":{"type":"integer","title":"Dpi"},"height":{"type":"integer","title":"Height"},"width":{"type":"integer","title":"Width"}},"type":"object","required":["dpi","height","width"],"title":"OCRPageDimensions"},"OCRPageObject":{"properties":{"index":{"type":"integer","title":"Index"},"markdown":{"type":"string","title":"Markdown"},"images":{"items":{"$ref":"#/components/schemas/OCRImageObject"},"type":"array","title":"Images"},"dimensions":{"$ref":"#/components/schemas/Nullable_OCRPageDimensions_"},"tables":{"anyOf":[{"items":{"$ref":"#/components/schemas/OCRTableObject"},"type":"array"},{"type":"null"}],"title":"Tables"},"hyperlinks":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Hyperlinks"},"header":{"$ref":"#/components/schemas/OptionalNullable_str_","default":"~?~unset~?~sentinel~?~"},"footer":{"$ref":"#/components/schemas/OptionalNullable_str_","default":"~?~unset~?~sentinel~?~"}},"type":"object","required":["index","markdown","images","dimensions"],"title":"OCRPageObject"},"OCRTableObject":{"properties":{"id":{"type":"string","title":"Id"},"content":{"type":"string","title":"Content"},"format":{"type":"string","enum":["markdown","html"],"title":"Format"}},"type":"object","required":["id","content","format"],"title":"OCRTableObject"},"OCRUsageInfo":{"properties":{"pages_processed":{"type":"integer","title":"Pages Processed"},"doc_size_bytes":{"$ref":"#/components/schemas/OptionalNullable_int_","default":"~?~unset~?~sentinel~?~"}},"type":"object","required":["pages_processed"],"title":"OCRUsageInfo"},"OptionalNullable_int_":{"anyOf":[{"$ref":"#/components/schemas/Nullable_int_"},{"$ref":"#/components/schemas/Unset"},{"type":"null"}]},"OptionalNullable_str_":{"anyOf":[{"$ref":"#/components/schemas/Nullable_str_"},{"$ref":"#/components/schemas/Unset"},{"type":"null"}]},"Organization":{"properties":{"object":{"type":"string","const":"organization","title":"Object","default":"organization"},"id":{"type":"integer","title":"Id"},"name":{"type":"string","title":"Name"},"users":{"type":"integer","title":"Users"},"created":{"type":"integer","title":"Created"},"updated":{"type":"integer","title":"Updated"}},"additionalProperties":true,"type":"object","required":["id","name","users"],"title":"Organization"},"OrganizationRequest":{"properties":{"name":{"type":"string","minLength":1,"title":"Name","description":"The organization name."}},"additionalProperties":true,"type":"object","required":["name"],"title":"OrganizationRequest"},"OrganizationUpdateRequest":{"properties":{"name":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Name","description":"The new organization name."}},"additionalProperties":true,"type":"object","title":"OrganizationUpdateRequest"},"Organizations":{"properties":{"object":{"type":"string","const":"list","title":"Object","default":"list"},"data":{"items":{"$ref":"#/components/schemas/Organization"},"type":"array","title":"Data"}},"additionalProperties":true,"type":"object","required":["data"],"title":"Organizations"},"OrganizationsResponse":{"properties":{"id":{"type":"integer","title":"Id"}},"additionalProperties":true,"type":"object","required":["id"],"title":"OrganizationsResponse"},"PermissionType":{"type":"string","enum":["admin","create_public_collection","read_metric","provide_models"],"title":"PermissionType"},"PromptTokensDetails":{"properties":{"audio_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Audio Tokens"},"cached_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cached Tokens"}},"additionalProperties":true,"type":"object","title":"PromptTokensDetails","description":"Breakdown of tokens used in the prompt."},"ProviderResponse":{"properties":{"object":{"type":"string","const":"provider","title":"Object","description":"Type of the object.","default":"provider"},"id":{"type":"integer","title":"Id","description":"provider ID."},"router_id":{"type":"integer","title":"Router Id","description":"ID of the router that owns the provider."},"user_id":{"type":"integer","title":"User Id","description":"ID of the user that owns the provider."},"type":{"$ref":"#/components/schemas/ProviderType","description":"Provider type."},"url":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Url","description":"provider API url. The url must only contain the domain name (without `/v1` suffix for example)."},"timeout":{"type":"integer","title":"Timeout","description":"Timeout for the provider requests, after user receive an 500 error (model is too busy)."},"model_name":{"type":"string","minLength":1,"title":"Model Name","description":"Model name from the model provider."},"model_hosting_zone":{"$ref":"#/components/schemas/HostingZone","description":"Model hosting zone using ISO 3166-1 alpha-3 code format (e.g., `WOR` for World, `FRA` for France, `USA` for United States). This determines the electricity mix used for carbon intensity calculations. For more information, see https://ecologits.ai","default":"WOR","examples":["WOR"]},"model_total_params":{"type":"integer","minimum":0.0,"title":"Model Total Params","description":"Total params of the model in billions of parameters for carbon footprint computation. If not provided, the active params will be used if provided, else carbon footprint will not be computed. For more information, see https://ecologits.ai","default":0},"model_active_params":{"type":"integer","minimum":0.0,"title":"Model Active Params","description":"Active params of the model in billions of parameters for carbon footprint computation. If not provided, the total params will be used if provided, else carbon footprint will not be computed. For more information, see https://ecologits.ai","default":0},"qos_metric":{"anyOf":[{"$ref":"#/components/schemas/QoSMetric"},{"type":"null"}],"description":"The metric to use for the QoS policy. If not provided, no QoS policy is applied."},"qos_limit":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Qos Limit","description":"The value to use for the quality of service. Depends of the metric, the value can be a percentile, a threshold, etc."},"created":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Created","description":"Time of creation, as Unix timestamp."},"updated":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Updated","description":"Time of last update, as Unix timestamp."}},"additionalProperties":true,"type":"object","required":["id","router_id","user_id","type","timeout","model_name","qos_metric"],"title":"ProviderResponse"},"ProviderSortField":{"type":"string","enum":["id","model_name","created"],"title":"ProviderSortField"},"ProviderType":{"type":"string","enum":["albert","openai","mistral","tei","vllm"],"title":"ProviderType"},"ProvidersResponse":{"properties":{"object":{"type":"string","const":"list","title":"Object","description":"Type of the object.","default":"list"},"total":{"type":"integer","title":"Total","description":"Total number of providers."},"offset":{"type":"integer","title":"Offset","description":"Offset of the providers list."},"limit":{"type":"integer","title":"Limit","description":"Limit of the providers list."},"data":{"items":{"$ref":"#/components/schemas/ProviderResponse"},"type":"array","title":"Data","description":"List of providers."}},"additionalProperties":true,"type":"object","required":["total","offset","limit","data"],"title":"ProvidersResponse"},"QoSMetric":{"type":"string","enum":["ttft","latency","inflight","performance"],"title":"QoSMetric"},"RerankResponse":{"properties":{"object":{"type":"string","const":"list","title":"Object","default":"list"},"id":{"type":"string","title":"Id","description":"A unique identifier for the request."},"results":{"items":{"$ref":"#/components/schemas/RerankResult"},"type":"array","title":"Results","description":"The list of reranked texts."},"model":{"type":"string","title":"Model","description":"The model used to generate the reranking."},"usage":{"$ref":"#/components/schemas/api__domain__usage__entities__Usage","description":"Usage information for the request."}},"additionalProperties":true,"type":"object","required":["id","results","model"],"title":"RerankResponse"},"RerankResult":{"properties":{"relevance_score":{"type":"number","title":"Relevance Score","description":"The relevance score of the reranked text."},"index":{"type":"integer","title":"Index","description":"The index of the reranked text."}},"additionalProperties":true,"type":"object","required":["relevance_score","index"],"title":"RerankResult"},"ResponseFormat":{"properties":{"type":{"type":"string","enum":["text","json_object","json_schema"],"title":"Type","description":"Specify the format that the model must output. By default it will use `{ \"type\": \"text\" }`. Setting to `{ \"type\": \"json_object\" }` enables JSON mode, which guarantees the message the model generates is in JSON. When using JSON mode you MUST also instruct the model to produce JSON yourself with a system or a user message. Setting to `{ \"type\": \"json_schema\" }` enables JSON schema mode, which guarantees the message the model generates is in JSON and follows the schema you provide.","default":"text"},"json_schema":{"anyOf":[{"$ref":"#/components/schemas/JsonSchema"},{"type":"null"}],"description":"The JSON schema definition. Required when type is 'json_schema'."}},"additionalProperties":true,"type":"object","title":"ResponseFormat"},"RoleResponse":{"properties":{"object":{"type":"string","const":"role","title":"Object","description":"Type of the object.","default":"role"},"id":{"type":"integer","title":"Id","description":"ID of the role."},"name":{"type":"string","title":"Name","description":"Name of the role."},"permissions":{"items":{"$ref":"#/components/schemas/PermissionType"},"type":"array","title":"Permissions","description":"List of permissions."},"limits":{"items":{"$ref":"#/components/schemas/Limit"},"type":"array","title":"Limits","description":"List of limits."},"users":{"type":"integer","title":"Users","description":"Number of users assigned to the role."},"created":{"type":"integer","title":"Created","description":"Time of creation, as Unix timestamp."},"updated":{"type":"integer","title":"Updated","description":"Time of last update, as Unix timestamp."}},"additionalProperties":true,"type":"object","required":["id","name","permissions","limits","users","created","updated"],"title":"RoleResponse"},"RolesResponse":{"properties":{"object":{"type":"string","const":"list","title":"Object","description":"Type of the object.","default":"list"},"total":{"type":"integer","title":"Total","description":"Total number of roles."},"offset":{"type":"integer","title":"Offset","description":"Offset of the roles list."},"limit":{"type":"integer","title":"Limit","description":"Limit of the roles list."},"data":{"items":{"$ref":"#/components/schemas/RoleResponse"},"type":"array","title":"Data","description":"List of roles."}},"additionalProperties":true,"type":"object","required":["total","offset","limit","data"],"title":"RolesResponse"},"RouterLoadBalancingStrategy":{"type":"string","enum":["shuffle","least_busy"],"title":"RouterLoadBalancingStrategy"},"RouterResponse":{"properties":{"object":{"type":"string","const":"router","title":"Object","description":"Type of the object.","default":"router"},"id":{"type":"integer","title":"Id","description":"ID of the router."},"name":{"type":"string","title":"Name","description":"Name of the router."},"user_id":{"type":"integer","title":"User Id","description":"ID of the user that owns the router."},"type":{"$ref":"#/components/schemas/api__schemas__models__ModelType","description":"Type of the model router. It will be used to identify the model router type.","examples":["text-generation"]},"aliases":{"items":{"type":"string","maxLength":64,"minLength":1},"type":"array","title":"Aliases","description":"Aliases of the model. It will be used to identify the model by users.","examples":[["model-alias","model-alias-2"]]},"load_balancing_strategy":{"$ref":"#/components/schemas/RouterLoadBalancingStrategy","description":"Routing strategy for load balancing between providers of the model. It will be used to identify the model type.","examples":["least_busy"]},"vector_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Vector Size","description":"Dimension of the vectors, if the models are embeddings. Make sure it is the same for all models."},"max_context_length":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Context Length","description":"Maximum amount of tokens a context could contains. Make sure it is the same for all models."},"cost_prompt_tokens":{"type":"number","title":"Cost Prompt Tokens","description":"Cost of a million prompt tokens (decrease user budget)"},"cost_completion_tokens":{"type":"number","title":"Cost Completion Tokens","description":"Cost of a million completion tokens (decrease user budget)"},"providers":{"type":"integer","title":"Providers","description":"Number of providers in the router.","default":0},"created":{"type":"integer","title":"Created","description":"Time of creation, as Unix timestamp."},"updated":{"type":"integer","title":"Updated","description":"Time of last update, as Unix timestamp."}},"additionalProperties":true,"type":"object","required":["id","name","user_id","type","aliases","load_balancing_strategy","cost_prompt_tokens","cost_completion_tokens","created","updated"],"title":"RouterResponse"},"RoutersResponse":{"properties":{"object":{"type":"string","const":"list","title":"Object","description":"Type of the object.","default":"list"},"total":{"type":"integer","title":"Total","description":"Total number of routers."},"offset":{"type":"integer","title":"Offset","description":"Offset of the routers list."},"limit":{"type":"integer","title":"Limit","description":"Limit of the routers list."},"data":{"items":{"$ref":"#/components/schemas/RouterResponse"},"type":"array","title":"Data","description":"List of routers."}},"additionalProperties":true,"type":"object","required":["total","offset","limit","data"],"title":"RoutersResponse"},"Segment":{"properties":{"id":{"type":"integer","title":"Id","description":"A unique identifier for the segment."},"type":{"type":"string","title":"Type","description":"The type of the segment.","default":"transcript.text.segment"},"text":{"type":"string","title":"Text","description":"The segment text."},"start":{"type":"number","title":"Start","description":"Start time of the segment in seconds."},"end":{"type":"number","title":"End","description":"End time of the segment in seconds."},"speaker":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Speaker","description":"Speaker label assigned by diarization, if available."}},"additionalProperties":true,"type":"object","required":["id","text","start","end"],"title":"Segment"},"SortField":{"type":"string","enum":["id","name","created"],"title":"SortField"},"SortOrder":{"type":"string","enum":["asc","desc"],"title":"SortOrder"},"TokensResponse":{"properties":{"id":{"type":"integer","title":"Id"},"token":{"type":"string","title":"Token"}},"additionalProperties":true,"type":"object","required":["id","token"],"title":"TokensResponse"},"TopLogprob":{"properties":{"token":{"type":"string","title":"Token"},"bytes":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Bytes"},"logprob":{"type":"number","title":"Logprob"}},"additionalProperties":true,"type":"object","required":["token","logprob"],"title":"TopLogprob"},"Unset":{"properties":{},"type":"object","title":"Unset"},"UpdateProviderBody":{"properties":{"router_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Router Id","description":"The ID of the new router to assign to the provider."},"timeout":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Timeout","description":"Timeout for the model provider requests, after user receive an 500 error (model is too busy)."},"model_hosting_zone":{"anyOf":[{"$ref":"#/components/schemas/HostingZone"},{"type":"null"}],"description":"Model hosting zone using ISO 3166-1 alpha-3 code format (e.g., `WOR` for World, `FRA` for France, `USA` for United States). This determines the electricity mix used for carbon intensity calculations. For more information, see https://ecologits.ai"},"model_total_params":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Model Total Params","description":"Total params of the model in billions of parameters for carbon footprint computation. If not provided, the active params will be used if provided, else carbon footprint will not be computed. For more information, see https://ecologits.ai"},"model_active_params":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Model Active Params","description":"Active params of the model in billions of parameters for carbon footprint computation. If not provided, the total params will be used if provided, else carbon footprint will not be computed. For more information, see https://ecologits.ai"},"qos_metric":{"anyOf":[{"$ref":"#/components/schemas/QoSMetric"},{"type":"null"}],"description":"The metric to use for the quality of service policy. If not provided, no QoS policy is applied."},"qos_limit":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Qos Limit","description":"The value to use for the quality of service. Depends of the metric, the value can be a percentile, a threshold, etc."}},"additionalProperties":true,"type":"object","title":"UpdateProviderBody"},"UpdateRouterBody":{"properties":{"name":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Name","description":"Name of the model router.","examples":["model-router-1"]},"type":{"anyOf":[{"$ref":"#/components/schemas/ModelType-Input"},{"type":"null"}],"description":"Type of the model router. It will be used to identify the model router type.","examples":["text-generation"]},"aliases":{"anyOf":[{"items":{"type":"string","maxLength":64,"minLength":1},"type":"array"},{"type":"null"}],"title":"Aliases","description":"Aliases of the model. It will be used to identify the model by users.","examples":[["model-alias","model-alias-2"]]},"load_balancing_strategy":{"anyOf":[{"$ref":"#/components/schemas/RouterLoadBalancingStrategy"},{"type":"null"}],"description":"Routing strategy for load balancing between providers of the model. It will be used to identify the model type.","examples":["least_busy"]},"cost_prompt_tokens":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Cost Prompt Tokens","description":"Cost of a million prompt tokens (decrease user budget)"},"cost_completion_tokens":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Cost Completion Tokens","description":"Cost of a million completion tokens (decrease user budget)"}},"additionalProperties":true,"type":"object","title":"UpdateRouterBody"},"UpdateUserInfo":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"The user name."},"email":{"anyOf":[{"type":"string","maxLength":254},{"type":"null"}],"title":"Email","description":"The user email."},"current_password":{"anyOf":[{"type":"string","maxLength":72},{"type":"null"}],"title":"Current Password","description":"The current user password."},"password":{"anyOf":[{"type":"string","maxLength":72},{"type":"null"}],"title":"Password","description":"The new user password. If None, the user password is not changed."}},"additionalProperties":true,"type":"object","title":"UpdateUserInfo"},"UsageDetail":{"properties":{"prompt_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Prompt Tokens","description":"Number of prompt tokens (e.g. input tokens)."},"completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Completion Tokens","description":"Number of completion tokens (e.g. output tokens)."},"total_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Total Tokens","description":"Total number of tokens (e.g. input and output tokens)."},"cost":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Cost","description":"Total cost of the request."},"impacts":{"$ref":"#/components/schemas/api__schemas__usage__EnvironmentalImpacts"},"metrics":{"$ref":"#/components/schemas/MetricsUsage"}},"additionalProperties":true,"type":"object","title":"UsageDetail"},"Usages":{"properties":{"object":{"type":"string","const":"list","title":"Object","description":"Object type.","default":"list"},"data":{"items":{"$ref":"#/components/schemas/api__schemas__me__usage__Usage"},"type":"array","title":"Data","description":"List of usages."}},"additionalProperties":true,"type":"object","required":["data"],"title":"Usages"},"UserInfo":{"properties":{"object":{"type":"string","const":"userInfo","title":"Object","description":"The user info object type.","default":"userInfo"},"id":{"type":"integer","title":"Id","description":"The user ID."},"email":{"type":"string","title":"Email","description":"The user email."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"The user name."},"organization":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Organization","description":"The user organization ID."},"budget":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Budget","description":"The user budget. If None, the user has unlimited budget."},"permissions":{"items":{"$ref":"#/components/schemas/PermissionType"},"type":"array","title":"Permissions","description":"The user permissions."},"limits":{"items":{"$ref":"#/components/schemas/Limit"},"type":"array","title":"Limits","description":"The user rate limits."},"expires":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires","description":"The user expiration timestamp. If None, the user will never expire."},"priority":{"type":"integer","title":"Priority","description":"The user priority (higher = higher priority). This value influences scheduling/queue priority for non-streaming model invocations.","default":0},"created":{"type":"integer","title":"Created","description":"The user creation timestamp."},"updated":{"type":"integer","title":"Updated","description":"The user update timestamp."}},"additionalProperties":true,"type":"object","required":["id","email","permissions","limits","created","updated"],"title":"UserInfo"},"UserResponse":{"properties":{"object":{"type":"string","const":"user","title":"Object","description":"Type of the object.","default":"user"},"id":{"type":"integer","title":"Id","description":"ID of the user."},"email":{"type":"string","title":"Email","description":"Email of the user."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Name of the user."},"sub":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sub","description":"Subject identifier for SSO."},"iss":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Iss","description":"Issuer identifier for SSO."},"role":{"type":"integer","title":"Role","description":"ID of the role assigned to the user."},"organization_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Organization Id","description":"ID of the organization the user belongs to."},"budget":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Budget","description":"Budget allocated to the user."},"expires":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires","description":"Expiration time of the user, as Unix timestamp."},"created":{"type":"integer","title":"Created","description":"Time of creation, as Unix timestamp."},"updated":{"type":"integer","title":"Updated","description":"Time of last update, as Unix timestamp."},"priority":{"type":"integer","title":"Priority","description":"Priority of the user. Higher value means higher priority."}},"additionalProperties":false,"type":"object","required":["id","email","role","created","updated","priority"],"title":"UserResponse"},"UserSortField":{"type":"string","enum":["id","email","created","updated"],"title":"UserSortField"},"UserUpdateRequest":{"properties":{"email":{"anyOf":[{"type":"string","maxLength":254,"minLength":1},{"type":"null"}],"title":"Email","description":"The new user email. If None, the user email is not changed."},"name":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Name","description":"The new user name. If None, the user name is not changed."},"current_password":{"anyOf":[{"type":"string","maxLength":72,"minLength":1},{"type":"null"}],"title":"Current Password","description":"The current user password."},"password":{"anyOf":[{"type":"string","maxLength":72,"minLength":1},{"type":"null"}],"title":"Password","description":"The new user password. If None, the user password is not changed."},"role":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Role","description":"The new role ID. If None, the user role is not changed."},"organization":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Organization","description":"The new organization ID. If None, the user will be removed from the organization if he was in one."},"budget":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Budget","description":"The new budget. If None, the user will have no budget."},"expires":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires","description":"The new expiration timestamp. If None, the user will never expire."},"priority":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Priority","description":"The new user priority. Higher value means higher priority. If None, unchanged."}},"additionalProperties":true,"type":"object","title":"UserUpdateRequest"},"UsersResponse":{"properties":{"object":{"type":"string","const":"list","title":"Object","description":"Type of the object.","default":"list"},"total":{"type":"integer","title":"Total","description":"Total number of users matching the query."},"offset":{"type":"integer","title":"Offset","description":"Number of users skipped."},"limit":{"type":"integer","title":"Limit","description":"Maximum number of users returned."},"data":{"items":{"$ref":"#/components/schemas/UserResponse"},"type":"array","title":"Data","description":"List of users."}},"additionalProperties":true,"type":"object","required":["total","offset","limit","data"],"title":"UsersResponse"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"api__domain__model__entities__ModelType":{"type":"string","enum":["automatic-speech-recognition","image-text-to-text","image-to-text","text-classification","text-embeddings-inference","text-generation"],"title":"ModelType"},"api__domain__usage__entities__EnvironmentalImpacts":{"properties":{"kWh":{"type":"number","title":"Kwh","default":0.0},"kgCO2eq":{"type":"number","title":"Kgco2Eq","default":0.0}},"additionalProperties":true,"type":"object","title":"EnvironmentalImpacts"},"api__domain__usage__entities__Usage":{"properties":{"prompt_tokens":{"type":"integer","title":"Prompt Tokens","default":0},"completion_tokens":{"type":"integer","title":"Completion Tokens","default":0},"total_tokens":{"type":"integer","title":"Total Tokens","default":0},"cost":{"type":"number","title":"Cost","default":0.0},"impacts":{"$ref":"#/components/schemas/api__domain__usage__entities__EnvironmentalImpacts","default":{"kWh":0.0,"kgCO2eq":0.0}}},"additionalProperties":true,"type":"object","title":"Usage"},"api__infrastructure__fastapi__documentation__HTTPExceptionModel":{"properties":{"status_code":{"type":"integer","title":"Status Code"},"detail":{"type":"string","title":"Detail"},"headers":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Headers"}},"type":"object","required":["status_code","detail"],"title":"HTTPExceptionModel"},"api__schemas__exception__HTTPExceptionModel":{"properties":{"status_code":{"type":"integer","maximum":599.0,"minimum":100.0,"title":"Status Code","description":"HTTP status code to send to the client."},"detail":{"title":"Detail","description":"Any data to be sent to the client in the `detail` key of the JSON response."},"headers":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Headers","description":"Any headers to send to the client in the response."}},"type":"object","required":["status_code","detail","headers"],"title":"HTTPExceptionModel"},"api__schemas__me__usage__Usage":{"properties":{"object":{"type":"string","const":"me.usage","title":"Object","description":"Object type.","default":"me.usage"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Model used for the request."},"key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key","description":"Key used for the request."},"endpoint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Endpoint","description":"Endpoint used for the request."},"method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Method","description":"Method used for the request."},"status":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Status","description":"Status code of the response."},"usage":{"$ref":"#/components/schemas/UsageDetail"},"created":{"type":"integer","title":"Created","description":"Timestamp in seconds"}},"additionalProperties":true,"type":"object","required":["created"],"title":"Usage"},"api__schemas__models__ModelType":{"type":"string","enum":["automatic-speech-recognition","image-text-to-text","image-to-text","text-embeddings-inference","text-generation","text-classification"],"title":"ModelType"},"api__schemas__ocr__ImageURL":{"properties":{"detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Detail","description":"The detail of the image."},"url":{"type":"string","title":"Url","description":"The URL of the image."}},"additionalProperties":true,"type":"object","required":["url"],"title":"ImageURL"},"api__schemas__usage__EnvironmentalImpacts":{"properties":{"kWh":{"type":"number","title":"Kwh","description":"Carbon footprint in kWh.","default":0.0},"kgCO2eq":{"type":"number","title":"Kgco2Eq","description":"Carbon footprint in kgCO2eq (global warming potential).","default":0.0}},"additionalProperties":true,"type":"object","title":"EnvironmentalImpacts"},"api__schemas__usage__Usage":{"properties":{"prompt_tokens":{"type":"integer","title":"Prompt Tokens","description":"Number of prompt tokens (e.g. input tokens).","default":0},"completion_tokens":{"type":"integer","title":"Completion Tokens","description":"Number of completion tokens (e.g. output tokens).","default":0},"total_tokens":{"type":"integer","title":"Total Tokens","description":"Total number of tokens (e.g. input and output tokens).","default":0},"cost":{"type":"number","title":"Cost","description":"Total cost of the request.","default":0.0},"carbon":{"$ref":"#/components/schemas/CarbonFootprintUsage","deprecated":true},"impacts":{"$ref":"#/components/schemas/api__schemas__usage__EnvironmentalImpacts"},"requests":{"type":"integer","title":"Requests","description":"Number of model requests.","default":0}},"additionalProperties":true,"type":"object","title":"Usage"},"openai__types__chat__chat_completion__Choice":{"properties":{"finish_reason":{"type":"string","enum":["stop","length","tool_calls","content_filter","function_call"],"title":"Finish Reason"},"index":{"type":"integer","title":"Index"},"logprobs":{"anyOf":[{"$ref":"#/components/schemas/ChoiceLogprobs"},{"type":"null"}]},"message":{"$ref":"#/components/schemas/ChatCompletionMessage"}},"additionalProperties":true,"type":"object","required":["finish_reason","index","message"],"title":"Choice"},"openai__types__chat__chat_completion_chunk__Choice":{"properties":{"delta":{"$ref":"#/components/schemas/ChoiceDelta"},"finish_reason":{"anyOf":[{"type":"string","enum":["stop","length","tool_calls","content_filter","function_call"]},{"type":"null"}],"title":"Finish Reason"},"index":{"type":"integer","title":"Index"},"logprobs":{"anyOf":[{"$ref":"#/components/schemas/ChoiceLogprobs"},{"type":"null"}]}},"additionalProperties":true,"type":"object","required":["delta","index"],"title":"Choice"},"openai__types__chat__chat_completion_content_part_image_param__ImageURL":{"properties":{"url":{"type":"string","title":"Url"},"detail":{"type":"string","enum":["auto","low","high"],"title":"Detail"}},"additionalProperties":true,"type":"object","required":["url"],"title":"ImageURL"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"}}}}
\ No newline at end of file
diff --git a/docs/redoc-static.html b/docs/redoc-static.html
index dcc10eca2..5f2a35a79 100644
--- a/docs/redoc-static.html
+++ b/docs/redoc-static.html
@@ -1012,10 +1012,10 @@
" class="sc-iJSMbW sc-cBEgGa sc-ciCrSJ fiNpIH dNfUH dDDioG">
Wrong model type.
{- "messages": [
- null
], - "model": "string",
- "frequency_penalty": 0,
- "logit_bias": {
- "property1": 0,
- "property2": 0
}, - "logprobs": false,
- "top_logprobs": 0,
- "presence_penalty": 0,
- "max_completion_tokens": 0,
- "n": 1,
- "response_format": { },
- "seed": 0,
- "stop": "string",
- "stream": false,
- "stream_options": { },
- "temperature": 0,
- "top_p": 0,
- "tools": [
- { }
], - "tool_choice": "none",
- "parallel_tool_calls": false,
- "user": "string"
}{- "id": "string",
- "choices": [
- {
- "finish_reason": "stop",
- "index": 0,
- "logprobs": {
- "content": [
- {
- "token": "string",
- "bytes": [
- 0
], - "logprob": 0,
- "top_logprobs": [
- {
- "token": "string",
- "bytes": [
- 0
], - "logprob": 0
}
]
}
], - "refusal": [
- {
- "token": "string",
- "bytes": [
- 0
], - "logprob": 0,
- "top_logprobs": [
- {
- "token": "string",
- "bytes": [
- 0
], - "logprob": 0
}
]
}
]
}, - "message": {
- "content": "string",
- "refusal": "string",
- "role": "assistant",
- "annotations": [
- {
- "type": "url_citation",
- "url_citation": {
- "end_index": 0,
- "start_index": 0,
- "title": "string",
- "url": "string"
}
}
], - "audio": {
- "id": "string",
- "data": "string",
- "expires_at": 0,
- "transcript": "string"
}, - "function_call": {
- "arguments": "string",
- "name": "string"
}, - "tool_calls": [
- {
- "id": "string",
- "function": {
- "arguments": "string",
- "name": "string"
}, - "type": "function"
}
]
}
}
], - "created": 0,
- "model": "string",
- "object": "chat.completion",
- "service_tier": "auto",
- "system_fingerprint": "string",
- "usage": {
- "prompt_tokens": 0,
- "completion_tokens": 0,
- "total_tokens": 0,
- "cost": 0,
- "carbon": {
- "kWh": {
- "min": 0,
- "max": 0
}, - "kgCO2eq": {
- "min": 0,
- "max": 0
}
}, - "impacts": {
- "kWh": 0,
- "kgCO2eq": 0
}, - "requests": 0
}
}