> ## Documentation Index
> Fetch the complete documentation index at: https://docs.infinipost.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Post

> Retrieve details for a specific scheduled post

## Path Parameters

<ParamField path="postId" type="string" required>
  The unique post identifier.
</ParamField>

## Response

<ResponseField name="postId" type="string">
  Unique identifier for the post.
</ResponseField>

<ResponseField name="accountId" type="string">
  The account this post is scheduled for.
</ResponseField>

<ResponseField name="platform" type="string">
  Platform: `tiktok` or `instagram`.
</ResponseField>

<ResponseField name="contentType" type="string">
  `video` or `slides`.
</ResponseField>

<ResponseField name="contentUrl" type="string | array">
  The content to be posted. When `contentType` is `video`, this is a single URL string. When `contentType` is `slides`, this is an array of image URL strings.
</ResponseField>

<ResponseField name="thumbnailUrl" type="string">
  URL of the video thumbnail. `null` for slideshow posts or if not yet generated.
</ResponseField>

<ResponseField name="caption" type="string">
  Post caption.
</ResponseField>

<ResponseField name="soundId" type="string">
  ID of the sound attached to this post. `null` if no sound.
</ResponseField>

<ResponseField name="timezone" type="string">
  IANA timezone the `scheduledTime` was submitted in (e.g. `America/New_York`).
</ResponseField>

<ResponseField name="scheduledTime" type="string">
  UTC ISO 8601 timestamp of when the post is scheduled to go live.
</ResponseField>

<ResponseField name="status" type="string">
  Current status: `generated`, `pending_render`, `posted`, or `failed`. When `failed`, see the `error` field for a description of what went wrong.
</ResponseField>

<ResponseField name="error" type="string">
  Human-readable description of why the post failed. Only present when `status` is `failed`. `null` otherwise.
</ResponseField>

<ResponseField name="postedAt" type="string">
  ISO 8601 timestamp of when the post went live. `null` if not yet posted.
</ResponseField>

<ResponseField name="failedAt" type="string">
  ISO 8601 timestamp of when the post failed. `null` if the post has not failed.
</ResponseField>

<ResponseField name="createdAt" type="string">
  ISO 8601 timestamp of when the post was created.
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl "https://api.infinipost.co/v1/posts/post_abc123" \
    -H "Authorization: Bearer YOUR_API_KEY"
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch('https://api.infinipost.co/v1/posts/post_abc123', {
    headers: {
      'Authorization': 'Bearer YOUR_API_KEY'
    }
  });

  const data = await response.json();
  ```
</RequestExample>

<ResponseExample>
  ```json Video Post theme={null}
  {
    "postId": "post_abc123",
    "accountId": "acc_1a2b3c4d5e",
    "platform": "tiktok",
    "contentType": "video",
    "contentUrl": "https://storage.googleapis.com/...",
    "thumbnailUrl": "https://storage.googleapis.com/.../thumb.jpg",
    "caption": "Check out this amazing content! #viral",
    "soundId": "snd_xyz789",
    "timezone": "America/New_York",
    "scheduledTime": "2024-04-22T16:00:00Z",
    "status": "posted",
    "error": null,
    "postedAt": "2024-04-22T16:00:08Z",
    "failedAt": null,
    "createdAt": "2024-04-21T20:15:00Z"
  }
  ```

  ```json Slideshow Post theme={null}
  {
    "postId": "post_def456",
    "accountId": "acc_1a2b3c4d5e",
    "platform": "instagram",
    "contentType": "slides",
    "contentUrl": [
      "https://storage.googleapis.com/.../slide1.jpg",
      "https://storage.googleapis.com/.../slide2.jpg",
      "https://storage.googleapis.com/.../slide3.jpg"
    ],
    "thumbnailUrl": null,
    "caption": "Step by step tutorial 🔥",
    "soundId": null,
    "timezone": "America/Los_Angeles",
    "scheduledTime": "2024-04-22T19:00:00Z",
    "status": "posted",
    "error": null,
    "postedAt": "2024-04-22T19:00:12Z",
    "failedAt": null,
    "createdAt": "2024-04-21T20:15:00Z"
  }
  ```

  ```json Failed Post theme={null}
  {
    "postId": "post_ghi789",
    "accountId": "acc_1a2b3c4d5e",
    "platform": "tiktok",
    "contentType": "video",
    "contentUrl": "https://storage.googleapis.com/...",
    "thumbnailUrl": null,
    "caption": "Check out this! #viral",
    "soundId": "snd_xyz789",
    "timezone": "America/New_York",
    "scheduledTime": "2024-04-22T16:00:00Z",
    "status": "failed",
    "error": "Sound is not available for use due to copyright or is not available in the account's country or region.",
    "postedAt": null,
    "failedAt": "2024-04-22T16:02:14Z",
    "createdAt": "2024-04-21T20:15:00Z"
  }
  ```
</ResponseExample>

## Error Responses

```json Unauthorized theme={null}
{
  "error": {
    "code": "unauthenticated",
    "message": "Invalid or missing API key"
  }
}
```

```json Post Not Found theme={null}
{
  "error": {
    "code": "not_found",
    "message": "Post post_abc123 not found"
  }
}
```

```json Server Error theme={null}
{
  "error": {
    "code": "internal",
    "message": "An unexpected error occurred"
  }
}
```
