Start linking a GitHub login or installing the GitHub App
const url = 'https://api.katara.com/katara/v1/github/authorizations';const options = { method: 'POST', headers: { 'X-Katara-CSRF': '1', Authorization: 'Bearer <token>', 'Content-Type': 'application/json' }, body: '{"purpose":"link","org_id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.katara.com/katara/v1/github/authorizations \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --header 'X-Katara-CSRF: 1' \ --data '{ "purpose": "link", "org_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" }'Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Header Parameters
Section titled “Header Parameters”Browser cookie mutations require value 1 and an allowed Origin. Session bearer clients may omit this header.
Request Bodyrequired
Section titled “Request Bodyrequired”Start a sign-in at GitHub: link to link your GitHub login, install to install the Katara GitHub App for the organization named by org_id, which install requires.
object
Responses
Section titled “Responses”Successful request
Where to send the person, and the state GitHub returns with them. The state is used once, by the same person, within its expiry.
object
Examplegenerated
{ "url": "https://example.com", "state": "example", "expires_at": "2026-04-15T12:00:00Z"}default
Section titled “default”Request error
object
object
Stable; branch on it. Any operation can answer invalid_request, with param naming the refused field when there is one; human_session_required, when an API key, service account or workload calls an operation only a signed-in person may perform; reauthentication_required, when a person’s sign-in is too old for the operation; permission_denied; route_not_found and method_not_allowed, when no operation matches the path or method; and feature_unavailable, when the operation’s service is not enabled on this deployment.
The request field a refusal is about, such as the agent_id or run_id query parameter; null when the refusal is not about one field.
Example
{ "error": { "action": "sign_in" }}