GET/agents/automations/{automation_id}

Get an automation by ID

Returns an automation by ID without requiring repository context when its created_by user is the authenticated caller and the caller can read its repository. This includes both user-owned and repository-owned automations created by the caller but excludes repository-owned automations created by someone else even if the caller has write access to the repository.

Use the repository-scoped get operation for those automations. The response includes repository identity so clients can link back to the repository.

Fine-grained access tokens for "Get an automation by ID"

This endpoint works with the following fine-grained token types:

The fine-grained token must have one of the following permission sets for each repository accessed by this request:

  • "Agent tasks" repository permissions (read)
  • "Contents" repository permissions (read)

The required permission set depends on each repository's Automation permission configuration.

GitHub App installation access tokens are not supported for this endpoint.

1 parameter
automation_idstringrequired
The unique identifier of the automation.

4 status codes
200Automation retrieved successfully
idstringrequired
The unique identifier of the automation.
repositoryobjectrequired
Repository identity for an automation in cross-repository list responses.
namestringrequired
The name of the automation.
enabledbooleanoptional
Whether the automation is currently enabled.
owner_typestringoptional
Who owns the automation. `user` keeps it private to its creator and its runs act as that user. `repository` makes it belong to the repository, visible to anyone with read access to the repository, and its runs act as the Copilot app rather than as a person.
Allowed:userrepository
write_scopestringoptional
Controls which repository resources a run may modify. `trigger` limits writes to the resource that started the run, when one exists, and resources created during the run; `repository` allows writes to any resource in the repository. Supported values: `trigger`, `repository`.
Allowed:triggerrepositoryDefault:trigger
require_actor_write_permissionbooleanoptional
When true, event-triggered runs require the event actor to have repo write permission, even when the org's allow_read_access_triggers policy is enabled. Does not apply to interval-scheduled runs, which always run as the automation owner.
Default:false
triggersobjectoptional
Public trigger configuration keyed by stable public trigger identifier. Each trigger has a closed, trigger-specific configuration schema.
promptstringrequired
The prompt template for the automation.
toolsarray<string>optional
The tools available to the automation.
allowed_custom_agentsarray<string>optional
Custom agents (subagents) this automation is allowed to invoke.
modelstringoptional
The model to use for sessions triggered by this automation. Omit to use the platform default.
reasoning_effortstringoptional
The reasoning effort to use for sessions triggered by this automation. Omit or leave empty for no override. Currently supported values: `none`, `low`, `medium`, `high`, `xhigh`, `max`
created_atstringrequired
When the automation was created.
updated_atstringrequired
When the automation was last updated.
created_byobjectrequired
A GitHub user
400Bad request
messagestringrequired
Summary message (e.g. "Validation Failed", "Not Found")
errorsarray<object>optional
List of validation errors (present only for 422 responses)
documentation_urlstringrequired
URL to relevant API documentation
401Authentication required
messagestringrequired
Summary message (e.g. "Validation Failed", "Not Found")
errorsarray<object>optional
List of validation errors (present only for 422 responses)
documentation_urlstringrequired
URL to relevant API documentation
404Resource not found
messagestringrequired
Summary message (e.g. "Validation Failed", "Not Found")
errorsarray<object>optional
List of validation errors (present only for 422 responses)
documentation_urlstringrequired
URL to relevant API documentation

Error handling

A 400 is returned: Bad request. A 401 is returned: Authentication required. A 404 is returned: Resource not found.