Integration Guide

Upload-Post + n8n Integration

Automate your social media publishing by connecting Upload-Post with n8n. Start by setting up your Upload-Post users and API key, then choose between our official n8n node or manual HTTP configuration.

Need help building your workflow? We work with trusted partners who can set up your n8n automation or build a custom project for you.

Contact us

Prerequisite: Setup in Upload-Post

Before configuring n8n, you must set up users and generate an API key within your Upload-Post account. These will be used to authenticate and direct your automated posts.

Manage Users & Connect Social Accounts

Each post is associated with a specific user in Upload-Post. This user must have the target social media platforms connected to their profile.

  • Navigate to the Manage Users page in your Upload-Post dashboard.
  • Add a new user or select an existing one.
  • For the chosen user, connect all social media accounts (e.g., TikTok, Instagram, Facebook) to which you intend to publish content via n8n.
  • Take note of the User Identifier (this is typically the username or a unique ID associated with the user in Upload-Post). You will need this for your n8n workflows.

Important: The social accounts must be connected to the *specific user* you intend to use in your automation, not just generally to your Upload-Post account.

Generate API Key

The API key authenticates your requests to the Upload-Post API.

  • Go to the API Keys page in your Upload-Post API keys section.
  • Generate a new API key if you don't have one already.
  • Copy this API key securely. You will use it in your n8n credential setup.

Security Note: Treat your API key like a password. Do not share it publicly or embed it directly in shared workflows. Use n8n's credential management system.

Once you have your User Identifier and API Key from Upload-Post, you are ready to configure n8n.

Recommended: Using the Official Upload-Post n8n Node

Node Availability:

The n8n-nodes-upload-post node is now included by default in updated versions of n8n for both self-hosted (on-premise) n8n instances and n8n cloud instances. No manual installation is required - just ensure you have the latest version of n8n.

The easiest way to integrate is using our official node: n8n-nodes-upload-post. This node is included by default in updated versions of n8n and streamlines setup with dedicated operations for both cloud and self-hosted n8n instances.

1. Access the Upload-Post Node

The Upload-Post node is included by default in updated versions of n8n:

  1. Ensure you have the latest version of n8n installed.
  2. Open your n8n workflow editor.
  3. Search for "Upload Post" in the node library.
  4. The node should be available without any additional installation.

If you don't see the node, please update your n8n instance to the latest version.

2. Configure Upload-Post API Credentials in n8n

You'll use the API Key generated from your Upload Post API Section (as described in the "Prerequisite" section above).

  1. In n8n, go to Credentials > New.
  2. Search for Upload Post API and select it.
  3. Assign a memorable Credential Name (e.g., "My Upload-Post API Key").
  4. Paste your Upload Post API Key into the designated field.
  5. Click Save.

This securely stores your API key for use by the Upload-Post node.

3. Utilize Node Operations in Your Workflows

The node provides dedicated operations. For each, you will need to provide the User Identifier (from the user you set up in Upload-Post Manage Users) to specify which user's social accounts to use.

Upload Photo(s)

Upload one or more photos. Accepts files or URLs.

Required: User Identifier, Platform(s), Photos. Optional: Title, Caption. Platform-specific fields available.

Upload Video

Upload a single video. Accepts file or URL.

Required: User Identifier, Platform(s), Video. Optional: Title. Platform-specific fields available.

Upload Text

Upload a text-based post.

Required: User Identifier, Platform(s), Title/Content. Platform-specific fields available.

Refer to the node's help documentation within n8n or the npm package page for detailed parameter lists. The Upload Post API Documentation provides full details on underlying API capabilities.

Using this dedicated n8n node is the recommended approach for both cloud and self-hosted n8n users.

Manual Configuration (Alternative using HTTP Request Node)

If the official node is not suitable for your specific needs, you can configure the integration manually using n8n's generic HTTP Request node. This requires careful setup of API parameters.

Prerequisite: Upload-Post User & API Key

Ensure you have completed the "Prerequisite: Setup in Upload-Post" steps described at the beginning of this guide. You will need:

Open Upload-Post App

Understanding Upload-Post API Endpoints & Making Requests

Upload-Post offers distinct API endpoints for uploading different types of content. All requests must include an Authorization header with your API Key and generally require a user field (your User Identifier from Upload-Post) and platform[] to specify the target social media.

1. Video Upload Endpoint

Endpoint URL: https://api.upload-post.com/api/upload

Use this endpoint for uploading single video files. Key parameters include video (file), title, user, and platform[].

curl \
  -H 'Authorization: Apikey YOUR_API_KEY_HERE' \
  -F 'video=@/path/to/your/video.mp4' \
  -F 'title="Your Video Title"' \
  -F 'user="YOUR_USER_IDENTIFIER"' \
  -F 'platform[]=tiktok' \
  -X POST https://api.upload-post.com/api/upload

2. Photo Upload Endpoint

Endpoint URL: https://api.upload-post.com/api/upload_photos

For uploading one or more photos (e.g., for carousels/slideshows). Use photos[] for each image file. Also include user, platform[], title, and optionally description.

curl \
  -H 'Authorization: Apikey YOUR_API_KEY_HERE' \
  -F 'photos[]=@/path/to/your/image1.jpg' \
  -F 'photos[]=@/path/to/your/image2.webp' \
  -F 'user="YOUR_USER_IDENTIFIER"' \
  -F 'platform[]=instagram' \
  -F 'title="My Awesome Photo Album"' \
  -F 'description="Check out these cool photos!"' \
  -X POST https://api.upload-post.com/api/upload_photos

3. Text Upload Endpoint

Endpoint URL: https://api.upload-post.com/api/upload_text

For publishing text-based posts. Requires user, platform[], and title (as the main content). caption can be used for internal tracking or specific platform needs.

curl \
  -H 'Authorization: Apikey YOUR_API_KEY_HERE' \
  -F 'user="YOUR_USER_IDENTIFIER"' \
  -F 'platform[]=x' \
  -F 'title="This is my amazing tweet content!"' \
  -F 'caption="Optional: A caption for stats & tracking."' \
  -X POST https://api.upload-post.com/api/upload_text

Important Notes for Manual Configuration:

  • Replace YOUR_API_KEY_HERE with your actual API key from the Upload-Post Api section.
  • Replace YOUR_USER_IDENTIFIER with the specific User Identifier (e.g., username) from Upload-Post that has the target social media accounts connected.
  • It's highly recommended to store your API key in n8n's credential manager and reference it in your HTTP Request node instead of hardcoding.
  • The @/path/to/your/file syntax in cURL indicates a file upload. In n8n, you would use expressions to reference binary data from previous nodes (e.g., ={{ $binary.data }}).

Pro Tip: Test & Generate cURL from Upload-Post Dashboard

Before configuring n8n, test your uploads directly from the Upload-Post Dashboard. Once you've successfully uploaded content, the dashboard generates a perfect cURL command that you can copy and import directly into your n8n HTTP Request node.

Workflow:

  1. Go to Upload-Post Dashboard
  2. Upload your content (video, photos, or text) to your desired platforms
  3. After successful upload, copy the generated cURL command
  4. Import this cURL directly into your n8n HTTP Request node using the "Import from cURL" feature

Configure n8n HTTP Request Node (Body)

Key fields for the HTTP Request node's body (typically multipart/form-data):

Field Value / Description Required
user Your User Identifier from Upload-Post (e.g., username). Required
platform[] Platform identifier (e.g., tiktok, instagram). Repeat for multiple platforms. Required
title Post title or content (varies by platform and post type). Optional/Varies
video Binary file data for video uploads. If uploading video
image[] Binary file data for image uploads. Repeat for multiple images in a carousel/slideshow. If uploading image(s)
n8n Configuration Tips:
  • Set HTTP Request node Method to POST.
  • Set URL to https://api.upload-post.com/api/upload.
  • Add the Authorization header with your API key.
  • For Body Content Type, select multipart/form-data.
  • Add fields to the body like user, platform[], title, and either video or image[] with appropriate values (e.g., using n8n expressions like ={{ $binary.data }} for file data).

For detailed examples and platform-specific parameters, refer to the Upload Post API Documentation.

Example: HTTP Node JSON (Video to TikTok)

This is a conceptual JSON representation for an n8n HTTP Request node configured to upload a video to TikTok. You would build this using the n8n interface.

{
  "parameters": {
    "method": "POST",
    "url": "https://api.upload-post.com/api/upload",
    "authentication": "headerAuth",
    "sendHeaders": true,
    "headerParameters": {
      "parameters": [
        {
          "name": "Authorization",
          "value": "Apikey YOUR_API_KEY_HERE"
        }
      ]
    },
    "sendBody": true,
    "bodyContentType": "multipart-form-data",
    "bodyParameters": {
      "parameters": [
        {
          "name": "user",
          "value": "YOUR_UPLOAD_POST_USER_IDENTIFIER"
        },
        {
          "name": "title",
          "value": "= $input.item.title ? $input.item.title : 'My awesome video'"
        },
        {
          "name": "platform[]",
          "value": "tiktok"
        }
      ]
    },
    "formBinaryData": {
      "video": "={{ $binary.data }}"
    },
    "options": {}
  },
  "name": "Upload Video to TikTok (Manual)",
  "type": "n8n-nodes-base.httpRequest"
}

Crucial: API Keys & User Identifiers

  • API Key Security: Always use n8n's credential management for your Upload-Post API Key. Avoid hardcoding it.
  • User Identifier: Ensure the user field in your request body correctly references the User Identifier from Upload-Post whose connected social accounts you intend to use.
  • When sharing workflows, export without sensitive credential data.

Example Workflow: AI-powered Social Media Publisher

This workflow is available as a template: View on n8n.io or see all our n8n templates

What It Does

  • Monitors a Google Drive folder for new videos
  • Transcribes the video using OpenAI
  • Generates engaging social media descriptions
  • Uploads to Instagram, TikTok & YouTube
  • Sends notifications on completion or errors

Workflow Architecture

n8n Workflow Architecture

Implementation Steps

  1. Google Drive Trigger: Configure to monitor a specific folder for new videos
  2. OpenAI Transcription: Set up to extract audio and convert to text
  3. OpenAI Description Generator: Use a custom prompt to create engaging descriptions based on transcription
  4. Upload-Post HTTP Request: Configure as described in previous steps with multi-platform selection
  5. Error Handling: Add Telegram notification for success/failure alerts

Example Workflow: Image Carousel Publisher for Instagram & TikTok

This workflow is available as a template: View on n8n.io or see all our n8n templates

What It Does

  • Automates uploading multiple images as carousels to Instagram
  • Automates uploading multiple images as slideshows to TikTok
  • Streamlines visual content management across platforms
  • Handles multi-image uploads with a single trigger

Workflow Steps

  1. Trigger: Start the workflow with your selected images (e.g., from a schedule, webhook, or manual execution).
  2. Image Processing: The workflow prepares images for platform-specific formats (consider nodes for resizing or formatting if needed).
  3. Upload-Post HTTP Request: Configure an HTTP Request node (similar to the video upload) but adjust for image uploads.
    • Use `image[]` field instead of `video`.
    • Pass binary data for each image to the `image[]` field.
    • Set `platform[]` to `instagram` and/or `tiktok`.
  4. Platform Optimization: Upload-Post handles formatting according to each platform's requirements (carousel for Instagram, slideshow for TikTok).
  5. (Optional) Notifications: Add nodes to notify upon success or failure.

Refer to the n8n template for specific node configurations, especially for handling multiple image inputs.

Need Assistance?

Our integration experts are here to help