issues

Create an issue artifact

Changed on

Creates an artifact attached to an issue.

The artifact type defaults to generic when omitted. Creating an artifact requires permission to update the issue.

The request can return 403 if the repository is read-only or locked, or a GitHub App installation has only issues: read permission.

To create an HTML artifact, set type to embedded_html and provide the HTML source in body. Open the returned html_url to inspect the source, then select Preview to view the rendered artifact. Select Show source to return to the HTML source.

post/repos/{owner}/{repo}/issues/{issue_number}/artifacts

Request

  • Base URL
    https://api.github.com
  • URL
    https://api.github.com/repos/{owner}/{repo}/issues/{issue_number}/artifacts
  • Auth
    none declared

Path parameters

ownerstring required

The account owner of the repository. The name is not case sensitive.

repostring required

The name of the repository without the .git extension. The name is not case sensitive.

issue_numberinteger required

The number that identifies the issue.

Request body

type'generic' | 'link' | 'plan' | 'embedded_html'

The artifact type.

namestring required

The human-readable name of the artifact.

bodystring required

The artifact content. For embedded_html artifacts, provide the HTML source.

Response

The created artifact.

idinteger required

The globally unique identifier of the artifact.

html_urlstring uri

The canonical browser URL for the artifact in its issue context.

numberinteger required

The artifact number within the issue.

typestring required

The artifact type. The types supported for external creation and filtering are:

  • generic is a general-purpose Markdown document.
  • link represents a named link.
  • plan is a Markdown plan.
  • embedded_html is a self-contained HTML document. Its body contains the HTML source.
namestring required

The human-readable name of the artifact.

bodystring required

The artifact content. For embedded_html artifacts, this is the HTML source.

body_htmlstring nullable required

The artifact content rendered as HTML, or null if rendering times out or is skipped to protect the response's time budget. The raw content remains available in body.

descriptionstring required

A short, generated summary of the artifact.

created_atstring date-time nullable required

The time the artifact was created.

updated_atstring date-time nullable required

The time the artifact was last updated.

Example response

{
  "id": 42,
  "html_url": "https://github.com/octocat/Hello-World/issues/1347/artifacts/1",
  "number": 1,
  "type": "plan",
  "name": "Implementation plan",
  "body": "## Plan\n\nBuild the feature in two phases.",
  "body_html": "<h2>Plan</h2>\n<p>Build the feature in two phases.</p>",
  "description": "Build the feature in two phases.",
  "creator": {
    "login": "octocat",
    "id": 1
  },
  "updated_by_actor": {
    "login": "monalisa",
    "id": 2
  },
  "created_at": "2026-09-21T15:00:00Z",
  "updated_at": "2026-09-21T15:30:00Z"
}

Changes