---
title: "Edit a post's design"
method: POST
path: "/api/businesses/{business_id}/posts/{post_id}/design/edit"
tags: ["posts"]
---

# Edit a post's design

`POST /api/businesses/{business_id}/posts/{post_id}/design/edit`

## Request

- Base URL: `https://api.mymarky.ai`
- URL: `https://api.mymarky.ai/api/businesses/{business_id}/posts/{post_id}/design/edit`
- Auth: HTTP bearer

Edit a post's design with a plain-language instruction, then re-render.

Example instructions: "make the headline tan", "center the logo", "shrink the
body text". We turn the instruction into typed edits, apply + render + save
them, and sync the new image onto the post. Renders synchronously.

Errors:
    400 invalid_value: The business_id or post_id is not a valid UUID.
    400 invalid_request: This post has no design to edit.
    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 business or post with that ID exists in this business.
    429 rate_limit_exceeded: You sent too many requests this minute.

## Path parameters

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

## Headers

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

## Request body

- PostDesignEditRequest: A plain-language instruction to change a post's design.
  - `instruction` string, required: What to change, e.g. 'make the headline tan' or 'center the logo'.

## Response `200`

Successful Response

- PostDesignEditResponse: Result of a natural-language design edit.
  - `post_id` string, required: The post that was edited.
  - `design_id` string, required: The design that was edited.
  - `rendered_url` string, nullable: URL of the final rendered design image.
  - `media_urls` string[]: Full media URLs written back to the post.
  - `summary` string, required: Short description of what changed.
  - `applied` integer, required: Number of edits successfully applied.
  - `errors` string[]: Edits that could not be applied.

## 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)
