---
title: "List platforms"
method: GET
path: "/platforms"
tags: ["Destinations"]
---

# List platforms

`GET /platforms`

## Request

- Base URL: `https://api.deploy.social/v1`
- URL: `https://api.deploy.social/v1/platforms`
- Auth: HTTP bearer

Every platform Deploy posts to, with the fields each one uses, how long they can be, what videos it accepts and the settings a post can choose.

## Response `200`

The platforms.

- PlatformList
  - `data` Platform[], required
    - `id` string, required
    - `name` string, required
    - `fields` string[], required: The post fields this platform uses. Others are left out when posting here.
    - `field_limits` object, required: The longest each field can be, in characters.
    - `media_limits` MediaLimits, required: What a video has to fit to post here.
      - `max_duration_sec` number, required
      - `min_duration_sec` number, nullable, required: The shortest video accepted, in seconds. `null` means no minimum.
      - `max_file_size_mb` number, required
      - `aspect_ratios` string[], required: The shapes that look best here.
      - `aspect_range` object, nullable, required: Width divided by height must fall in this range. `null` means any shape is accepted.
        - `min` number, required
        - `max` number, required
      - `requires_portrait` boolean, required: Only vertical video is accepted.
      - `min_resolution` object, nullable, required: The smallest frame accepted: width and height must both reach these. `null` means no minimum.
        - `width` number, required
        - `height` number, required
      - `containers` string[], required
    - `rate_limits` object, nullable, required
      - `min_interval_sec` number, required: Posts to one account are spaced at least this many seconds apart; 0 means no spacing.
      - `posts_per_day` number, required: Posts one account can make in 24 hours.
    - `options` OptionDescriptor[], required: The settings a post can choose here.
      - `key` string, required: The name to send in `options`.
      - `type` 'enum' | 'boolean' | 'text' | 'list', required: `enum` takes one of `values`; `boolean` takes true or false; `text` takes a string; `list` takes an array of strings. New types may be added.
      - `values` string[], nullable, required: The choices for an `enum`.
      - `default` union, required: What's used when you don't send it. `null` means you have to choose.
        - string
        - boolean
        - string[]
      - `required` boolean, required: You have to send this one.
      - `locked` boolean, required: The account owner has turned this off on the platform, so it's fixed.
      - `description` string, required
    - `options_are_live` boolean, required: The choices depend on the account. Read them from the destination's options before posting.

## Other responses

- `401`: The API key is missing, wrong, revoked or expired: `missing_api_key`, `invalid_api_key`, `api_key_revoked`, `api_key_expired`.
- `403`: The key can't do this: `insufficient_scope` (a read-only key), `plan_required`, `usage_limit_exceeded` (this month's videos are used up), `access_revoked` (its creator left the workspace), `workspace_archived`.
- `429`: Slow down and wait `Retry-After` seconds. Either this key has used its requests for the minute (Standard: 60 reads and 20 writes, Studio: 120 and 30), or, when publishing or scheduling, the plan's API posts for the day are used (detail code `daily_post_limit`; Standard: 30 a day across your account, Studio: 100 a day per workspace; `Retry-After` runs to midnight UTC). Posts made in the app never count.
- `500`: Something broke on our side. Retry, and contact us with the request id if it keeps happening.
- `503`: We can't take the request right now. Retry shortly.

---

[API](https://skmtc.dev/deploy/apis/deploy-social-api.md) · [All operations](https://skmtc.dev/deploy/apis/deploy-social-api/llms.txt) · [OpenAPI document](https://skmtc.dev/deploy/apis/deploy-social-api/revisions/7ed97bdd207f?raw)
