---
title: "Get a post"
description: "One post and its status. Add `?insights=1` for its live platform status and metrics instead. Needs the **read** permission."
---

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

Path: mixetape API › Accounts and posts

`GET /api/v1/posts/{id}`

One post and its status. Add `?insights=1` for its live platform status and metrics instead. Needs the **read** permission.

## Authentication

- `apiKey`, http, header `Authorization`

## Path parameters

- `getPostRest.path.id` (string, required)

## Query parameters

- `getPostRest.query.insights` (string, optional) — Any value: answer with get_post_insights' result instead

## Code samples

### cURL

```curl
curl --request GET \
  --url https://mixetape.com/api/v1/posts/string \
  --header 'Authorization: Bearer <token>'
```

### TypeScript

```typescript
const url = 'https://mixetape.com/api/v1/posts/string';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

fetch(url, options)
  .then(res => res.json())
  .then(json => console.log(json))
  .catch(err => console.error(err));
```

### Python

```python
import requests

url = "https://mixetape.com/api/v1/posts/string"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.text)
```

## Responses

### 200

The post.

#### Example

```json
{
  "post": {
    "id": "string",
    "accountId": "string",
    "provider": "string",
    "mediaUrl": "string",
    "caption": "string",
    "metadata": {},
    "scheduledAt": "2019-08-24T14:15:22Z",
    "leadMinutes": 0,
    "status": "scheduled",
    "platformPostId": "string",
    "platformUrl": "string",
    "error": "string",
    "attempts": 0,
    "publishedAt": "2019-08-24T14:15:22Z",
    "createdAt": "2019-08-24T14:15:22Z",
    "updatedAt": "2019-08-24T14:15:22Z"
  }
}
```

- `getPostRest.response.200.post` (object, required)
  - `getPostRest.response.200.post.id` (string, required)
  - `getPostRest.response.200.post.accountId` (string, required)
  - `getPostRest.response.200.post.provider` (string, required)
  - `getPostRest.response.200.post.mediaUrl` (string, required)
  - `getPostRest.response.200.post.scheduledAt` (string, required) — When it goes live
    - format `date-time`
  - `getPostRest.response.200.post.status` (string, required)
    - one of `"scheduled"`, `"publishing"`, `"uploaded"`, `"published"`, `"failed"`, `"cancelled"`
  - `getPostRest.response.200.post.caption` (string | null, optional)
  - `getPostRest.response.200.post.metadata` (object | null, optional) — The platform's own fields
  - `getPostRest.response.200.post.leadMinutes` (integer | null, optional) — Uploaded or prepared this long before scheduledAt
  - `getPostRest.response.200.post.platformPostId` (string | null, optional)
  - `getPostRest.response.200.post.platformUrl` (string | null, optional)
  - `getPostRest.response.200.post.error` (string | null, optional) — Why it failed, when it did
  - `getPostRest.response.200.post.attempts` (integer, optional)
  - `getPostRest.response.200.post.publishedAt` (string | null, optional)
    - format `date-time`
  - `getPostRest.response.200.post.createdAt` (string, optional)
    - format `date-time`
  - `getPostRest.response.200.post.updatedAt` (string, optional)
    - format `date-time`

### 400

The request is invalid; `error` says why.

#### Example

```json
{
  "error": "string"
}
```

- `getPostRest.response.400.error` (string, required) — What went wrong, in plain words

### 401

No valid API key.

#### Example

```json
{
  "error": "string"
}
```

- `getPostRest.response.401.error` (string, required) — What went wrong, in plain words

### 403

The key lacks the permission this needs.

#### Example

```json
{
  "error": "string"
}
```

- `getPostRest.response.403.error` (string, required) — What went wrong, in plain words

### 404

Not found, or not yours.

#### Example

```json
{
  "error": "string"
}
```

- `getPostRest.response.404.error` (string, required) — What went wrong, in plain words


Source: https://docs.mixetape.com/api/Accounts-and-posts/getPostRest/index.md
