posts

Generate posts

Generate social media posts from your content. DEPRECATED — prefer create_post.

Prefer create_post: author the caption (and pick media) yourself and push the post in directly — you get full control and it's free. Use THIS server-side generation pipeline only when the user explicitly asks Marky to write/design the content for them. It spends credits and counts against the org's monthly post quota.

Provide text content, a website URL, or a custom idea and we'll create visual social posts as drafts in your queue. Returns a job ID — poll GET /api/businesses/{business_id}/jobs/{job_id} until status is completed or failed.

Rate limits: 100 requests/minute, 2,000/day, 10,000/week; 200 posts/month per org.

Errors: 400 missing_field: None of content, website_url, or custom_idea was given. 400 invalid_value: The business_id is not a valid UUID. 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 with that ID exists. 429 rate_limit_exceeded: You hit the per-minute rate limit or the monthly post quota.

post/api/businesses/{business_id}/posts/generate

Request

  • Base URL: https://api.mymarky.ai
  • URL: https://api.mymarky.ai/api/businesses/{business_id}/posts/generate
  • Auth: HTTP bearer

Path parameters

business_idstring required

A UUID identifier.

Headers

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

Opt into a dated API version. Omit to stay on the floor (2026-04-08) forever — unpinned clients never break. Pin to a newer date (e.g. 2026-08-06) to receive the newest response shapes. Unknown values fall back to the floor. See https://docs.mymarky.ai for the versioning model.

Request body

contentstring nullable

Plain text content to generate posts from (used as the post topic).

website_urlstring nullable

URL to scrape for content context. The page text is used as input for generation.

custom_ideastring nullable

Skip ideation and use this text directly as the post idea for all generated posts.

countinteger

Number of posts to generate (1-10).

creative_formatsstring[] nullable

Which post formats to generate (round-robins across the list). One or more of: design, carousel, meme, image, gif, video, ai-image, ai-video. Omit to use the business's default mix.

ai_image_type'design' | 'photo' | 'infographic' | 'meme' nullable

Sub-type for AI-image generation (only used when a creative_format is 'ai-image'): design, photo, infographic, or meme.

ai_image_stylestring nullable

Visual style modifier for AI images (e.g. 'corporate-flat', 'isometric', 'comic'). Only used for 'ai-image'.

template_idsstring[] nullable

Restrict design generation to these specific template IDs instead of auto-selecting.

voicestring nullable

Override the brand voice/tone for this generation only (the business's saved Profile is used when omitted).

include_stockboolean nullable

Whether stock photos (Unsplash/Pexels) may be used. Omit to use the business's saved preference.

aspect_ratiostring nullable

Aspect ratio for generated media, e.g. '1:1' (square), '9:16' (story/reel), '4:5' (portrait). Omit for the business default.

Response

Generation job created

job_idstring required

ID to poll for status

statusstring required

Current job status

errorstring nullable

Error message (when status=failed)

Changes

No recorded changes to this operation across all 1 revision of this API.