Approvals

Approve post

Approves a post waiting for approval (pending_approval). With an empty body the post is scheduled as requested: in the queue position or at the time the member asked for. Send scheduled_at to pick another time, or publish_now to publish it now. When the requested time has passed (or the member asked to publish now) and neither is sent, the request fails with 422 on scheduled_at: The requested time has passed. Choose a new time. A post that is no longer pending fails with 422: This post is no longer waiting for approval. The member who asked is emailed about the decision.

API keys belong to workspace admins, who publish directly, so posts created or edited through the API never wait for approval. These endpoints decide the requests of members who need approval.

post/posts/{post}/approve

Request

  • Base URL: https://app.trypost.it/api
  • URL: https://app.trypost.it/api/posts/{post}/approve
  • Auth: HTTP bearer

Request body

publish_nowboolean

Publish now instead of at the requested time. Cannot be combined with scheduled_at.

scheduled_atstring date-time nullable

New time; in the future and before 2038-01-19. Cannot be combined with publish_now.

Response

The approved post.

idstring uuid
post_group_idstring uuid nullable

Shared by the posts created in one batch.

contentstring nullable

Post text, stored as sent (posts written in the app hold the editor's HTML).

status'draft' | 'pending_approval' | 'scheduled' | 'publishing' | 'published' | 'partially_published' | 'failed'

pending_approval is a post a member who needs approval asked to schedule or publish.

schedule_mode'queue' | 'custom' | 'null' nullable

queue: the post holds a slot of the channel's posting schedule. custom: it is scheduled at its own time.

scheduled_atstring nullable

UTC, format Y-m-d H:i:s.

published_atstring nullable

UTC, format Y-m-d H:i:s.

approval_requested_atstring nullable

UTC, format Y-m-d H:i:s.

approved_atstring nullable

UTC, format Y-m-d H:i:s.

origin'trypost' | 'network'

network for posts imported from the network (published outside TryPost).

created_atstring

UTC, format Y-m-d H:i:s.

updated_atstring

UTC, format Y-m-d H:i:s.

Example response

{
  "id": "9d3c1f2a-6b4e-4c8a-9f1e-2a7b5c8d0e41",
  "post_group_id": "9d3c1f29-e0a1-4b7c-8d2e-5f6a7b8c9d03",
  "author": {
    "id": "9b1e2d3c-4f5a-4b6c-8d7e-9f0a1b2c3d4e",
    "name": "Ana Souza"
  },
  "content": "We just shipped scheduled threads. Here is how they work.",
  "media": [
    {
      "id": "9d3c1f30-8a9b-4c0d-9e1f-2a3b4c5d6e7f",
      "path": "medias/9d3c1f30-8a9b-4c0d-9e1f-2a3b4c5d6e7f.jpg",
      "url": "https://media.trypost.it/medias/9d3c1f30-8a9b-4c0d-9e1f-2a3b4c5d6e7f.jpg",
      "type": "image",
      "mime_type": "image/jpeg",
      "original_filename": "launch.jpg",
      "size": 482113,
      "meta": {
        "width": 1080,
        "height": 1350,
        "alt_text": "Product launch banner"
      }
    }
  ],
  "status": "scheduled",
  "schedule_mode": "custom",
  "scheduled_at": "2026-10-12 14:00:00",
  "published_at": null,
  "approval_requested_by": null,
  "approval_requested_at": null,
  "approved_by": null,
  "approved_at": null,
  "recurrence": null,
  "origin": "trypost",
  "platforms": [
    {
      "id": "9d3c1f2b-1a2b-4c3d-8e4f-5a6b7c8d9e10",
      "platform": "x",
      "content_type": "x_post",
      "meta": {
        "thread_replies": [
          {
            "text": "2/ Replies publish under the first post.",
            "media": []
          }
        ]
      },
      "status": "pending",
      "enabled": true,
      "platform_url": null,
      "published_at": null,
      "error_message": null,
      "display_name": "TryPost",
      "display_username": "trypostit",
      "display_avatar": "https://pbs.twimg.com/profile_images/1790000000000000000/avatar_400x400.jpg",
      "social_account": {
        "id": "9c8b7a65-4d3e-4f2a-8b1c-0d9e8f7a6b54",
        "platform": "x",
        "display_name": "TryPost",
        "username": "trypostit",
        "status": "connected",
        "has_posting_schedule": true,
        "timezone": "America/Sao_Paulo",
        "posting_goal": 5,
        "max_content_length": 280,
        "long_posts": false,
        "verified_badge": null
      }
    }
  ],
  "labels": [
    {
      "id": "9c0d1e2f-3a4b-4c5d-8e6f-7a8b9c0d1e2f",
      "name": "Launch",
      "color": "#2563EB",
      "created_at": "2026-09-01 10:00:00",
      "updated_at": "2026-09-01 10:00:00"
    }
  ],
  "created_at": "2026-10-08 13:20:11",
  "updated_at": "2026-10-08 13:20:11"
}

Changes

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