Refresh connection

Forces a token rotation for a connected connector, ahead of the automatic rotation a token read would do inside the expiry window.

POST /v1/connection/{id}/refresh

Addresshttps://api.hanzo.ai/v1/connection/{id}/refresh
MethodPOST
Operationpost_connection_by_id_refresh
AuthAuthorization: Bearer $HANZO_API_KEY

Forces a token rotation for a connected connector, ahead of the automatic rotation a token read would do inside the expiry window. Only providers that declare a Refresh support it.

Request

1 field.

FieldInTypeRequiredDescription
idpathstringyesID is the connector id, provider + ":" + label ("openai:default") — the auth-profile-id shape.

Response

StatusBodyMeaning
200provider.refreshOutok
defaultproblem-detailsrefused

200 body — 10 fields.

FieldInTypeAlwaysDescription
connectorbodyprovider.connectionView—
connector.accountbodystring—Account is the human label of the connected third-party account (the Slack team name, the GitHub org login).
connector.connectedAtbodystring—ConnectedAt is when the connection was last (re)established, RFC 3339 UTC.
connector.expiresAtbodystring—ExpiresAt is when the access token expires, RFC 3339 UTC; empty for a credential that does not expire.
connector.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.
connector.idbodystring—ID is provider + ":" + label, the address every connection route takes.
connector.labelbodystring—Label is the caller's own name for this connection ("default", "work").
connector.providerbodystring—Provider is the connected provider's registry id.
connector.scopesbodystring[]—Scopes are the permissions the provider granted.
refreshedbodyboolean—Refreshed is always true — a failed rotation is an HTTP error.

Failure carries the platform error shape — see Errors.

Examples

hanzo connection refresh <id>
import { Configuration, ProviderApi } from 'hanzoai';

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

resp, _, err := client.ProviderAPI.PostConnectionByIdRefresh(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::post_connection_by_id_refresh(&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).postConnectionByIdRefresh();
curl -X POST https://api.hanzo.ai/v1/connection/<id>/refresh \
  -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?