---
title: "Queue async post generation"
method: POST
path: "/v1/posts/generate"
tags: ["Content"]
---

# Queue async post generation

`POST /v1/posts/generate`

## Request body

- object
  - `contentType` 'changelog' | 'blog_post' | 'linkedin_post' | 'twitter_post' | 'image', required
  - `lookbackWindow` 'current_day' | 'yesterday' | 'last_7_days' | 'last_14_days' | 'last_30_days'
  - `brandVoiceId` string
  - `brandIdentityId` string, nullable
  - `repositoryIds` string[] — Deprecated. Use integrations.github with GitHub integration IDs instead.
  - `linearIntegrationIds` string[] — Deprecated. Use integrations.linear with Linear integration IDs instead.
  - `integrations` object
    - `github` string[]
    - `linear` string[]
  - `github` object
    - `repositories` object[], required
      - `owner` string, required
      - `repo` string, required
  - `dataPoints` object
    - `includePullRequests` boolean
    - `includeCommits` boolean
    - `includeReleases` boolean
    - `includeLinearData` boolean
  - `selectedItems` object
    - `commitShas` string[]
    - `pullRequestNumbers` object[]
      - `repositoryId` string, required
      - `number` number, required
    - `releaseTagNames` union[]
      - union
        - string
        - object
          - `repositoryId` string, required
          - `tagName` string, required
    - `linearIssueIds` object[]
      - `integrationId` string, required
      - `issueId` string, required

## Response `202`

Post generation queued successfully

- object
  - `organization` object, required
    - `id` string, required
    - `slug` string, required
    - `name` string, required
    - `logo` string, nullable, required
  - `job` object, required
    - `id` string, required
    - `organizationId` string, required
    - `status` 'queued' | 'running' | 'completed' | 'failed' | 'skipped', required
    - `contentType` 'changelog' | 'blog_post' | 'linkedin_post' | 'twitter_post' | 'image', required
    - `lookbackWindow` 'current_day' | 'yesterday' | 'last_7_days' | 'last_14_days' | 'last_30_days', required
    - `repositoryIds` string[], required
    - `brandVoiceId` string, nullable, required
    - `workflowRunId` string, nullable, required
    - `postId` string, nullable, required
    - `error` string, nullable, required
    - `source` 'api' | 'dashboard', required
    - `createdAt` string, required
    - `updatedAt` string, required
    - `completedAt` string, nullable, required

## Other responses

- `400` — Invalid request body
- `401` — Missing or invalid API key
- `403` — Forbidden
- `404` — Organization not found
- `429` — Rate limit exceeded. This endpoint allows 10 requests per 1 minute per organization.
- `503` — Content generation is unavailable

---

[API](https://skmtc.net/usenotra/apis/notra-api.md) · [All operations](https://skmtc.net/usenotra/apis/notra-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/usenotra/notra-api/versions/4e07496e06b0/schema)
