---
title: "Get job status"
method: GET
path: "/api/businesses/{business_id}/jobs/{job_id}"
tags: ["businesses"]
---

# Get job status

`GET /api/businesses/{business_id}/jobs/{job_id}`

## Request

- Base URL: `https://api.mymarky.ai`
- URL: `https://api.mymarky.ai/api/businesses/{business_id}/jobs/{job_id}`
- Auth: HTTP bearer

Poll a generation job for completion.

Returns `pending` while generating, `completed` with posts data when done,
or `failed` with an error message. Poll every 2-5 seconds.

Errors:
    401 authentication_required: API key or token is missing, invalid, or revoked.
    403 permission_denied: Your plan does not include API access, or this business is not in your org.
    404 resource_not_found: No job with that ID exists, or it is not in this business.
    429 rate_limit_exceeded: You sent too many requests this minute.

## Path parameters

- `business_id` string, required: A UUID identifier.
- `job_id` string, required: A UUID identifier.

## Headers

- `Marky-Version` '2026-04-08' | '2026-07-17' | '2026-08-02' | '2026-08-04' | '2026-08-06'

## Response `200`

Successful Response

- JobStatusResponse
  - `job_id` string, required: ID to poll for status
  - `status` string, required: Current job status
  - `data` PostResult[], nullable: Generated posts (when status=completed)
    - `post_id` string, required: ID of the created post
    - `title` string: Short post title (max 7 words) for platforms that use titles
    - `caption` string, required
    - `idea` string, required: The generated post idea
    - `creative_format` string: The creative format used for this post
    - `text_content` object, required: component_id → text for all filled slots
    - `slides` SlideResult[], required: Images used in the design (one per page with fillers)
      - `image_url` string, required: URL of the selected image
      - `image_keyword` string, required: Search keyword used to find this image
      - `media_id` string, nullable: Library media id of this image, if it came from the library
    - `topic_title` string, required: Topic used for this post
    - `category_name` string, nullable, required: Category of the topic
    - `template_id` string, required: Design template used
    - `theme_name` string, required: Theme of the template
    - `rendered_urls` string[]: CloudFront URLs of rendered slide images
    - `score` object, nullable: Quality scores: hook_caption, hook_visual, depth, design_text, design_photos, overall
  - `error` string, nullable: Error message (when status=failed)

## Other responses

- `400`: Bad request — the input was malformed or otherwise invalid.
- `401`: Authentication failed — the API key is missing or invalid.
- `403`: Forbidden — the key is valid but may not access this resource.
- `404`: Not found — no resource matches the id in the path.
- `422`: Validation error — one or more fields failed validation.
- `429`: Rate limited — retry after the window resets (see Retry-After).
- `500`: Server error — something failed on our side; retry or quote X-Request-Id.

---

[API](https://skmtc.dev/mymarky/apis/marky-public-api.md) · [All operations](https://skmtc.dev/mymarky/apis/marky-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/mymarky/apis/marky-public-api/revisions/25aeacae455c?raw)
