deploy.social · Schema
Post
CompanySocial MediaVideoShort-Form VideoCross-PostingSchedulingContent PublishingMCP
Properties
| Name | Type | Description |
|---|---|---|
| id | string | The post's id. Starts with `post_`. |
| status | string | `draft`, `scheduled`, `publishing`, `published`, `partially_published`, `failed` or `cancelled`. New values may be added. |
| kind | string | `video`, `photos` or `text`. New values may be added. |
| media_id | object | |
| media | array | The photos, in order. Empty for `video` and `text` posts. |
| caption | string | |
| title | stringnull | |
| description | stringnull | |
| tags | object | |
| first_comment | stringnull | |
| scheduled_at | stringnull | When it's set to go out. |
| notify_email | boolean | |
| vertical_fit | object | How a landscape video is fitted to vertical, or `null` for no fit. Video posts only. |
| created_via | string | Where it was made: `app` (the web app), `mobile` (the phone app), `api` or `mcp`. |
| created_at | string | When it was created. |
| updated_at | string | When it last changed. |
| destinations | array | |
| review_url | string | Drafts only: opens the draft in Deploy, to check it over and post it from there. |
| issues | array | Drafts only: what still needs fixing before it can go out. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/deploy-social/json-schema/deploy-social-post-schema.json",
"title": "Post",
"x-generated": "2026-11-05",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/deploy-social-openapi.yml#/components/schemas/Post",
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The post's id. Starts with `post_`."
},
"status": {
"type": "string",
"description": "`draft`, `scheduled`, `publishing`, `published`, `partially_published`, `failed` or `cancelled`. New values may be added."
},
"kind": {
"type": "string",
"description": "`video`, `photos` or `text`. New values may be added."
},
"media_id": {
"anyOf": [
{
"type": "string",
"description": "The video's id. Starts with `media_`."
},
{
"type": "null"
}
]
},
"media": {
"type": "array",
"items": {
"$ref": "#/$defs/PostMediaItem"
},
"description": "The photos, in order. Empty for `video` and `text` posts."
},
"caption": {
"type": "string"
},
"title": {
"type": [
"string",
"null"
]
},
"description": {
"type": [
"string",
"null"
]
},
"tags": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
]
},
"first_comment": {
"type": [
"string",
"null"
]
},
"scheduled_at": {
"description": "When it's set to go out.",
"format": "date-time",
"type": [
"string",
"null"
]
},
"notify_email": {
"type": "boolean"
},
"vertical_fit": {
"anyOf": [
{
"type": "string",
"enum": [
"blur",
"bars"
]
},
{
"type": "null"
}
],
"description": "How a landscape video is fitted to vertical, or `null` for no fit. Video posts only."
},
"created_via": {
"type": "string",
"description": "Where it was made: `app` (the web app), `mobile` (the phone app), `api` or `mcp`."
},
"created_at": {
"type": "string",
"description": "When it was created.",
"format": "date-time"
},
"updated_at": {
"type": "string",
"description": "When it last changed.",
"format": "date-time"
},
"destinations": {
"type": "array",
"items": {
"$ref": "#/$defs/PostDestination"
}
},
"review_url": {
"description": "Drafts only: opens the draft in Deploy, to check it over and post it from there.",
"type": "string"
},
"issues": {
"description": "Drafts only: what still needs fixing before it can go out.",
"type": "array",
"items": {
"$ref": "#/$defs/PostIssue"
}
}
},
"required": [
"id",
"status",
"kind",
"media_id",
"media",
"caption",
"title",
"description",
"tags",
"first_comment",
"scheduled_at",
"notify_email",
"vertical_fit",
"created_via",
"created_at",
"updated_at",
"destinations"
],
"additionalProperties": false,
"$defs": {
"PostDestination": {
"type": "object",
"properties": {
"destination_id": {
"type": "string",
"description": "The destination's id. Starts with `dest_`."
},
"platform": {
"type": "string"
},
"handle": {
"type": "string"
},
"caption": {
"description": "This destination's own caption. `null` means it uses the post's.",
"type": [
"string",
"null"
]
},
"title": {
"type": [
"string",
"null"
]
},
"description": {
"type": [
"string",
"null"
]
},
"tags": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
]
},
"first_comment": {
"type": [
"string",
"null"
]
},
"options": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"anyOf": [
{
"anyOf": [
{
"type": "string"
},
{
"type": "boolean"
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
},
{
"type": "null"
}
]
},
"description": "The settings this destination posts with, defaults included."
},
"status": {
"type": "string",
"description": "`pending`, `publishing`, `published`, `failed` or `cancelled`. New values may be added."
},
"progress": {
"anyOf": [
{
"type": "object",
"properties": {
"phase": {
"description": "What's happening right now, like `uploading` or `waiting`. For display only.",
"type": [
"string",
"null"
]
},
"percent": {
"anyOf": [
{
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
{
"type": "null"
}
]
}
},
"required": [
"phase",
"percent"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"url": {
"description": "The post on the platform, once it's live.",
"type": [
"string",
"null"
]
},
"platform_post_id": {
"type": [
"string",
"null"
]
},
"published_at": {
"description": "When it went live here.",
"format": "date-time",
"type": [
"string",
"null"
]
},
"warning": {
"description": "It posted, but something didn't go as planned (a first comment that couldn't be added, say).",
"type": [
"string",
"null"
]
},
"failure": {
"anyOf": [
{
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "`user`, `platform`, `internal` or `unknown`. New values may be added."
},
"code": {
"description": "The platform's own code for it, when there is one.",
"type": [
"string",
"null"
]
},
"message": {
"type": "string",
"description": "What happened and what to do, in a sentence you can show a person."
},
"action": {
"type": "string",
"description": "`reconnect`: reconnect the account in Deploy, then retry. `retry`: try again. `none`: retrying won't help."
}
},
"required": [
"category",
"code",
"message",
"action"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"destination_id",
"platform",
"handle",
"caption",
"title",
"description",
"tags",
"first_comment",
"options",
"status",
"progress",
"url",
"platform_post_id",
"published_at",
"warning",
"failure"
],
"additionalProperties": false
},
"PostIssue": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"severity": {
"type": "string",
"enum": [
"error",
"warning"
],
"description": "`error` has to be fixed before the post can go out. `warning` won't stop it."
}
},
"required": [
"path",
"code",
"message",
"severity"
],
"additionalProperties": false
},
"PostMediaItem": {
"type": "object",
"properties": {
"media_id": {
"anyOf": [
{
"type": "string",
"description": "The photo's id. Starts with `media_`."
},
{
"type": "null"
}
]
},
"position": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "Where this photo sits in the post, starting at 0."
},
"alt_text": {
"type": [
"string",
"null"
]
}
},
"required": [
"media_id",
"position",
"alt_text"
],
"additionalProperties": false
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/deploy-social-post"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.