Get provider

Returns ONE provider with this org's connection status — the same view list carries, for a single id.

GET /v1/provider/{provider}

Addresshttps://api.hanzo.ai/v1/provider/{provider}
MethodGET
Operationget_provider_by_provider
AuthAuthorization: Bearer $HANZO_API_KEY

Returns ONE provider with this org's connection status — the same view list carries, for a single id. An unknown id is 404, and so is a user-plane provider: the org surface never resolves one.

Request

1 field.

FieldInTypeRequiredDescription
providerpathstringyesProvider is the registry id of the connector — "slack", "github", "cloudflare".

Response

StatusBodyMeaning
200provider.providerViewok
defaultproblem-detailsrefused

200 body — 54 fields.

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

const api = new ProviderApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.getProviderByProvider({ provider: 'provider' });
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_by_provider(provider='provider')
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.ProviderAPI.GetProviderByProvider(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_by_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).getProviderByProvider();
curl https://api.hanzo.ai/v1/provider/<provider> \
  -H "Authorization: Bearer $HANZO_API_KEY"

Tool provider, op get_provider_by_provider — POST the JSON-RPC envelope to https://api.hanzo.ai/v1/mcp.

curl -X POST https://api.hanzo.ai/v1/mcp \
  -H "Authorization: Bearer $HANZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
       "jsonrpc": "2.0",
       "id": 1,
       "method": "tools/call",
       "params": {
         "name": "provider",
         "arguments": {
           "op": "get_provider_by_provider",
           "input": {
             "provider": "<provider>"
           }
         }
       }
     }'

Provider API · All Hanzo APIs · Interactive reference

Was this page useful?