{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/github-copilot/json-schema/github-copilot-copilot-seat-details-schema.json",
  "title": "Copilot Business Seat Detail",
  "description": "Information about a Copilot Business seat assignment for a user, team, or organization.",
  "x-generated": "2026-11-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/github-copilot-copilot-api-openapi.yml#/components/schemas/copilot-seat-details",
  "type": "object",
  "properties": {
    "assignee": {
      "$ref": "#/$defs/nullable-simple-user"
    },
    "organization": {
      "$ref": "#/$defs/nullable-organization-simple"
    },
    "assigning_team": {
      "description": "The team through which the assignee is granted access to GitHub Copilot, if applicable.",
      "oneOf": [
        {
          "$ref": "#/$defs/team"
        },
        {
          "$ref": "#/$defs/enterprise-team"
        }
      ]
    },
    "pending_cancellation_date": {
      "type": [
        "string",
        "null"
      ],
      "format": "date",
      "description": "The pending cancellation date for the seat, in `YYYY-MM-DD` format. This will be null unless the assignee's Copilot access has been canceled during the current billing cycle. If the seat has been cancelled, this corresponds to the start of the organization's next billing cycle."
    },
    "last_activity_at": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time",
      "description": "Timestamp of user's last GitHub Copilot activity, in ISO 8601 format."
    },
    "last_activity_editor": {
      "type": [
        "string",
        "null"
      ],
      "description": "Last editor that was used by the user for a GitHub Copilot completion."
    },
    "last_authenticated_at": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time",
      "description": "Timestamp of the last time the user authenticated with GitHub Copilot, in ISO 8601 format."
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp of when the assignee was last granted access to GitHub Copilot, in ISO 8601 format."
    },
    "updated_at": {
      "type": "string",
      "format": "date-time",
      "deprecated": true,
      "description": "**Closing down notice:** This field is no longer relevant and is closing down. Use the `created_at` field to determine when the assignee was last granted access to GitHub Copilot. Timestamp of when the assignee's GitHub Copilot access was last updated, in ISO 8601 format."
    },
    "plan_type": {
      "type": "string",
      "description": "The Copilot plan of the organization, or the parent enterprise, when applicable.",
      "enum": [
        "business",
        "enterprise",
        "unknown",
        "access"
      ]
    }
  },
  "required": [
    "created_at"
  ],
  "additionalProperties": false,
  "$defs": {
    "enterprise-team": {
      "title": "Enterprise Team",
      "description": "Group of enterprise owners and/or members",
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "format": "int64"
        },
        "name": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "slug": {
          "type": "string"
        },
        "url": {
          "type": "string",
          "format": "uri"
        },
        "sync_to_organizations": {
          "type": "string",
          "description": "Retired: this field will not be returned with GHEC enterprise teams."
        },
        "organization_selection_type": {
          "type": "string"
        },
        "group_id": {
          "type": [
            "string",
            "null"
          ]
        },
        "group_name": {
          "type": [
            "string",
            "null"
          ],
          "description": "Retired: this field will not be returned with GHEC enterprise teams."
        },
        "html_url": {
          "type": "string",
          "format": "uri"
        },
        "members_url": {
          "type": "string"
        },
        "created_at": {
          "type": "string",
          "format": "date-time"
        },
        "updated_at": {
          "type": "string",
          "format": "date-time"
        },
        "notification_setting": {
          "type": "string",
          "description": "Whether team members will receive notifications when the team is mentioned.",
          "enum": [
            "notifications_enabled",
            "notifications_disabled"
          ]
        }
      },
      "required": [
        "id",
        "url",
        "members_url",
        "name",
        "html_url",
        "slug",
        "created_at",
        "updated_at",
        "group_id"
      ]
    },
    "nullable-organization-simple": {
      "title": "Organization Simple",
      "description": "A GitHub organization.",
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "login": {
          "type": "string"
        },
        "id": {
          "type": "integer"
        },
        "node_id": {
          "type": "string"
        },
        "url": {
          "type": "string",
          "format": "uri"
        },
        "repos_url": {
          "type": "string",
          "format": "uri"
        },
        "events_url": {
          "type": "string",
          "format": "uri"
        },
        "hooks_url": {
          "type": "string"
        },
        "issues_url": {
          "type": "string"
        },
        "members_url": {
          "type": "string"
        },
        "public_members_url": {
          "type": "string"
        },
        "avatar_url": {
          "type": "string"
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "login",
        "url",
        "id",
        "node_id",
        "repos_url",
        "events_url",
        "hooks_url",
        "issues_url",
        "members_url",
        "public_members_url",
        "avatar_url",
        "description"
      ]
    },
    "nullable-simple-user": {
      "title": "Simple User",
      "description": "A GitHub user.",
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "name": {
          "type": [
            "string",
            "null"
          ]
        },
        "email": {
          "type": [
            "string",
            "null"
          ]
        },
        "login": {
          "type": "string"
        },
        "id": {
          "type": "integer",
          "format": "int64"
        },
        "node_id": {
          "type": "string"
        },
        "avatar_url": {
          "type": "string",
          "format": "uri"
        },
        "gravatar_id": {
          "type": [
            "string",
            "null"
          ]
        },
        "url": {
          "type": "string",
          "format": "uri"
        },
        "html_url": {
          "type": "string",
          "format": "uri"
        },
        "followers_url": {
          "type": "string",
          "format": "uri"
        },
        "following_url": {
          "type": "string"
        },
        "gists_url": {
          "type": "string"
        },
        "starred_url": {
          "type": "string"
        },
        "subscriptions_url": {
          "type": "string",
          "format": "uri"
        },
        "organizations_url": {
          "type": "string",
          "format": "uri"
        },
        "repos_url": {
          "type": "string",
          "format": "uri"
        },
        "events_url": {
          "type": "string"
        },
        "received_events_url": {
          "type": "string",
          "format": "uri"
        },
        "type": {
          "type": "string"
        },
        "site_admin": {
          "type": "boolean"
        },
        "starred_at": {
          "type": "string"
        },
        "user_view_type": {
          "type": "string"
        }
      },
      "required": [
        "avatar_url",
        "events_url",
        "followers_url",
        "following_url",
        "gists_url",
        "gravatar_id",
        "html_url",
        "id",
        "node_id",
        "login",
        "organizations_url",
        "received_events_url",
        "repos_url",
        "site_admin",
        "starred_url",
        "subscriptions_url",
        "type",
        "url"
      ]
    },
    "nullable-team-simple": {
      "title": "Team Simple",
      "description": "Groups of organization members that gives permissions on specified repositories.",
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "id": {
          "description": "Unique identifier of the team",
          "type": "integer"
        },
        "node_id": {
          "type": "string"
        },
        "url": {
          "description": "URL for the team",
          "type": "string",
          "format": "uri"
        },
        "members_url": {
          "type": "string"
        },
        "name": {
          "description": "Name of the team",
          "type": "string"
        },
        "description": {
          "description": "Description of the team",
          "type": [
            "string",
            "null"
          ]
        },
        "permission": {
          "description": "Permission that the team will have for its repositories",
          "type": "string"
        },
        "privacy": {
          "description": "The level of privacy this team should have",
          "type": "string"
        },
        "notification_setting": {
          "description": "The notification setting the team has set",
          "type": "string"
        },
        "html_url": {
          "type": "string",
          "format": "uri"
        },
        "repositories_url": {
          "type": "string",
          "format": "uri"
        },
        "slug": {
          "type": "string"
        },
        "ldap_dn": {
          "description": "Distinguished Name (DN) that team maps to within LDAP environment",
          "type": "string"
        },
        "type": {
          "description": "The ownership type of the team",
          "type": "string",
          "enum": [
            "enterprise",
            "organization"
          ]
        },
        "organization_id": {
          "type": "integer",
          "description": "Unique identifier of the organization to which this team belongs"
        },
        "enterprise_id": {
          "type": "integer",
          "description": "Unique identifier of the enterprise to which this team belongs"
        }
      },
      "required": [
        "id",
        "node_id",
        "url",
        "members_url",
        "name",
        "description",
        "permission",
        "html_url",
        "repositories_url",
        "slug",
        "type"
      ]
    },
    "team": {
      "title": "Team",
      "description": "Groups of organization members that gives permissions on specified repositories.",
      "type": "object",
      "properties": {
        "id": {
          "type": "integer"
        },
        "node_id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "slug": {
          "type": "string"
        },
        "description": {
          "type": [
            "string",
            "null"
          ]
        },
        "privacy": {
          "type": "string"
        },
        "notification_setting": {
          "type": "string"
        },
        "permission": {
          "type": "string"
        },
        "permissions": {
          "type": "object",
          "properties": {
            "pull": {
              "type": "boolean"
            },
            "triage": {
              "type": "boolean"
            },
            "push": {
              "type": "boolean"
            },
            "maintain": {
              "type": "boolean"
            },
            "admin": {
              "type": "boolean"
            }
          },
          "required": [
            "pull",
            "triage",
            "push",
            "maintain",
            "admin"
          ]
        },
        "url": {
          "type": "string",
          "format": "uri"
        },
        "html_url": {
          "type": "string",
          "format": "uri"
        },
        "members_url": {
          "type": "string"
        },
        "repositories_url": {
          "type": "string",
          "format": "uri"
        },
        "type": {
          "description": "The ownership type of the team",
          "type": "string",
          "enum": [
            "enterprise",
            "organization"
          ]
        },
        "access_source": {
          "description": "How the team's access to the repository was granted. This property is only\npresent when the team is returned in a repository context, such as\n`GET /repos/{owner}/{repo}/teams`.",
          "type": "string",
          "enum": [
            "direct",
            "organization",
            "enterprise"
          ]
        },
        "organization_id": {
          "type": "integer",
          "description": "Unique identifier of the organization to which this team belongs"
        },
        "enterprise_id": {
          "type": "integer",
          "description": "Unique identifier of the enterprise to which this team belongs"
        },
        "parent": {
          "$ref": "#/$defs/nullable-team-simple"
        }
      },
      "required": [
        "id",
        "node_id",
        "url",
        "members_url",
        "name",
        "description",
        "permission",
        "html_url",
        "repositories_url",
        "slug",
        "parent",
        "type"
      ]
    }
  }
}