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
| Parameter | Required | Description |
|---|---|---|
apiKey | Yes | Your personal API key generated from the API Access page. |
category_id | Yes | The ID of the category that groups your target social accounts. |
social_network_id | Yes | A 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_time | Yes | The date and time (in YYYY-MM-DD HH:MM format) when the post should be published. |
title | No | The title of your post (for YouTube, Reddit, and Threads posts). |
content | Yes | The text content of your post. |
image_url | Yes | The 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_photo | No | Set 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_comment | No | The first comment to be added to the post (optional and only for Facebook, Instagram, LinkedIn, and YouTube). |
google_post_type | No | Google 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_button | No | CTA button for GBP update and event types. Values: CALL, LEARN_MORE, BOOK, SIGN_UP, ORDER_ONLINE, BUY |
cta_button_url | No | URL for the CTA button. Optional when cta_button is CALL, required for all other button types. |
event_title | No | Required for GBP event type. The title of the event. |
event_start_date | No | Required for GBP event type. Format: YYYY-MM-DD HH:MM am/pm (e.g., 2026-04-14 08:50 am) |
event_end_date | No | Required for GBP event type. Format: YYYY-MM-DD HH:MM am/pm (e.g., 2026-04-21 08:50 am) |
offer_title | No | Required for GBP offer type. The title of the offer. |
offer_start_date | No | Required for GBP offer type. Format: YYYY-MM-DD HH:MM am/pm (e.g., 2026-04-14 08:50 am) |
offer_end_date | No | Required for GBP offer type. Format: YYYY-MM-DD HH:MM am/pm (e.g., 2026-04-21 08:50 am) |
coupon_code | No | Optional for GBP offer type. A coupon code for the offer. |
link_to_redeem_url | No | Optional for GBP offer type. A link to redeem the offer. |
subreddit | No | The 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). |
isDraftPost | No | Set 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 totrueto publish as an Instagram Story. Default:falsecollaborator(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 totrueto publish as a Facebook Story. Default:falselocationId(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 totrueto publish as a Snapchat Spotlight. Default:false
TikTok:
tiktok: A JSON object with the following option:autoAddMusic(boolean): Set totrueto 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_nameandboard_idare 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,BUYcta_button_url(optional ifcta_buttonisCALL, required otherwise): The URL for the CTA button
Event type (google_post_type=event):
event_title(required): The title of the eventevent_start_date(required): FormatYYYY-MM-DD HH:MM am/pm(e.g.,2026-04-14 08:50 am)event_end_date(required): FormatYYYY-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,BUYcta_button_url(optional ifcta_buttonisCALL, required otherwise): The URL for the CTA button
Offer type (google_post_type=offer):
offer_title(required): The title of the offeroffer_start_date(required): FormatYYYY-MM-DD HH:MM am/pm(e.g.,2026-04-14 08:50 am)offer_end_date(required): FormatYYYY-MM-DD HH:MM am/pm(e.g.,2026-04-21 08:50 am)coupon_code(optional): A coupon code for the offerlink_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
| Platform | Max Photos | Photo Size Limit | Caption Support | Notes |
|---|---|---|---|---|
| 20 | No restriction | Yes | Supports alt text, no restrictions on photo size. | |
| 10 | 8 MB | Yes | Minimum resolution: 320×320 px, automatically cropped. | |
| TikTok | 35 | No restriction | No | Cannot mix photos with GIFs or videos. |
| Threads | 20 | 8 MB | No | Cannot mix photos with GIFs or videos. |
| X(Twitter) | 4 | 5 MB | No | Supports only up to 4 photos per post. |
| 9 | No restriction | No | Photos and GIFs are supported, cannot mix with videos. | |
| Bluesky | 4 | 1 MB | No | Supports up to 4 images per post, alt text available. |
| 20 | No restriction | Yes | 40,000 character limit for captions. |
Tips & Notes
- Make sure your target social accounts are active and not expired before scheduling.
- The
social_network_idmust 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 theimage_urlparameter. - 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.