---
title: "List platform posting requirements"
method: GET
path: "/v0/platforms"
tags: ["Platforms"]
---

# List platform posting requirements

`GET /v0/platforms`

## Request

- Base URL: `https://api.schedulin.app`
- URL: `https://api.schedulin.app/v0/platforms`
- Auth: one of:
  - API key in header `x-api-key`
  - OAuth 2 (authorization code, authorization URL `https://api.schedulin.app/oauth/authorize`, token URL `https://api.schedulin.app/oauth/token`, scopes: `posts:read`)

Per-platform posting requirements: caption length limits, media count/type rules, whether `platformConfiguration` is required, its JSON Schema when server-validated, and helper endpoints for fetching dynamic values (e.g. Pinterest boards). Platforms marked `comingSoon` cannot be posted to yet.

## Response `200`

OK

- object
  - `data` object[], required
    - `platform` string, required
    - `name` string, required
    - `comingSoon` boolean
    - `captionMaxLength` integer
    - `captionLengthUnit` 'characters' | 'graphemes' | 'characters_emoji_bytes'
    - `captionMaxLengthWithMedia` integer
    - `mediaRules` object
      - `min` integer
      - `max` integer, required
      - `allowedTypes` string[]
      - `allowedDimensions` object[]
        - `width` integer, required
        - `height` integer, required
    - `platformConfiguration` object, required
      - `required` boolean, required
      - `validated` boolean, required
      - `schema` object
    - `helperEndpoints` object[]
      - `method` string, required
      - `path` string, required
      - `description` string, required

## Other responses

- `400`: Bad Request — the request isn't allowed in the resource's current state (e.g. editing a published post).
- `401`: Unauthorized — missing or invalid API key / access token.
- `403`: Forbidden — the credential lacks the required scope or access.
- `422`: Unprocessable request. Schema validation failures have `code: "INPUT_VALIDATION_FAILED"` and `data.fieldErrors` mapping each invalid field to its messages (nested issues name their full path, e.g. `media[0].url: ...`). Business-rule rejections (e.g. a `scheduledAt` in the past) have `code: "UNPROCESSABLE_CONTENT"` and carry the reason in `data.message` and `data.formErrors`.
- `429`: Rate limit exceeded. Wait `Retry-After` seconds before retrying.
- `500`: Internal Server Error

---

[API](https://skmtc.dev/schedulin/apis/schedulin-api.md) · [All operations](https://skmtc.dev/schedulin/apis/schedulin-api/llms.txt) · [OpenAPI document](https://skmtc.dev/schedulin/apis/schedulin-api/revisions/17e886f3bcf3?raw)
