Binance Skills Hub

square-post

Post content to Binance Square (Binance social platform for sharing trading insights). Auto-run on messages like 'post to square', 'square post'. Supports pure text posts.

Square Post Skill

Overview

Post text content to Binance Square.


API: Add Content

Method: POST

URL:

https://www.binance.com/bapi/composite/v1/public/pgc/openApi/content/add

Request Headers:

HeaderRequiredDescription
X-Square-OpenAPI-KeyYesSquare OpenAPI Key
Content-TypeYesapplication/json
clienttypeYesbinanceSkill

Request Body:

FieldTypeRequiredDescription
bodyTextOnlystringYesPost content text (supports #hashtags)

Example Request

curl -X POST 'https://www.binance.com/bapi/composite/v1/public/pgc/openApi/content/add' \
  -H 'X-Square-OpenAPI-Key: your_api_key' \
  -H 'Content-Type: application/json' \
  -H 'clienttype: binanceSkill' \
  -d '{
    "bodyTextOnly": "BTC looking bullish today!"
  }'

Response Example

{
  "code": "000000",
  "message": null,
  "data": {
    "id": "content_id_here"
  }
}

Response Fields

FieldTypeDescription
codestring"000000" = success
messagestringError message (null on success)
data.idstringCreated content ID

Post URL Format

On success, construct the post URL:

https://www.binance.com/square/post/{id}

Example: If data.id is 298177291743282, the post URL is:

https://www.binance.com/square/post/298177291743282

Error Handling

CodeDescription
000000Success
10004Network error. Please try again
10005Only allowed for users who have completed identity verification
10007Feature unavailable
20002Detected sensitive words
20013Content length is limited
20020Publishing empty content is not supported
20022Detected sensitive words (with risk segments)
20041Potential security risk with the URL
30004User not found
30008Banned for violating platform guidelines
220003API Key not found
220004API Key expired
220009Daily post limit exceeded for OpenAPI
220010Unsupported content type
220011Content body must not be empty
2000001Account permanently blocked from posting
2000002Device permanently blocked from posting

Authentication

Required Header

HeaderRequiredDescription
X-Square-OpenAPI-KeyYesAPI key for Square posting

Security

Never Display Full Keys

When showing credentials to users:

  • X-Square-OpenAPI-Key: Show first 5 + last 4 characters: abc12...xyz9

Listing Accounts

When listing accounts, show names and description only — never full keys:

Accounts:
* default (Default account for Square posting)

Agent Behavior

  1. Check key before API calls: Verify that X-Square-OpenAPI-Key is configured and not the placeholder your_api_key
  2. Prompt for key if missing: If key is not configured, ask user to provide their API Key first
  3. Prompt for content if missing: If user triggers posting but doesn't provide specific content, ask what they want to post
  4. Never display full keys: Only show first 5 + last 4 characters (e.g., abc12...xyz9)
  5. Store provided keys: When user provides a new key, update the Accounts section in this file
  6. Optimize content before posting:
    • Polish user's raw input for better readability
    • Show optimized content and ask user to choose: use optimized version or post original text
  7. Return post URL on success: After successful post, return the URL https://www.binance.com/square/post/{id}
  8. Handle missing id: If code is 000000 but data.id is empty or missing, inform user that post may have succeeded but URL is unavailable, suggest checking Square page manually

Notes

  1. Only pure text posts are supported currently
  2. Check daily post limit to avoid 220009 error