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

# List platforms

`GET /platforms`

## Request

- Base URL: `https://inboxapp.com/api/v2`
- URL: `https://inboxapp.com/api/v2/platforms`
- Auth: HTTP bearer

Each platform's capabilities and limits. An account link's `capabilities` can only narrow its platform's.

## Response `200`

OK

- PlatformInfo[]
  - `platform` string, required: The platform. Every team can use twitter, linkedin; a team may have others enabled.
  - `name` string, required
  - `usernamePrefix` string, required: Prepended to a `username` to display it. Empty when the platform uses none.
  - `capabilities` string[], required: The platform's baseline. Each account link narrows it in its own `capabilities`.
  - `limits` object, required: Limits checked before a request reaches the platform.
    - `characters` integer, nullable, required: Maximum characters in a message, counting an emoji as one. Null when the platform sets none.
    - `mediaCount` integer, nullable, required: Maximum attachments in a message. Null when the platform sets none.
    - `mediaBytes` integer, nullable, required: Maximum size of one attachment. Null when the platform sets none.
    - `mediaTypes` object, nullable, required: Accepted formats per media kind: MIME types, families such as `image/*`, or extensions such as `.pdf`. A kind without an entry accepts nothing. Null accepts any format.
      - `image` string[]
      - `video` string[]
      - `gif` string[]
      - `file` string[]
      - `audio` string[]
    - `connectNoteCharacters` integer, nullable, required: Maximum characters in the note of a connection request. Null when the platform sets none.
  - `mutationWindows` object, required: Seconds after a message's `createdAt` during which a capability still applies to it, such as `message:edit`. A capability without an entry has no window.
    - `message:send` integer
    - `message:edit` integer
    - `message:delete:self` integer
    - `message:unsend` integer
    - `message:react` integer
    - `message:reply` integer
    - `message:forward` integer
    - `media:image` integer
    - `media:video` integer
    - `media:gif` integer
    - `media:file` integer
    - `media:audio` integer
    - `thread:typing:send` integer
    - `thread:typing:receive` integer
    - `thread:message-requests` integer
    - `thread:delete:remote` integer
    - `directory:typeahead` integer
    - `thread:archive:observe` integer
    - `thread:archive:mutate` integer
    - `thread:read:observe` integer
    - `thread:read:mutate` integer
    - `profile:follow` integer
    - `profile:unfollow` integer
    - `profile:connect` integer
    - `profile:connect:note` integer
    - `profile:resolve:id` integer
    - `profile:resolve:username` integer
  - `threadState` object, required
    - `archive` object, nullable, required: Null when the platform has no such state.
      - `observe` boolean, required: Inboxapp reads this state from the platform.
      - `mutate` boolean, required: Changing it in Inboxapp also changes it on the platform.
    - `read` object, nullable, required: Null when the platform has no such state.
      - `observe` boolean, required: Inboxapp reads this state from the platform.
      - `mutate` boolean, required: Changing it in Inboxapp also changes it on the platform.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `429`: Too Many Requests
- `500`: Internal Server Error

---

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