Works with all AI agents

Connect your AI agent

Choose your assistant and connect in seconds.

Add to Claude

Works on every Claude plan, including free. Full Claude guide

  1. 1

    Add to Claude

    One click from Claude’s connector directory.

  2. 2

    Sign up or sign in

    Takes seconds, then you’re sent straight back.

  3. 3

    Ask Claude

    “Plan and schedule my posts for next week.”

POST/posts

Create or schedule a post with the PostEverywhere API

Omit `scheduled_for` to publish immediately; provide it (ISO 8601, assumed UTC when no offset given) to schedule. Set `draft: true` to save a native draft instead (no destinations are created and nothing publishes until `POST /posts/{id}/schedule`). Attach media by id (see [media requirements per platform](/media-requirements)), and use `platform_content` for per-platform overrides — the [Platform Guides](/platforms/instagram) document every option. Field-name handling: camelCase aliases (`accountIds`, `mediaIds`, `scheduledFor`, `platformContent`) and the deprecated `scheduled_at` alias are accepted. Fields whose names imply a different shape (`media`, `media_id`, `mediaId`, `attachments`) are rejected with `400 invalid_field_name`. Content rules: `content` may be omitted only when `platform_content` provides at least one per-platform caption or media is attached. Max 10,000 characters. Max 50 `account_ids`. Instagram captions with more than 30 hashtags are rejected (`instagram_hashtag_limit_exceeded`). WordPress blog posts use `platform_content.wordpress` (see `WordPressBlogPost`). Bad settings return `400 wordpress_post_invalid` with every problem in `details.errors`; a WordPress target with no title returns `400 wordpress_title_required`. A long blog body goes in `platform_content.wordpress.content` (up to 200,000 characters), not in `content`. Media referenced by `media_ids` must exist in the workspace and be `ready` (`media_not_found` / `media_not_ready` otherwise; media stuck in `uploading` is auto-finalized via the `/complete` flow when the file was actually uploaded). Platform media requirements are validated pre-flight (`platform_requirement_violation`, e.g. video to Pinterest). A circuit breaker refuses a request body that has already failed 5+ times in 6 hours for the same key with `422 permanent_failure_circuit_breaker` — change any field to reset. Error codes: `invalid_json`, `wrong_content_type_for_endpoint`, `invalid_field_name`, `validation_error`, `content_too_long`, `account_ids_required`, `too_many_accounts`, `invalid_timezone`, `invalid_accounts`, `instagram_hashtag_limit_exceeded`, `invalid_datetime`, `past_schedule_time`, `media_not_found`, `media_not_ready`, `platform_requirement_violation`, `post_creation_failed`, `rate_limit_exceeded`, `permanent_failure_circuit_breaker`, `x_article_invalid`, `wordpress_post_invalid`, `wordpress_title_required`.

Guides: Quick start: create your first post · Bulk operations guide

This endpoint accepts a JSON request body. See the posts guide for a worked example.

Responses

  • 201Post created. Regular creates return the full publishing topology (`destinations`); `draft: true` returns the smaller draft shape with `next_steps`.
  • 400
  • 401
  • 402
  • 403
  • 422Circuit breaker open for this exact request body
  • 429
  • 500

More in Posts