List provider

Returns every registered integration provider together with THIS org's connection status for it — the catalog the console's Integrations page renders.

GET /v1/provider

Addresshttps://api.hanzo.ai/v1/provider
MethodGET
Operationget_provider
AuthAuthorization: Bearer $HANZO_API_KEY

Returns every registered integration provider together with THIS org's connection status for it — the catalog the console's Integrations page renders. Org-authed: a caller with no validated principal is 403, because the status is per-org and there is no org-less answer. User-plane providers (the /v1/connection surface) are omitted; the two planes are disjoint.

Request

GET /v1/provider takes no parameters and no body — the credential is the whole request.

Response

StatusBodyMeaning
200provider.listOutok
defaultproblem-detailsrefused

200 body — 55 fields.

FieldInTypeAlwaysDescription
providersbodyprovider.providerView[]—Providers is the whole catalog.
providers[].actionsbodyprovider.opView[]—Actions are what the connector can be asked to do, by a flow step or an agent (POST /v1/provider/{provider}/run when Runnable).
providers[].actions[].descriptionbodystring—Description says what it does.
providers[].actions[].displayNamebodystring—DisplayName is what the card calls it.
providers[].actions[].namebodystring—Name is the action's id — what a run or a flow step names.
providers[].actions[].propsbodyprovider.PropSpec[]—Props are its inputs — what POST /v1/provider/{provider}/run takes as input.
providers[].actions[].props[].descriptionbodystring—Description says what the value is.
providers[].actions[].props[].displayNamebodystring—DisplayName is what a form calls it.
providers[].actions[].props[].namebodystring—Name is the input's key in the action's input object.
providers[].actions[].props[].requiredbodyboolean—Required is whether the action refuses to run without it.
providers[].actions[].props[].typebodystring—Type is the JSON type the value takes: string|number|boolean|object|array.
providers[].appbodystring—App names the OAuth app registration its sign-in uses ("GOOGLE"), for a connector whose sign-in awaits one.
providers[].availablebodyboolean—Available is whether THIS DEPLOYMENT has the provider's app credentials, so connect can succeed.
providers[].categorybodystring—Category groups the card ("Communication", "Developer", "Marketing").
providers[].checksbodyboolean—Checks is whether a pasted credential is checked with the provider before it is stored.
providers[].connectedbodyboolean—Connected is whether this org has a live connection to the provider.
providers[].connectionbodyprovider.connectionView—
providers[].connection.accountbodystring—Account is the human label of the connected third-party account (the Slack team name, the GitHub org login).
providers[].connection.connectedAtbodystring—ConnectedAt is when the connection was last (re)established, RFC 3339 UTC.
providers[].connection.expiresAtbodystring—ExpiresAt is when the access token expires, RFC 3339 UTC; empty for a credential that does not expire.
providers[].connection.externalIdbodystring—ExternalID is the provider's own id for the account (Slack team.id, GitHub installation_id) — the value inbound webhooks are mapped back to this org by.
providers[].connection.idbodystring—ID is provider + ":" + label, the address every connection route takes.
providers[].connection.labelbodystring—Label is the caller's own name for this connection ("default", "work").
providers[].connection.providerbodystring—Provider is the connected provider's registry id.
providers[].connection.scopesbodystring[]—Scopes are the permissions the provider granted.
providers[].descriptionbodystring—Description is the one-line pitch the console card shows.
providers[].fieldsbodyprovider.Field[]—Fields is the form a credential connector asks for.
providers[].fields[].defaultbodystring—Default is what an empty input stands for.
providers[].fields[].helpbodystring—Help is the connector's own instruction for finding the value.
providers[].fields[].labelbodystring—Label is what the input is called on the form.
providers[].fields[].namebodystring—Name is the key the value is submitted under.
providers[].fields[].optionsbodyprovider.FieldOption[]—Options are the values a choice field accepts.
providers[].fields[].options[].labelbodystring—Label is what the choice is called.
providers[].fields[].options[].valuebodystring—Value is what submitting it sends.
providers[].fields[].requiredbodyboolean—Required is whether the form refuses to submit without it.
providers[].fields[].secretbodyboolean—Secret masks the input; its value is sealed and never read back.
providers[].fields[].typebodystring—Type is "number", "boolean" or "text" (multi-line) when the value is not a single line of text.
providers[].idbodystring—ID is the provider's registry id and the :provider path segment ("slack").
providers[].kindbodystring—Kind is how a reader connects it NOW: "oauth" (send the browser to the provider), "credential" (fill in Fields), "device" (enter a code), or "none" (nothing to connect — ready, or not connectable here; Note says).
providers[].logobodystring—Logo is where the connector's logo is served.
providers[].modesbodystring[]—Modes are the ways this provider can be connected, derived from what it actually declares — "managed", "oauth", "apikey", "device", "mcp".
providers[].namebodystring—Name is the provider's display name ("Slack").
providers[].notebodystring—Note says why the connector cannot be connected here, when it cannot.
providers[].runnablebodyboolean—Runnable is whether its actions run on this deployment.
providers[].scopesbodystring[]—Scopes are the permissions a connection will ask for.
providers[].triggersbodyprovider.opView[]—Triggers are the events a flow can start on.
providers[].triggers[].descriptionbodystring—Description says what it does.
providers[].triggers[].displayNamebodystring—DisplayName is what the card calls it.
providers[].triggers[].namebodystring—Name is the action's id — what a run or a flow step names.
providers[].triggers[].propsbodyprovider.PropSpec[]—Props are its inputs — what POST /v1/provider/{provider}/run takes as input.
providers[].triggers[].props[].descriptionbodystring—Description says what the value is.
providers[].triggers[].props[].displayNamebodystring—DisplayName is what a form calls it.
providers[].triggers[].props[].namebodystring—Name is the input's key in the action's input object.
providers[].triggers[].props[].requiredbodyboolean—Required is whether the action refuses to run without it.
providers[].triggers[].props[].typebodystring—Type is the JSON type the value takes: string|number|boolean|object|array.

Failure carries the platform error shape — see Errors.

Examples

hanzo provider list
import { Configuration, ProviderApi } from 'hanzoai';

const api = new ProviderApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.getProvider();
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import ProviderApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = ProviderApi(client).get_provider()
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.ProviderAPI.GetProvider(context.Background()).Execute()
if err != nil {
	return err
}
use hanzo_client::apis::{configuration::Configuration, provider_api};

let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();

let result = provider_api::get_provider(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.ProviderApi;

ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));

var result = new ProviderApi(client).getProvider();
curl https://api.hanzo.ai/v1/provider \
  -H "Authorization: Bearer $HANZO_API_KEY"

MCP reaches provider through the provider tool, which names its 38 operations with its own verbs — this one among them, under a name only MCP declares. describe explains any of them:

curl -X POST https://api.hanzo.ai/v1/mcp \
  -H "Content-Type: application/json" \
  -d '{
       "jsonrpc": "2.0",
       "id": 1,
       "method": "tools/call",
       "params": {
         "name": "describe",
         "arguments": {
           "op": "list_connections"
         }
       }
     }'

Provider API · All Hanzo APIs · Interactive reference

Was this page useful?