Skip to main content

Create Image Post

Overview

The Create Image Post endpoint allows you to schedule and publish image-based posts to one or multiple connected social accounts under a specific category. You can set the post content, attach one or more images, assign it to a category, and define the date and time for scheduling.

Base URL:

https://www.oneupapp.io

Endpoint

POST /api/scheduleimagepost

Request Parameters

ParameterRequiredDescription
apiKeyYesYour personal API key generated from the API Access page.
category_idYesThe ID of the category that groups your target social accounts.
social_network_idYesA JSON array of social network IDs where the post will be published. You can also set the value to ALL to publish the post across all accounts enabled for the selected category.
scheduled_date_timeYesThe date and time (in YYYY-MM-DD HH:MM format) when the post should be published.
titleNoThe title of your post (for YouTube, Reddit, and Threads posts).
contentYesThe text content of your post.
image_urlYesThe URL(s) of the image(s). Separate multiple images with ~~. You can also upload images via the Upload Media endpoint and use the returned file_path as the image_url.
image_to_gbp_photoNoSet to true to also add the image to the Photos section of your Google Business Profile. Only applicable when posting to a GBP account. Default: false
first_commentNoThe first comment to be added to the post (optional and only for Facebook, Instagram, LinkedIn, and YouTube).
google_post_typeNoGoogle Business Profile post type. Values: update, event, offer, none. Required when posting to a GBP account. When set to none, the image will only be added to the Photos section of GBP. It will not publish as a GBP Post.
cta_buttonNoCTA button for GBP update and event types. Values: CALL, LEARN_MORE, BOOK, SIGN_UP, ORDER_ONLINE, BUY
cta_button_urlNoURL for the CTA button. Optional when cta_button is CALL, required for all other button types.
event_titleNoRequired for GBP event type. The title of the event.
event_start_dateNoRequired for GBP event type. Format: YYYY-MM-DD HH:MM am/pm (e.g., 2026-04-14 08:50 am)
event_end_dateNoRequired for GBP event type. Format: YYYY-MM-DD HH:MM am/pm (e.g., 2026-04-21 08:50 am)
offer_titleNoRequired for GBP offer type. The title of the offer.
offer_start_dateNoRequired for GBP offer type. Format: YYYY-MM-DD HH:MM am/pm (e.g., 2026-04-14 08:50 am)
offer_end_dateNoRequired for GBP offer type. Format: YYYY-MM-DD HH:MM am/pm (e.g., 2026-04-21 08:50 am)
coupon_codeNoOptional for GBP offer type. A coupon code for the offer.
link_to_redeem_urlNoOptional for GBP offer type. A link to redeem the offer.
subredditNoThe target location for your Reddit post.
- To publish to a Subreddit: Use the subreddit name (e.g., vishal2947world).
- To publish to your Profile: Prefix your username with u_ (e.g., u_daviswbaer).
isDraftPostNoSet to true to save the post as a draft instead of scheduling it. Default: false

Platform-Specific Parameters

Some social networks support additional parameters for specific image post types:

Instagram:

  • instagram: A JSON object with the following options:
    • isStory (boolean): Set to true to publish as an Instagram Story. Default: false
    • collaborator (string): A comma-separated string of Instagram usernames (e.g., "nike,adidas"). When adding collaborators, use the Instagram @username exactly as it appears without the '@' symbol. You can add up to 5 collaborators on a post. Note that the tagged account cannot be private, otherwise the post will not publish.
    • locationId (number): The Instagram location ID for tagging a location on the post. For help finding a location ID, see How to find your location ID.

Facebook:

  • facebook: A JSON object with the following options:
    • isStory (boolean): Set to true to publish as a Facebook Story. Default: false
    • locationId (number): The Facebook location ID for tagging a location on the post. For help finding a location ID, see How to find your location ID.

Snapchat:

  • snapchat: A JSON object with the following option:
    • isSpotLight (boolean): Set to true to publish as a Snapchat Spotlight. Default: false

TikTok:

  • tiktok: A JSON object with the following option:
    • autoAddMusic (boolean): Set to true to automatically add music to the image post. Default: true

Pinterest:

  • pinterest: A JSON object with the following fields (required when posting to a Pinterest account):
    • board_name (string, required): The name of the Pinterest board.
    • board_id (string, required): The ID of the Pinterest board.
    • destination_link (string, optional): The URL of the destination link for the Pin.
    • Both board_name and board_id are mandatory fields. You can fetch available boards using the Fetch Pinterest Boards endpoint.

Google Business Profile:

Google Business Profile supports three post types via the google_post_type parameter. These parameters are passed as individual fields (not as a JSON object).

Update type (google_post_type=update):

  • cta_button (optional): CALL, LEARN_MORE, BOOK, SIGN_UP, ORDER_ONLINE, BUY
  • cta_button_url (optional if cta_button is CALL, required otherwise): The URL for the CTA button

Event type (google_post_type=event):

  • event_title (required): The title of the event
  • event_start_date (required): Format YYYY-MM-DD HH:MM am/pm (e.g., 2026-04-14 08:50 am)
  • event_end_date (required): Format YYYY-MM-DD HH:MM am/pm (e.g., 2026-04-21 08:50 am)
  • cta_button (optional): CALL, LEARN_MORE, BOOK, SIGN_UP, ORDER_ONLINE, BUY
  • cta_button_url (optional if cta_button is CALL, required otherwise): The URL for the CTA button

Offer type (google_post_type=offer):

  • offer_title (required): The title of the offer
  • offer_start_date (required): Format YYYY-MM-DD HH:MM am/pm (e.g., 2026-04-14 08:50 am)
  • offer_end_date (required): Format YYYY-MM-DD HH:MM am/pm (e.g., 2026-04-21 08:50 am)
  • coupon_code (optional): A coupon code for the offer
  • link_to_redeem_url (optional): A link to redeem the offer

Example with platform-specific parameters:

curl --location --request POST \
"https://www.oneupapp.io/api/scheduleimagepost" \
--data-urlencode "apiKey=621544d93ffe2db52b01" \
--data-urlencode "category_id=49839" \
--data-urlencode 'social_network_id=["113024478527731"]' \
--data-urlencode "scheduled_date_time=2026-12-12 13:13" \
--data-urlencode "title=My Image Post" \
--data-urlencode "content=Image post" \
--data-urlencode "image_url=https://cdn.filestackcontent.com/BT933lwUSEKkmpfI9O57" \
--data-urlencode 'instagram={"isStory":true}'

Example with Instagram location:

curl --location --request POST \
"https://www.oneupapp.io/api/scheduleimagepost" \
--data-urlencode "apiKey=621544d93ffe2db52b01" \
--data-urlencode "category_id=49839" \
--data-urlencode 'social_network_id=["17841408823790514"]' \
--data-urlencode "scheduled_date_time=2026-12-12 13:13" \
--data-urlencode "content=Image post with location" \
--data-urlencode "image_url=https://cdn.filestackcontent.com/BT933lwUSEKkmpfI9O57" \
--data-urlencode 'instagram={"locationId":992739747256078}'

Example with Pinterest board:

curl --location --request POST \
"https://www.oneupapp.io/api/scheduleimagepost" \
--data-urlencode "apiKey=621544d93ffe2db52b01" \
--data-urlencode "category_id=49839" \
--data-urlencode 'social_network_id=["pin_oneupapp"]' \
--data-urlencode "scheduled_date_time=2026-12-12 13:13" \
--data-urlencode "content=Image post to Pinterest" \
--data-urlencode "image_url=https://cdn.filestackcontent.com/BT933lwUSEKkmpfI9O57" \
--data-urlencode 'pinterest={"board_name":"OneUp","board_id":"635641003596046298"}'

GBP Examples

Google Business Profile - Update type:

curl --location --request POST \
"https://www.oneupapp.io/api/scheduleimagepost" \
--data-urlencode "apiKey=621544d93ffe2db52b01" \
--data-urlencode "category_id=49839" \
--data-urlencode 'social_network_id=["accounts/116185162672310389659/locations/1366069594757511498"]' \
--data-urlencode "scheduled_date_time=2026-12-12 13:13" \
--data-urlencode "content=Check out our new products!" \
--data-urlencode "image_url=https://cdn.filestackcontent.com/BT933lwUSEKkmpfI9O57" \
--data-urlencode "google_post_type=update" \
--data-urlencode "cta_button=LEARN_MORE" \
--data-urlencode "cta_button_url=https://example.com"

Google Business Profile - Event type:

curl --location --request POST \
"https://www.oneupapp.io/api/scheduleimagepost" \
--data-urlencode "apiKey=621544d93ffe2db52b01" \
--data-urlencode "category_id=49839" \
--data-urlencode 'social_network_id=["accounts/116185162672310389659/locations/1366069594757511498"]' \
--data-urlencode "scheduled_date_time=2026-12-12 13:13" \
--data-urlencode "content=Join us for our annual sale event!" \
--data-urlencode "image_url=https://cdn.filestackcontent.com/BT933lwUSEKkmpfI9O57" \
--data-urlencode "google_post_type=event" \
--data-urlencode "event_title=Annual Sale" \
--data-urlencode "event_start_date=2026-04-14 08:50 am" \
--data-urlencode "event_end_date=2026-04-21 08:50 am" \
--data-urlencode "cta_button=LEARN_MORE" \
--data-urlencode "cta_button_url=https://example.com"

Google Business Profile - Offer type:

curl --location --request POST \
"https://www.oneupapp.io/api/scheduleimagepost" \
--data-urlencode "apiKey=621544d93ffe2db52b01" \
--data-urlencode "category_id=49839" \
--data-urlencode 'social_network_id=["accounts/116185162672310389659/locations/1366069594757511498"]' \
--data-urlencode "scheduled_date_time=2026-12-12 13:13" \
--data-urlencode "content=Get 20% off your next order!" \
--data-urlencode "image_url=https://cdn.filestackcontent.com/BT933lwUSEKkmpfI9O57" \
--data-urlencode "google_post_type=offer" \
--data-urlencode "offer_title=20% Off Sale" \
--data-urlencode "offer_start_date=2026-04-14 08:50 am" \
--data-urlencode "offer_end_date=2026-04-21 08:50 am" \
--data-urlencode "coupon_code=SAVE20" \
--data-urlencode "link_to_redeem_url=https://example.com/redeem"

Sample Response

{
"message": "1 new Posts Scheduled.",
"error": false,
"data": []
}

Result: Your image post (with one or multiple images) has been successfully scheduled! The message confirms that the post is queued for publishing at the specified date and time.

Platform Photo Upload Limits

PlatformMax PhotosPhoto Size LimitCaption SupportNotes
Facebook20No restrictionYesSupports alt text, no restrictions on photo size.
Instagram108 MBYesMinimum resolution: 320×320 px, automatically cropped.
TikTok35No restrictionNoCannot mix photos with GIFs or videos.
Threads208 MBNoCannot mix photos with GIFs or videos.
X(Twitter)45 MBNoSupports only up to 4 photos per post.
LinkedIn9No restrictionNoPhotos and GIFs are supported, cannot mix with videos.
Bluesky41 MBNoSupports up to 4 images per post, alt text available.
Reddit20No restrictionYes40,000 character limit for captions.

Tips & Notes

  • Make sure your target social accounts are active and not expired before scheduling.
  • The social_network_id must match the account IDs retrieved from the List Category Accounts or List Social Accounts endpoints.
  • Ensure all image_urls are publicly accessible and point directly to image files.
  • Use ~~ to separate multiple images in the image_url parameter.
  • Avoid overloading with too many simultaneous posts to prevent API rate limiting.
  • When using platform-specific parameters, ensure the JSON is properly formatted and URL-encoded in the request.

Next Step: Combine this with your category and account lookups to automate the image posting workflow end-to-end.