id field. These IDs are designed to be stored and reused across calls.
Format
platform:platformID using a SocialAPI custom base-33 alphabet. It is reversible: given the ID, the API recovers the original platform and the platform’s native ID without a database lookup.
The prefix tells you the interaction type:
Examples:
sapi_cmt_GXRM4BNTW7KFYSD3HAEV6QJZ2CLP9U— a commentsapi_rev_GXRM4BNTW7KFYSD3HAEV6QJZ2CLP9U— a reviewsapi_dm_GXRM4BNTW7KFYSD3HAEV6QJZ2CLP9U— a DM
A-Z and 1-9 (excluding 0, O, and 8) in a shuffled, non-standard order, so do not assume the payload is base64url or hex.
Why this matters
The prefix lets handlers route requests without a lookup. Each inbox endpoint accepts the appropriate prefix in its path parameter:- Comment routes (
POST /v1/inbox/comments/:postId,POST /v1/inbox/comments/:postId/:commentId/hide, etc.) accept a platform post ID in:postIdand asapi_cmt_interaction ID in:commentId. - Review routes (
POST /v1/inbox/reviews/:id/reply) acceptsapi_rev_IDs in:id. - Conversation routes (
POST /v1/inbox/conversations/:id/messages) acceptsapi_dm_thread IDs in:id.
sapi_rev_ ID on a comment route) decodes silently and the raw platform ID is forwarded to the connector. MCP tools, by contrast, validate the prefix and return an error if the type does not match the operation.
Stability
IDs are deterministic. The same(type, platform, platform_id) tuple always produces the same SocialAPI ID, so you can safely store IDs in your own database and join against them across calls.
Using IDs
List comments on a connected account, then reply to one using the comment’sid: