Upload Media
This endpoint is only available on the Growth and Business plans. Uploading files via the API and using the URL returned by OneUp helps reduce the chances of failed posts, as the media is automatically resized and optimized to meet each social network's specifications.
Overview
The Upload Media endpoint allows you to upload media files (images and videos) to OneUp's storage. The upload process consists of two steps:
- Get an upload URL — Call the Upload Media endpoint to receive a pre-signed
upload_urland afile_path. - Upload your file — Use the
upload_urlto upload your file directly to storage via a PUT request. - Use the file path — Once uploaded, use the
file_pathas theimage_urlorvideo_urlin your post creation requests.
Base URL:
https://www.oneupapp.io
Endpoint
GET /api/uploadmedia
Request Parameters
| Parameter | Required | Description |
|---|---|---|
apiKey | Yes | Your personal API key generated from the API Access page. |
Step 1: Get Upload URL
Sample Request
curl --location --request GET \
"https://oneupapp.io/api/uploadmedia?apiKey=621544d93ffe2db52b01"
Sample Response
{
"upload_url": "https://oneupdata.s3.us-east-2.amazonaws.com/api-uploads/daviswbaer%40gmail.com/9d13f671-6b21-4229-95b8-23240e78ad89?x-amz-acl=public-read&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIY6DV4UGMLTDBOLA%2F20260421%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date=20260421T120531Z&X-Amz-SignedHeaders=host%3Bx-amz-acl&X-Amz-Expires=1200&X-Amz-Signature=65e0a60eda48adb9a099eaea2c924d92bc4019e953bdab2bb7c6d5ed5592fc04",
"file_path": "https://s3.us-east-2.amazonaws.com/oneupdata/api-uploads/daviswbaer@gmail.com/9d13f671-6b21-4229-95b8-23240e78ad89"
}
Step 2: Upload Your File
Use the upload_url from the response to upload your file via a PUT request. Make sure to include the correct Content-Type header for your file type.
Sample Request
curl -X PUT "https://oneupdata.s3.us-east-2.amazonaws.com/api-uploads/daviswbaer%40gmail.com/13be1955-882e-4af1-bedc-0fa81b5592e8?x-amz-acl=public-read&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIY6DV4UGMLTDBOLA%2F20260421%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date=20260421T095711Z&X-Amz-SignedHeaders=host%3Bx-amz-acl&X-Amz-Expires=1200&X-Amz-Signature=ef93e63a81a175b68a35f08c1842ac9e28ffa3036041aee23a347dfe353fbf02" \
-H "Content-Type: video/mp4" \
--upload-file "/path/to/your/file.mp4"
Common Content Types
| File Type | Content Type |
|---|---|
| MP4 Video | video/mp4 |
| JPEG Image | image/jpeg |
| PNG Image | image/png |
| GIF Image | image/gif |
| WebP Image | image/webp |
Step 3: Use the File Path
After a successful upload, use the file_path from Step 1 as the media URL in your post creation requests:
- For image posts: use it as the
image_urlparameter in Create Image Post. - For video posts: use it as the
video_urlparameter in Create Video Post.
✅ Result: Your media file has been uploaded and is ready to be used in your scheduled posts.
Tips & Notes
- The
upload_urlis a pre-signed URL that expires after 20 minutes. Upload your file promptly after receiving it. - Make sure to set the correct
Content-Typeheader that matches your file type. - The
file_pathis publicly accessible after upload and can be used directly in post creation endpoints. - You can reuse the same
file_pathacross multiple posts.
✅ Next Step: Use the returned file_path with the Create Image Post or Create Video Post endpoints to schedule your posts.