The Archive · Desktop reference · Local API
Models and providers
The models on offer, provider keys and addresses, OpenRouter sign-in, and the web search source. 23 operations of the TALOS Desktop local API.
Reference for TALOS Desktop 0.1.25
The models on offer, provider keys and addresses, OpenRouter sign-in, and the web search source. Paths are relative to /api/v1.
GET /providers/{providerId}/models
Section titled “GET /providers/{providerId}/models”The models a provider offers, asked of the provider itself (or, for a local one such as LM Studio, of the runtime that probes it), with the capabilities it declares.
Only the providers whose catalog appears in the window have this route. A capability the provider does not declare is reported as unknown, never as false.
Path
providerId- The provider (see Providers). Values
esternoopenaideepseekkimiminimaxqwenzaianthropicgeminilmstudiogroqcerebrasmistraltogetherfireworksdeepinfranovitanebiusxaiollama-cloudhuggingfacezai-anthropicminimax-anthropicazurebedrockvertex
Answers The JSON envelope.
Errors2
| Code | Status | Meaning |
|---|---|---|
QUERY_INVALID | 400 | The request is not valid: a query parameter or a body field is missing, unknown or malformed. |
REPORT_UNAVAILABLE | 404 | The report or service asked for is not available on this server yet. |
Any operation can also answer the common errors.
GET /providers
Section titled “GET /providers”The model providers and whether each one is configured (never the keys).
Answers The JSON envelope.
Errors2
| Code | Status | Meaning |
|---|---|---|
PROVIDER_STORE_UNAVAILABLE | 503 | The computer’s key store is not available: check the Doctor. |
QUERY_INVALID | 400 | The request is not valid: a query parameter or a body field is missing, unknown or malformed. |
Any operation can also answer the common errors.
POST /providers/openrouter/esclusi
Section titled “POST /providers/openrouter/esclusi”Not yet described in this reference: the parameters, fields and errors below are read from the release.
Body
modello- The model, as OpenRouter names it (
vendor/model-name), or<provider>:<model>for a provider’s own endpoint; default: the server’s. slug- Not yet described.
attivo- Not yet described.
fornitore- Not yet described.
esclusi- Not yet described.
diSerie- Not yet described.
Answers The JSON envelope.
Errors2
| Code | Status | Meaning |
|---|---|---|
PROVIDER_STORE_UNAVAILABLE | 503 | The computer’s key store is not available: check the Doctor. |
QUERY_INVALID | 400 | The request is not valid: a query parameter or a body field is missing, unknown or malformed. |
Any operation can also answer the common errors.
POST /providers/openrouter/esclusi/dalla-risposta
Section titled “POST /providers/openrouter/esclusi/dalla-risposta”Not yet described in this reference: the parameters, fields and errors below are read from the release.
Body
modello- The model, as OpenRouter names it (
vendor/model-name), or<provider>:<model>for a provider’s own endpoint; default: the server’s. slug- Not yet described.
attivo- Not yet described.
fornitore- Not yet described.
esclusi- Not yet described.
diSerie- Not yet described.
Answers The JSON envelope.
Errors2
| Code | Status | Meaning |
|---|---|---|
PROVIDER_STORE_UNAVAILABLE | 503 | The computer’s key store is not available: check the Doctor. |
QUERY_INVALID | 400 | The request is not valid: a query parameter or a body field is missing, unknown or malformed. |
Any operation can also answer the common errors.
POST /providers/openrouter/esclusi/di-serie
Section titled “POST /providers/openrouter/esclusi/di-serie”Not yet described in this reference: the parameters, fields and errors below are read from the release.
Body
modello- The model, as OpenRouter names it (
vendor/model-name), or<provider>:<model>for a provider’s own endpoint; default: the server’s. slug- Not yet described.
attivo- Not yet described.
fornitore- Not yet described.
esclusi- Not yet described.
diSerie- Not yet described.
Answers The JSON envelope.
Errors2
| Code | Status | Meaning |
|---|---|---|
PROVIDER_STORE_UNAVAILABLE | 503 | The computer’s key store is not available: check the Doctor. |
QUERY_INVALID | 400 | The request is not valid: a query parameter or a body field is missing, unknown or malformed. |
Any operation can also answer the common errors.
GET /models
Section titled “GET /models”The catalog of models, from every configured provider and the local engine.
Query
forza1to refresh the catalog now instead of using the cached one.
Answers The JSON envelope.
Errors1
| Code | Status | Meaning |
|---|---|---|
REPORT_UNAVAILABLE | 404 | The report or service asked for is not available on this server yet. |
Any operation can also answer the common errors.
GET /search-source
Section titled “GET /search-source”The web search sources and which one is active (never the keys).
Answers The JSON envelope.
Errors2
| Code | Status | Meaning |
|---|---|---|
QUERY_INVALID | 400 | The request is not valid: a query parameter or a body field is missing, unknown or malformed. |
SEARCH_STORE_UNAVAILABLE | 503 | The search key store is not available. |
Any operation can also answer the common errors.
GET /providers/{providerId}/runtime
Section titled “GET /providers/{providerId}/runtime”The runtime settings of one provider: its address and limits.
Path
providerId- The provider (see Providers).
Answers The JSON envelope.
Errors2
| Code | Status | Meaning |
|---|---|---|
PROVIDER_STORE_UNAVAILABLE | 503 | The computer’s key store is not available: check the Doctor. |
QUERY_INVALID | 400 | The request is not valid: a query parameter or a body field is missing, unknown or malformed. |
Any operation can also answer the common errors.
POST /search-source
Section titled “POST /search-source”Choose the web search source.
Body
sourcerequired- The source.
endpoint- Its address, for a source you host.
Answers The JSON envelope.
Errors3
| Code | Status | Meaning |
|---|---|---|
QUERY_INVALID | 400 | The request is not valid: a query parameter or a body field is missing, unknown or malformed. |
SEARCH_NOT_READY | 409 | The search source is not ready. |
SEARCH_STORE_UNAVAILABLE | 503 | The search key store is not available. |
Any operation can also answer the common errors.
POST /search-source/key
Section titled “POST /search-source/key”Save the key of a search source.
Body
sourcerequired- The source.
keyrequired- The key.
Answers The JSON envelope.
Errors3
| Code | Status | Meaning |
|---|---|---|
QUERY_INVALID | 400 | The request is not valid: a query parameter or a body field is missing, unknown or malformed. |
SEARCH_NOT_READY | 409 | The search source is not ready. |
SEARCH_STORE_UNAVAILABLE | 503 | The search key store is not available. |
Any operation can also answer the common errors.
POST /search-source/key/remove
Section titled “POST /search-source/key/remove”Remove the key of a search source.
Body
sourcerequired- The source.
Answers The JSON envelope.
Errors3
| Code | Status | Meaning |
|---|---|---|
QUERY_INVALID | 400 | The request is not valid: a query parameter or a body field is missing, unknown or malformed. |
SEARCH_NOT_READY | 409 | The search source is not ready. |
SEARCH_STORE_UNAVAILABLE | 503 | The search key store is not available. |
Any operation can also answer the common errors.
POST /search-source/test
Section titled “POST /search-source/test”Try the active search source with a query (it must be ready).
Body
query- What to search for (a default query otherwise).
Answers The JSON envelope.
Errors3
| Code | Status | Meaning |
|---|---|---|
QUERY_INVALID | 400 | The request is not valid: a query parameter or a body field is missing, unknown or malformed. |
SEARCH_NOT_READY | 409 | The search source is not ready. |
SEARCH_STORE_UNAVAILABLE | 503 | The search key store is not available. |
Any operation can also answer the common errors.
POST /providers/{providerId}/test
Section titled “POST /providers/{providerId}/test”Test a provider: whether it answers with the key and address configured.
Path
providerId- The provider (see Providers).
Body
None: the body is empty.
Answers The JSON envelope.
Errors2
| Code | Status | Meaning |
|---|---|---|
PROVIDER_STORE_UNAVAILABLE | 503 | The computer’s key store is not available: check the Doctor. |
QUERY_INVALID | 400 | The request is not valid: a query parameter or a body field is missing, unknown or malformed. |
Any operation can also answer the common errors.
POST /providers/{providerId}/key
Section titled “POST /providers/{providerId}/key”Save the key of a provider (the single key).
Path
providerId- The provider (see Providers).
Body
keyrequired- The key.
Answers The JSON envelope.
Errors2
| Code | Status | Meaning |
|---|---|---|
PROVIDER_STORE_UNAVAILABLE | 503 | The computer’s key store is not available: check the Doctor. |
QUERY_INVALID | 400 | The request is not valid: a query parameter or a body field is missing, unknown or malformed. |
Any operation can also answer the common errors.
POST /providers/{providerId}/keys
Section titled “POST /providers/{providerId}/keys”Add a key to the provider’s pool of keys.
Path
providerId- The provider (see Providers).
Body
keyrequired- The key.
priorita- Its priority in the pool.
Answers The JSON envelope.
Errors2
| Code | Status | Meaning |
|---|---|---|
PROVIDER_STORE_UNAVAILABLE | 503 | The computer’s key store is not available: check the Doctor. |
QUERY_INVALID | 400 | The request is not valid: a query parameter or a body field is missing, unknown or malformed. |
Any operation can also answer the common errors.
POST /providers/{providerId}/key/remove
Section titled “POST /providers/{providerId}/key/remove”Remove the single key of a provider (the body must be empty).
Path
providerId- The provider (see Providers).
Body
None: the body is empty.
Answers The JSON envelope.
Errors2
| Code | Status | Meaning |
|---|---|---|
PROVIDER_STORE_UNAVAILABLE | 503 | The computer’s key store is not available: check the Doctor. |
QUERY_INVALID | 400 | The request is not valid: a query parameter or a body field is missing, unknown or malformed. |
Any operation can also answer the common errors.
POST /providers/{providerId}/keys/remove
Section titled “POST /providers/{providerId}/keys/remove”Remove a key from the pool, by its fingerprint.
Path
providerId- The provider (see Providers).
Body
improntarequired- The SHA-256 fingerprint of the key (64 hexadecimal digits).
Answers The JSON envelope.
Errors2
| Code | Status | Meaning |
|---|---|---|
PROVIDER_STORE_UNAVAILABLE | 503 | The computer’s key store is not available: check the Doctor. |
QUERY_INVALID | 400 | The request is not valid: a query parameter or a body field is missing, unknown or malformed. |
Any operation can also answer the common errors.
POST /providers/{providerId}/runtime
Section titled “POST /providers/{providerId}/runtime”Set a provider’s address, timeout and, for cloud providers, its list of models.
For a local provider endpoint and timeoutSeconds are required; for a cloud provider every field is optional; for the external agent (esterno) the body is { agente }.
Path
providerId- The provider (see Providers).
Body
endpoint- The address of the provider.
timeoutSeconds- The timeout, in seconds.
modelli- Cloud providers: the models to offer.
agente- The external agent only: its command and settings.
Answers The JSON envelope.
Errors2
| Code | Status | Meaning |
|---|---|---|
PROVIDER_STORE_UNAVAILABLE | 503 | The computer’s key store is not available: check the Doctor. |
QUERY_INVALID | 400 | The request is not valid: a query parameter or a body field is missing, unknown or malformed. |
Any operation can also answer the common errors.
POST /providers/{providerId}/runtime/reset
Section titled “POST /providers/{providerId}/runtime/reset”Put a provider’s address back to its default (the body must be empty).
Path
providerId- The provider (see Providers).
Body
None: the body is empty.
Answers The JSON envelope.
Errors2
| Code | Status | Meaning |
|---|---|---|
PROVIDER_STORE_UNAVAILABLE | 503 | The computer’s key store is not available: check the Doctor. |
QUERY_INVALID | 400 | The request is not valid: a query parameter or a body field is missing, unknown or malformed. |
Any operation can also answer the common errors.
POST /auth/openrouter/inizia
Section titled “POST /auth/openrouter/inizia”Start signing in to OpenRouter: answers the address to open. The key that comes back is kept by the key store and never returned.
Body
senzaRitornotruefor the “code on screen” way (from another machine); otherwise the browser comes back to TALOS by itself, when the window is on this computer.
Answers The JSON envelope.
Errors4
| Code | Status | Meaning |
|---|---|---|
OAUTH_CODICE_MANCANTE | 400 | The confirmation code is missing: start again. |
OAUTH_CUSTODIA_FALLITA | 500 | The sign-in succeeded, but the key could not be stored safely: open the Doctor. |
OAUTH_NON_CONFIGURATO | 503 | Signing in with an account is not possible on this server: paste a key in Settings. |
QUERY_INVALID | 400 | The request is not valid: a query parameter or a body field is missing, unknown or malformed. |
Any operation can also answer the common errors.
POST /auth/openrouter/codice
Section titled “POST /auth/openrouter/codice”Finish signing in to OpenRouter with the code shown on screen.
Body
stato- The state of the sign-in started.
codice- The code OpenRouter showed.
Answers The JSON envelope.
Errors4
| Code | Status | Meaning |
|---|---|---|
OAUTH_CODICE_MANCANTE | 400 | The confirmation code is missing: start again. |
OAUTH_CUSTODIA_FALLITA | 500 | The sign-in succeeded, but the key could not be stored safely: open the Doctor. |
OAUTH_NON_CONFIGURATO | 503 | Signing in with an account is not possible on this server: paste a key in Settings. |
QUERY_INVALID | 400 | The request is not valid: a query parameter or a body field is missing, unknown or malformed. |
Any operation can also answer the common errors.
GET /auth/openrouter/ritorno
Section titled “GET /auth/openrouter/ritorno”Where OpenRouter sends the browser back after sign-in (the state in state or stato). No cookie needed.
Query
code- The code OpenRouter returns.
state- The state of the sign-in.
stato- The same, under its Italian name.
Answers The JSON envelope.
Errors4
| Code | Status | Meaning |
|---|---|---|
OAUTH_CODICE_MANCANTE | 400 | The confirmation code is missing: start again. |
OAUTH_CUSTODIA_FALLITA | 500 | The sign-in succeeded, but the key could not be stored safely: open the Doctor. |
OAUTH_NON_CONFIGURATO | 503 | Signing in with an account is not possible on this server: paste a key in Settings. |
QUERY_INVALID | 400 | The request is not valid: a query parameter or a body field is missing, unknown or malformed. |
Any operation can also answer the common errors.
GET /auth/openrouter/ritorno/{state}
Section titled “GET /auth/openrouter/ritorno/{state}”The same return, with the state in the path (the form OpenRouter documents).
Path
state- The state of the sign-in.
Query
code- The code OpenRouter returns.
Answers The JSON envelope.
Errors4
| Code | Status | Meaning |
|---|---|---|
OAUTH_CODICE_MANCANTE | 400 | The confirmation code is missing: start again. |
OAUTH_CUSTODIA_FALLITA | 500 | The sign-in succeeded, but the key could not be stored safely: open the Doctor. |
OAUTH_NON_CONFIGURATO | 503 | Signing in with an account is not possible on this server: paste a key in Settings. |
QUERY_INVALID | 400 | The request is not valid: a query parameter or a body field is missing, unknown or malformed. |
Any operation can also answer the common errors.