Brand2Social API Documentation

Comprehensive guide to Brand2Social API endpoints

Update New Post

Update an existing scheduled social media post for one or more platforms (e.g., Facebook, Instagram, LinkedIn, Twitter, YouTube, Google Business, TikTok, Pinterest) for a specific brand.

Use this API after obtaining schedule_post_id from create-new-post, media_ids from upload-media, and connected_profile_id from integrate-accounts. Supports updating scheduling and approval workflows. Each platform has specific validation rules for post_type and media constraints.

  • Method: POST
  • Endpoint: /api/api-services/v1/brand-service/update-new-post
  • Returns: Confirmation of post update

Update New Post

POST https://app.brand2social.com/api/api-services/v1/brand-service/update-new-post

FieldTypeRequiredDescription
Authorizationstring (header)YesBearer token for authentication
brand_idint64YesID of the brand
schedule_post_idint64YesID of the scheduled post to update (from create-new-post)
new_post_dataobjectYesUpdated details of the post
FieldTypeRequiredDescription
scheduled_event_requests_dataobjectYesPlatform-specific post requests (at least one platform required)
FieldTypeRequiredDescription
facebook_requests_dataarray of objectsNoFacebook post details. Valid post_type: post, reels, story
FieldTypeRequiredDescription
connected_profile_idint64YesID of the connected profile (from integrate-accounts)
media_idsarray of stringsNoEncrypted media IDs (from upload-media). Max 1 video or multiple images (per config). No media with link.
descriptionstringYesPost text content. Required if no media. Max length per config.
linkstringNoURL to include in the post. Must be valid. Not allowed with media.
post_typestringYesType of post: post, reels, story
has_commentbooleanNoWhether to include a comment
comment_descriptionstringNoComment text if has_comment is true
thumbnailstringNoThumbnail URL for video posts (reels/story). Must be valid.
instagram_requests_dataarray of objectsNoInstagram post details. Valid post_type: post, reels, story
FieldTypeRequiredDescription
connected_profile_idint64YesID of the connected profile (from integrate-accounts)
media_idsarray of stringsYesEncrypted media IDs (from upload-media). Posts: images only. Reels/story: 1 video or 1 image.
cover_urlstringNoCover image URL for reels. Must be valid.
descriptionstringNoPost text content. Max length and hashtags per config.
post_typestringYesType of post: post, reels, story
has_commentbooleanNoWhether to include a comment
comment_descriptionstringNoComment text if has_comment is true
post_on_my_wallbooleanNoWhether to post on the user’s wall
twitter_requests_dataarray of objectsNoTwitter post details. Valid post_type: post
FieldTypeRequiredDescription
connected_profile_idint64YesID of the connected profile (from integrate-accounts)
media_idsarray of stringsNoEncrypted media IDs (from upload-media). Max 1 video or multiple images (per config).
descriptionstringYesPost text content. Required if no media. Max length per config.
post_typestringYesType of post: post
youtube_requests_dataarray of objectsNoYouTube post details. Valid post_type: video, shorts
FieldTypeRequiredDescription
connected_profile_idint64YesID of the connected profile (from integrate-accounts)
media_idsarray of stringsYesEncrypted media IDs (from upload-media). 1 video only.
descriptionstringNoPost text content. Max length per config. No angle brackets.
post_typestringYesType of post: video, shorts
titlestringYesVideo title. Max length per config.
privacystringYesPrivacy setting (e.g., public, private, unlisted)
has_commentbooleanNoWhether to include a comment
comment_descriptionstringNoComment text if has_comment is true
thumbnailstringNoThumbnail URL. Must be valid.
linkedin_requests_dataarray of objectsNoLinkedIn post details. Valid post_type: post
FieldTypeRequiredDescription
connected_profile_idint64YesID of the connected profile (from integrate-accounts)
media_idsarray of stringsNoEncrypted media IDs (from upload-media). Max 1 video or multiple images (per config).
descriptionstringYesPost text content. Required if no media. Max length per config.
post_typestringYesType of post: post
titlestringNoPost title. Max length per config.
has_commentbooleanNoWhether to include a comment
comment_descriptionstringNoComment text if has_comment is true
gbusiness_requests_dataarray of objectsNoGoogle Business post details. Valid post_type: STANDARD, EVENT, OFFER
FieldTypeRequiredDescription
connected_profile_idint64YesID of the connected profile (from integrate-accounts)
media_idsarray of stringsNoEncrypted media IDs (from upload-media). Images only. Max count per config.
descriptionstringNoPost text content. Required if no media. Max length per config.
post_typestringYesType of post: STANDARD, EVENT, OFFER
titlestringYesPost title. Max length per config.
button_typestringNoButton type: None, CALL, or others. Requires url if not None or CALL.
start_datestring (ISO 8601)NoStart date for EVENT/OFFER. Must be before end_date.
end_datestring (ISO 8601)NoEnd date for EVENT/OFFER. Must be after start_date.
start_timestring (ISO 8601)NoStart time for EVENT/OFFER.
end_timestring (ISO 8601)NoEnd time for EVENT/OFFER.
offer_codestringNoOffer code for OFFER posts.
terms_conditionsstringNoTerms and conditions for OFFER posts.
urlstringNoURL for button. Must be valid if button_type requires it.
schedule_timestring (ISO 8601)NoScheduled time for the post.
tiktok_requests_dataarray of objectsNoTikTok post details. Valid post_type: DIRECT_POST, UPLOAD_TO_INBOX
FieldTypeRequiredDescription
connected_profile_idint64YesID of the connected profile (from integrate-accounts)
media_idsarray of stringsYesEncrypted media IDs (from upload-media). DIRECT_POST: 1 video or images (no PNG). UPLOAD_TO_INBOX: images only (no PNG).
descriptionstringYesPost text content. Required if no media. Max length per config.
titlestringNoPost title. Max length per config.
privacystringYesPrivacy setting (e.g., public, private)
post_typestringYesType of post: DIRECT_POST, UPLOAD_TO_INBOX
allow_user_to_commentbooleanNoWhether to allow comments
allow_user_to_duetbooleanNoWhether to allow duets
allow_user_to_switchbooleanNoWhether to allow switching
disclosure_contentbooleanNoWhether to disclose branded content
your_brandbooleanNoWhether the content is your brand
branded_contentbooleanNoWhether the content is branded
pinterest_requests_dataarray of objectsNoPinterest post details. Valid post_type: post
FieldTypeRequiredDescription
connected_profile_idint64YesID of the connected profile (from integrate-accounts)
media_idsarray of stringsYesEncrypted media IDs (from upload-media). 1 video or multiple images (per config).
titlestringNoPin title. Max length per config.
descriptionstringNoPin description. Max length per config.
linkstringNoURL to include in the pin. Must be valid.
cover_image_urlstringNoCover image URL for video pins. Required for videos. Must be valid.
post_typestringYesType of post: post
board_namestringYesName of the Pinterest board (from get-social-profiles)
scheduled_timestring (ISO 8601)NoUpdated scheduled post time (e.g., "2025-08-20T14:30:00Z")
is_scheduled_postbooleanYesWhether the post is scheduled
needs_approvalbooleanNoWhether the post requires approval
    
    
curl --location 'https://app.brand2social.com/api/api-services/v1/brand-service/update-new-post' \
  --header 'Authorization: Bearer B2S_dummyToken' \
  --header 'Content-Type: application/json' \
  --data-raw '{
    "brand_id": 123,
    "schedule_post_id": 456,
    "new_post_data": {
      "scheduled_event_requests_data": {
        "facebook_requests_data": [
          {
            "connected_profile_id": 98765,
            "media_ids": ["encrypted_media_id_1"],
            "description": "Updated product announcement!",
            "post_type": "post",
            "has_comment": false
          }
        ],
        "instagram_requests_data": [
          {
            "connected_profile_id": 98766,
            "media_ids": ["encrypted_media_id_2"],
            "cover_url": "https://example.com/updated_cover.jpg",
            "description": "Updated product launch!",
            "post_type": "reels",
            "has_comment": false,
            "post_on_my_wall": true
          }
        ],
        "pinterest_requests_data": [
          {
            "connected_profile_id": 98772,
            "media_ids": ["encrypted_media_id_8"],
            "title": "Updated Product Pin",
            "description": "Discover our updated product!",
            "link": "https://example.com/updated_product",
            "cover_image_url": "https://example.com/updated_cover.jpg",
            "post_type": "post",
            "board_name": "Product Board"
          }
        ]
      },
      "scheduled_time": "2025-08-21T14:30:00Z",
      "is_scheduled_post": true,
      "needs_approval": true
    }
  }'
    
  

Response

{
  "status": "SUCCESS",
  "http_code": 200,
  "message": "Post updated successfully",
  "data": ""
}

Error Response

{
  "status": "FAILURE",
  "http_code": 400,
  "message": "Validation errors",
  "data": [
    "integrationservice.brand_id_is_required",
    "Facebook post: Multiple videos not allowed",
    "Instagram reels: Invalid aspect ratio"
  ]
}