---
title: "Ask a person to connect GitHub for this organization"
method: POST
path: "/v2/github/authorization-requests"
tags: ["GitHub"]
---

# Ask a person to connect GitHub for this organization

`POST /v2/github/authorization-requests`

## Request

- Base URL: `https://api.runta.com`
- URL: `https://api.runta.com/v2/github/authorization-requests`
- Auth: HTTP bearer

## Request body

- CreateGitHubAuthorizationRequestRequest
  - `reason` string: What access is needed for, shown to the approver verbatim.

## Response `200`

Response envelope.

- GitHubAuthorizationRequestResponse
  - `data` GitHubAuthorizationRequest, required
    - `request_id` string, required
    - `requested_by` string, required
    - `reason` string: What the agent said it needed access for.
    - `created_at_unix_seconds` integer, required
    - `lifecycle` union, required
      - PendingGitHubAuthorization
        - `status` 'pending', required
        - `authorization_url` string, uri, required
        - `expires_at_unix_seconds` integer, required
      - ApprovedGitHubAuthorization
        - `status` 'approved', required
        - `decision` GitHubAuthorizationDecisionMetadata, required
          - `decided_by` string, required
          - `decided_at_unix_seconds` integer, required
        - `expires_at_unix_seconds` integer, required
      - InstalledGitHubAuthorization
        - `status` 'installed', required
        - `decision` GitHubAuthorizationDecisionMetadata, required
          - `decided_by` string, required
          - `decided_at_unix_seconds` integer, required
        - `installation_id` integer, required
      - DeniedGitHubAuthorization
        - `status` 'denied', required
        - `decision` GitHubAuthorizationDecisionMetadata, required
          - `decided_by` string, required
          - `decided_at_unix_seconds` integer, required
      - ExpiredGitHubAuthorization
        - `status` 'expired', required
        - `expires_at_unix_seconds` integer, required
        - `decision` GitHubAuthorizationDecisionMetadata
          - `decided_by` string, required
          - `decided_at_unix_seconds` integer, required

## Other responses

- `401`: Missing, malformed, or rejected bearer token
- `403`: The bearer token is not allowed to perform this action
- `404`: The requested resource was not found
- `409`: The request conflicts with current resource state
- `422`: Validation or application error
- `429`: Rate limit exceeded
- `501`: Operation is not implemented
- `503`: Upstream service is unavailable
- `504`: Upstream request timed out
- `default`: Error response

## Changes

- **2026-11-05** `fb5a0ecd3fc2`: 20 warning
  - added the new `FEATURE_TEMPORARILY_DISABLED` enum value to the `error/code` response property for the response status `401`
  - added the new `FEATURE_TEMPORARILY_DISABLED` enum value to the `error/code` response property for the response status `403`
  - added the new `FEATURE_TEMPORARILY_DISABLED` enum value to the `error/code` response property for the response status `404`
  - added the new `FEATURE_TEMPORARILY_DISABLED` enum value to the `error/code` response property for the response status `409`
  - …16 more

[Operation history](https://skmtc.dev/runta/apis/runta-public-rest-api/changes/v2/github/authorization-requests/post.md)

---

[API](https://skmtc.dev/runta/apis/runta-public-rest-api.md) - [All operations](https://skmtc.dev/runta/apis/runta-public-rest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/runta/apis/runta-public-rest-api/revisions/fb5a0ecd3fc2?raw)
