postproxy-dev · Schema

Comment

A comment on a published post.

Social MediaAPISaaSMarketingAutomation

Properties

Name Type Description
id string Unique comment identifier (ID)
external_id stringnull Platform's native comment ID (null for pending comments)
body string Comment text content
status string Comment status. Only published and failed are terminal — treat every other value as still in progress.
error stringnull Error summary if the comment failed to publish (null otherwise)
error_details object
author_username stringnull Author's display name or username
author_avatar_url stringnull Stable Postproxy storage URL of the author's profile picture once mirrored; the platform URL until then
author_external_id stringnull Author's platform-specific ID
metadata object
parent_external_id stringnull Parent comment's external ID (null for top-level comments)
like_count integer Number of likes on the comment
is_hidden boolean Whether the comment is hidden
permalink stringnull Direct URL to the comment on the platform (when available)
platform_data objectnull Platform-specific metadata
attachments array Media attached to the comment. Empty array when there are none. Always empty on a freshly created (pending) comment.
external_edited_at stringnull ISO 8601 timestamp of the last edit made through Postproxy (null if never edited)
posted_at stringnull ISO 8601 timestamp when the comment was posted on the platform
created_at string ISO 8601 timestamp of record creation
replies array All replies (regardless of nesting depth) flattened under the root top-level comment, sorted by created_at ascending. Present on per-post list and get responses.
View JSON Schema on GitHub

JSON Schema

postproxy-dev-comment-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/postproxy-dev/json-schema/postproxy-dev-comment-schema.json",
  "title": "Comment",
  "description": "A comment on a published post.",
  "x-generated": "2026-10-31",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/postproxy-dev-openapi.json#/components/schemas/Comment",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Unique comment identifier (ID)"
    },
    "external_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "Platform's native comment ID (null for pending comments)"
    },
    "body": {
      "type": "string",
      "description": "Comment text content"
    },
    "status": {
      "type": "string",
      "enum": [
        "synced",
        "pending",
        "published",
        "failed",
        "failed_waiting_for_retry",
        "delivery_unconfirmed"
      ],
      "description": "Comment status. Only published and failed are terminal — treat every other value as still in progress."
    },
    "error": {
      "type": [
        "string",
        "null"
      ],
      "description": "Error summary if the comment failed to publish (null otherwise)"
    },
    "error_details": {
      "$ref": "#/$defs/PlatformErrorDetails"
    },
    "author_username": {
      "type": [
        "string",
        "null"
      ],
      "description": "Author's display name or username"
    },
    "author_avatar_url": {
      "type": [
        "string",
        "null"
      ],
      "description": "Stable Postproxy storage URL of the author's profile picture once mirrored; the platform URL until then"
    },
    "author_external_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "Author's platform-specific ID"
    },
    "metadata": {
      "$ref": "#/$defs/CommentMetadata"
    },
    "parent_external_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "Parent comment's external ID (null for top-level comments)"
    },
    "like_count": {
      "type": "integer",
      "description": "Number of likes on the comment"
    },
    "is_hidden": {
      "type": "boolean",
      "description": "Whether the comment is hidden"
    },
    "permalink": {
      "type": [
        "string",
        "null"
      ],
      "description": "Direct URL to the comment on the platform (when available)"
    },
    "platform_data": {
      "type": [
        "object",
        "null"
      ],
      "description": "Platform-specific metadata",
      "additionalProperties": true
    },
    "attachments": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/CommentAttachment"
      },
      "description": "Media attached to the comment. Empty array when there are none. Always empty on a freshly created (pending) comment."
    },
    "external_edited_at": {
      "type": [
        "string",
        "null"
      ],
      "description": "ISO 8601 timestamp of the last edit made through Postproxy (null if never edited)"
    },
    "posted_at": {
      "type": [
        "string",
        "null"
      ],
      "description": "ISO 8601 timestamp when the comment was posted on the platform"
    },
    "created_at": {
      "type": "string",
      "description": "ISO 8601 timestamp of record creation"
    },
    "replies": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/Comment"
      },
      "description": "All replies (regardless of nesting depth) flattened under the root top-level comment, sorted by created_at ascending. Present on per-post list and get responses."
    }
  },
  "$defs": {
    "Comment": {
      "type": "object",
      "description": "A comment on a published post.",
      "properties": {
        "id": {
          "type": "string",
          "description": "Unique comment identifier (ID)"
        },
        "external_id": {
          "type": [
            "string",
            "null"
          ],
          "description": "Platform's native comment ID (null for pending comments)"
        },
        "body": {
          "type": "string",
          "description": "Comment text content"
        },
        "status": {
          "type": "string",
          "enum": [
            "synced",
            "pending",
            "published",
            "failed",
            "failed_waiting_for_retry",
            "delivery_unconfirmed"
          ],
          "description": "Comment status. Only published and failed are terminal — treat every other value as still in progress."
        },
        "error": {
          "type": [
            "string",
            "null"
          ],
          "description": "Error summary if the comment failed to publish (null otherwise)"
        },
        "error_details": {
          "$ref": "#/$defs/PlatformErrorDetails"
        },
        "author_username": {
          "type": [
            "string",
            "null"
          ],
          "description": "Author's display name or username"
        },
        "author_avatar_url": {
          "type": [
            "string",
            "null"
          ],
          "description": "Stable Postproxy storage URL of the author's profile picture once mirrored; the platform URL until then"
        },
        "author_external_id": {
          "type": [
            "string",
            "null"
          ],
          "description": "Author's platform-specific ID"
        },
        "metadata": {
          "$ref": "#/$defs/CommentMetadata"
        },
        "parent_external_id": {
          "type": [
            "string",
            "null"
          ],
          "description": "Parent comment's external ID (null for top-level comments)"
        },
        "like_count": {
          "type": "integer",
          "description": "Number of likes on the comment"
        },
        "is_hidden": {
          "type": "boolean",
          "description": "Whether the comment is hidden"
        },
        "permalink": {
          "type": [
            "string",
            "null"
          ],
          "description": "Direct URL to the comment on the platform (when available)"
        },
        "platform_data": {
          "type": [
            "object",
            "null"
          ],
          "description": "Platform-specific metadata",
          "additionalProperties": true
        },
        "attachments": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/CommentAttachment"
          },
          "description": "Media attached to the comment. Empty array when there are none. Always empty on a freshly created (pending) comment."
        },
        "external_edited_at": {
          "type": [
            "string",
            "null"
          ],
          "description": "ISO 8601 timestamp of the last edit made through Postproxy (null if never edited)"
        },
        "posted_at": {
          "type": [
            "string",
            "null"
          ],
          "description": "ISO 8601 timestamp when the comment was posted on the platform"
        },
        "created_at": {
          "type": "string",
          "description": "ISO 8601 timestamp of record creation"
        },
        "replies": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Comment"
          },
          "description": "All replies (regardless of nesting depth) flattened under the root top-level comment, sorted by created_at ascending. Present on per-post list and get responses."
        }
      }
    },
    "CommentAttachment": {
      "type": "object",
      "description": "Media attached to a comment. Postproxy downloads each asset to durable storage; the url is stable once status is processed.",
      "properties": {
        "id": {
          "type": "string",
          "description": "Attachment hashid"
        },
        "type": {
          "type": "string",
          "enum": [
            "image",
            "video",
            "audio",
            "gif",
            "external",
            "file"
          ]
        },
        "url": {
          "type": [
            "string",
            "null"
          ],
          "description": "Stable storage URL to the asset. While status is pending, this temporarily falls back to the source URL on the platform until the file is mirrored to Postproxy storage."
        },
        "status": {
          "type": "string",
          "enum": [
            "pending",
            "processed",
            "failed"
          ],
          "description": "pending (still being mirrored), processed (stored and ready), failed (could not be downloaded)"
        },
        "external_id": {
          "type": [
            "string",
            "null"
          ],
          "description": "Platform-side identifier for the attachment (e.g. Facebook attachment target ID). Omitted when the platform did not provide one."
        }
      }
    },
    "CommentMetadata": {
      "type": [
        "object",
        "null"
      ],
      "description": "Additional author signals fetched asynchronously from the platform after the comment is ingested. Null until the lookup completes; individual keys may be absent depending on platform support.",
      "properties": {
        "author_fetched_at": {
          "type": "string",
          "description": "ISO 8601 timestamp of the last author-info refresh"
        },
        "is_verified_user": {
          "type": "boolean",
          "description": "Author has a verified account (instagram)"
        },
        "is_user_follow_business": {
          "type": "boolean",
          "description": "Author follows the business profile (instagram)"
        },
        "is_business_follow_user": {
          "type": "boolean",
          "description": "The business profile follows the author (instagram)"
        },
        "follower_count": {
          "type": "integer",
          "description": "Author's follower count (instagram)"
        }
      },
      "additionalProperties": true
    },
    "PlatformErrorDetails": {
      "type": [
        "object",
        "null"
      ],
      "description": "Structured platform error (omitted when no platform error info is available).",
      "properties": {
        "platform_error_code": {
          "type": [
            "string",
            "null"
          ],
          "description": "Error code returned by the platform API"
        },
        "platform_error_subcode": {
          "type": [
            "string",
            "null"
          ],
          "description": "Error subcode returned by the platform API"
        },
        "platform_error_message": {
          "type": [
            "string",
            "null"
          ],
          "description": "Error message returned by the platform API"
        },
        "postproxy_note": {
          "type": [
            "string",
            "null"
          ],
          "description": "Additional context from Postproxy about the error"
        }
      }
    }
  }
}

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.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/postproxy-dev-comment"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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.