{"meta":{"title":"Endpoints da API REST para migrações de usuários","intro":"Use a API REST para examinar, fazer backup ou migrar os dados do usuário armazenados GitHub.","product":"API REST","breadcrumbs":[{"href":"/pt/enterprise-server@3.22/rest","title":"API REST"},{"href":"/pt/enterprise-server@3.22/rest/migrations","title":"Migrações"},{"href":"/pt/enterprise-server@3.22/rest/migrations/users","title":"Usuários"}],"documentType":"article"},"body":"# Endpoints da API REST para migrações de usuários\n\nUse a API REST para examinar, fazer backup ou migrar os dados do usuário armazenados GitHub.\n\n## Sobre as migrações de usuário\n\nEsses terminais só estão disponíveis para proprietários de contas autenticadas. Para saber mais, confira [Autenticação na API REST](/pt/enterprise-server@3.22/rest/authentication/authenticating-to-the-rest-api).\n\nVocê pode usar esses pontos de extremidade para examinar, fazer backup ou migrar os dados do usuário armazenados no GitHub.com. Para obter uma lista de dados de migração que você pode baixar, consulte [Baixar um arquivo de migração de usuário](#download-a-user-migration-archive).\n\nPara fazer o download de um arquivo, você deverá iniciar uma migração de usuário primeiro. Depois que o status da migração for `exported`, você poderá baixar a migração.\n\nAo criar um arquivo de migração, ele ficará disponível para download por sete dias. No entanto, você pode excluir o arquivo de migração do usuário mais cedo, se desejar. Desbloqueie o repositório quando a migração for `exported` para começar a usar seu repositório novamente ou excluir o repositório se não precisar mais dos dados de origem.\n\n> \\[!NOTE]\n> Most endpoints use `Authorization: Bearer <YOUR-TOKEN>` and `Accept: application/vnd.github+json` headers, plus `X-GitHub-Api-Version: 2026-03-10`. Curl examples below omit these standard headers for brevity.\n\n## List user migrations\n\n```\nGET /user/migrations\n```\n\nLists all migrations a user has started.\n\n### Parameters\n\n#### Headers\n\n* **`accept`** (string)\n  Setting to `application/vnd.github+json` is recommended.\n\n#### Path and query parameters\n\n* **`per_page`** (integer)\n  The number of results per page (max 100). For more information, see \"Using pagination in the REST API.\"\n  Default: `30`\n\n* **`page`** (integer)\n  The page number of the results to fetch. For more information, see \"Using pagination in the REST API.\"\n  Default: `1`\n\n### HTTP response status codes\n\n* **200** - OK\n\n* **304** - Not modified\n\n* **401** - Requires authentication\n\n* **403** - Forbidden\n\n### Code examples\n\n#### Example\n\n**Request:**\n\n```curl\ncurl -L \\\n  -X GET \\\n  http(s)://HOSTNAME/api/v3/user/migrations\n```\n\n**Response schema (Status: 200):**\n\nArray of `Migration`:\n\n* `id`: required, integer, format: int64\n* `owner`: required, any of:\n  * **null**\n  * **Simple User**\n    * `name`: string or null\n    * `email`: string or null\n    * `login`: required, string\n    * `id`: required, integer, format: int64\n    * `node_id`: required, string\n    * `avatar_url`: required, string, format: uri\n    * `gravatar_id`: required, string or null\n    * `url`: required, string, format: uri\n    * `html_url`: required, string, format: uri\n    * `followers_url`: required, string, format: uri\n    * `following_url`: required, string\n    * `gists_url`: required, string\n    * `starred_url`: required, string\n    * `subscriptions_url`: required, string, format: uri\n    * `organizations_url`: required, string, format: uri\n    * `repos_url`: required, string, format: uri\n    * `events_url`: required, string\n    * `received_events_url`: required, string, format: uri\n    * `type`: required, string\n    * `site_admin`: required, boolean\n    * `starred_at`: string\n    * `user_view_type`: string\n* `guid`: required, string\n* `state`: required, string\n* `lock_repositories`: required, boolean\n* `exclude_metadata`: required, boolean\n* `exclude_git_data`: required, boolean\n* `exclude_attachments`: required, boolean\n* `exclude_releases`: required, boolean\n* `exclude_owner_projects`: required, boolean\n* `org_metadata_only`: required, boolean\n* `repositories`: required, array of `Simple Repository`:\n  * `id`: required, integer, format: int64\n  * `node_id`: required, string\n  * `name`: required, string\n  * `full_name`: required, string\n  * `owner`: required, `Simple User` (see above)\n  * `private`: required, boolean\n  * `html_url`: required, string, format: uri\n  * `description`: required, string or null\n  * `fork`: required, boolean\n  * `url`: required, string, format: uri\n  * `archive_url`: required, string\n  * `assignees_url`: required, string\n  * `blobs_url`: required, string\n  * `branches_url`: required, string\n  * `collaborators_url`: required, string\n  * `comments_url`: required, string\n  * `commits_url`: required, string\n  * `compare_url`: required, string\n  * `contents_url`: required, string\n  * `contributors_url`: required, string, format: uri\n  * `deployments_url`: required, string, format: uri\n  * `downloads_url`: required, string, format: uri\n  * `events_url`: required, string, format: uri\n  * `forks_url`: required, string, format: uri\n  * `git_commits_url`: required, string\n  * `git_refs_url`: required, string\n  * `git_tags_url`: required, string\n  * `issue_comment_url`: required, string\n  * `issue_events_url`: required, string\n  * `issues_url`: required, string\n  * `keys_url`: required, string\n  * `labels_url`: required, string\n  * `languages_url`: required, string, format: uri\n  * `merges_url`: required, string, format: uri\n  * `milestones_url`: required, string\n  * `notifications_url`: required, string\n  * `pulls_url`: required, string\n  * `releases_url`: required, string\n  * `stargazers_url`: required, string, format: uri\n  * `statuses_url`: required, string\n  * `subscribers_url`: required, string, format: uri\n  * `subscription_url`: required, string, format: uri\n  * `tags_url`: required, string, format: uri\n  * `teams_url`: required, string, format: uri\n  * `trees_url`: required, string\n  * `hooks_url`: required, string, format: uri\n* `url`: required, string, format: uri\n* `created_at`: required, string, format: date-time\n* `updated_at`: required, string, format: date-time\n* `node_id`: required, string\n* `archive_url`: string, format: uri\n* `exclude`: array of string\n\n## Start a user migration\n\n```\nPOST /user/migrations\n```\n\nInitiates the generation of a user migration archive.\n\n### Parameters\n\n#### Headers\n\n* **`accept`** (string)\n  Setting to `application/vnd.github+json` is recommended.\n\n#### Body parameters\n\n* **`lock_repositories`** (boolean)\n  Lock the repositories being migrated at the start of the migration\n\n* **`exclude_metadata`** (boolean)\n  Indicates whether metadata should be excluded and only git source should be included for the migration.\n\n* **`exclude_git_data`** (boolean)\n  Indicates whether the repository git data should be excluded from the migration.\n\n* **`exclude_attachments`** (boolean)\n  Do not include attachments in the migration\n\n* **`exclude_releases`** (boolean)\n  Do not include releases in the migration\n\n* **`exclude_owner_projects`** (boolean)\n  Indicates whether projects owned by the organization or users should be excluded.\n\n* **`org_metadata_only`** (boolean)\n  Indicates whether this should only include organization metadata (repositories array should be empty and will ignore other flags).\n  Default: `false`\n\n* **`exclude`** (array of strings)\n  Exclude attributes from the API response to improve performance\n  Supported values are: repositories\n\n* **`repositories`** (array of strings) (required)\n\n### HTTP response status codes\n\n* **201** - Created\n\n* **304** - Not modified\n\n* **401** - Requires authentication\n\n* **403** - Forbidden\n\n* **422** - Validation failed, or the endpoint has been spammed.\n\n### Code examples\n\n#### Example\n\n**Request:**\n\n```curl\ncurl -L \\\n  -X POST \\\n  http(s)://HOSTNAME/api/v3/user/migrations \\\n  -d '{\n  \"repositories\": [\n    \"octocat/Hello-World\"\n  ],\n  \"lock_repositories\": true\n}'\n```\n\n**Response schema (Status: 201):**\n\n* `id`: required, integer, format: int64\n* `owner`: required, any of:\n  * **null**\n  * **Simple User**\n    * `name`: string or null\n    * `email`: string or null\n    * `login`: required, string\n    * `id`: required, integer, format: int64\n    * `node_id`: required, string\n    * `avatar_url`: required, string, format: uri\n    * `gravatar_id`: required, string or null\n    * `url`: required, string, format: uri\n    * `html_url`: required, string, format: uri\n    * `followers_url`: required, string, format: uri\n    * `following_url`: required, string\n    * `gists_url`: required, string\n    * `starred_url`: required, string\n    * `subscriptions_url`: required, string, format: uri\n    * `organizations_url`: required, string, format: uri\n    * `repos_url`: required, string, format: uri\n    * `events_url`: required, string\n    * `received_events_url`: required, string, format: uri\n    * `type`: required, string\n    * `site_admin`: required, boolean\n    * `starred_at`: string\n    * `user_view_type`: string\n* `guid`: required, string\n* `state`: required, string\n* `lock_repositories`: required, boolean\n* `exclude_metadata`: required, boolean\n* `exclude_git_data`: required, boolean\n* `exclude_attachments`: required, boolean\n* `exclude_releases`: required, boolean\n* `exclude_owner_projects`: required, boolean\n* `org_metadata_only`: required, boolean\n* `repositories`: required, array of `Simple Repository`:\n  * `id`: required, integer, format: int64\n  * `node_id`: required, string\n  * `name`: required, string\n  * `full_name`: required, string\n  * `owner`: required, `Simple User` (see above)\n  * `private`: required, boolean\n  * `html_url`: required, string, format: uri\n  * `description`: required, string or null\n  * `fork`: required, boolean\n  * `url`: required, string, format: uri\n  * `archive_url`: required, string\n  * `assignees_url`: required, string\n  * `blobs_url`: required, string\n  * `branches_url`: required, string\n  * `collaborators_url`: required, string\n  * `comments_url`: required, string\n  * `commits_url`: required, string\n  * `compare_url`: required, string\n  * `contents_url`: required, string\n  * `contributors_url`: required, string, format: uri\n  * `deployments_url`: required, string, format: uri\n  * `downloads_url`: required, string, format: uri\n  * `events_url`: required, string, format: uri\n  * `forks_url`: required, string, format: uri\n  * `git_commits_url`: required, string\n  * `git_refs_url`: required, string\n  * `git_tags_url`: required, string\n  * `issue_comment_url`: required, string\n  * `issue_events_url`: required, string\n  * `issues_url`: required, string\n  * `keys_url`: required, string\n  * `labels_url`: required, string\n  * `languages_url`: required, string, format: uri\n  * `merges_url`: required, string, format: uri\n  * `milestones_url`: required, string\n  * `notifications_url`: required, string\n  * `pulls_url`: required, string\n  * `releases_url`: required, string\n  * `stargazers_url`: required, string, format: uri\n  * `statuses_url`: required, string\n  * `subscribers_url`: required, string, format: uri\n  * `subscription_url`: required, string, format: uri\n  * `tags_url`: required, string, format: uri\n  * `teams_url`: required, string, format: uri\n  * `trees_url`: required, string\n  * `hooks_url`: required, string, format: uri\n* `url`: required, string, format: uri\n* `created_at`: required, string, format: date-time\n* `updated_at`: required, string, format: date-time\n* `node_id`: required, string\n* `archive_url`: string, format: uri\n* `exclude`: array of string\n\n## Download a user migration archive\n\n```\nGET /user/migrations/{migration_id}/archive\n```\n\nFetches the URL to download the migration archive as a tar.gz file. Depending on the resources your repository uses, the migration archive can contain JSON files with data for these objects:\n\nattachments\nbases\ncommit\\_comments\nissue\\_comments\nissue\\_events\nissues\nmilestones\norganizations\nprojects\nprotected\\_branches\npull\\_request\\_reviews\npull\\_requests\nreleases\nrepositories\nreview\\_comments\nschema\nusers\n\nThe archive will also contain an attachments directory that includes all attachment files uploaded to GitHub.com and a repositories directory that contains the repository's Git data.\n\n### Parameters\n\n#### Headers\n\n* **`accept`** (string)\n  Setting to `application/vnd.github+json` is recommended.\n\n#### Path and query parameters\n\n* **`migration_id`** (integer) (required)\n  The unique identifier of the migration.\n\n### HTTP response status codes\n\n* **302** - Found\n\n* **304** - Not modified\n\n* **401** - Requires authentication\n\n* **403** - Forbidden\n\n## List repositories for a user migration\n\n```\nGET /user/migrations/{migration_id}/repositories\n```\n\nLists all the repositories for this user migration.\n\n### Parameters\n\n#### Headers\n\n* **`accept`** (string)\n  Setting to `application/vnd.github+json` is recommended.\n\n#### Path and query parameters\n\n* **`migration_id`** (integer) (required)\n  The unique identifier of the migration.\n\n* **`per_page`** (integer)\n  The number of results per page (max 100). For more information, see \"Using pagination in the REST API.\"\n  Default: `30`\n\n* **`page`** (integer)\n  The page number of the results to fetch. For more information, see \"Using pagination in the REST API.\"\n  Default: `1`\n\n### HTTP response status codes\n\n* **200** - OK\n\n* **404** - Resource not found\n\n### Code examples\n\n#### Example\n\n**Request:**\n\n```curl\ncurl -L \\\n  -X GET \\\n  http(s)://HOSTNAME/api/v3/user/migrations/MIGRATION_ID/repositories\n```\n\n**Response schema (Status: 200):**"}