Sprkly
← Back to Resources
Guide · 2 min read

Build Zapier and Make templates with the Sprkly API

Sprkly can be used as the publishing layer for Zapier, Make.com, and other automation tools. Users sign up for Sprkly, connect their social accounts, create a scoped API key, then fork or copy a template that calls the Sprkly API.

What users need first

  1. A Sprkly account.
  2. At least one connected social account in Settings, such as TikTok, Instagram, YouTube Shorts, Threads, or Facebook Page.
  3. A Sprkly API key created in Settings with these scopes: post:write, post:read, media:write, and account:read.
  4. The connected account IDs from GET /api/v1/connections.

Keep API keys in Zapier or Make connection secrets. Do not paste them into public fields, public templates, frontend JavaScript, screenshots, or shared task logs.

Recommended template shape

A good no-code template has three steps:

  1. Trigger: new row, new form submission, new file, RSS item, CMS publish event, or webhook payload.
  2. Optional media step: upload a file to POST /api/v1/media and keep the returned mediaId.
  3. Schedule step: call POST /api/v1/posts with caption, platform, profile IDs, media, schedule time, and a stable externalId.

Use externalId for idempotency. For example, combine the source app name and record ID, such as airtable-rec123 or shopify-product-987-launch.

Zapier Webhooks action

Use this as a Custom Request action in Webhooks by Zapier:

{
  "method": "POST",
  "url": "https://sprkly.app/api/v1/posts",
  "headers": {
    "Authorization": "Bearer {{bundle.authData.api_key}}",
    "Content-Type": "application/json"
  },
  "body": {
    "platforms": ["tiktok"],
    "profileIds": ["{{profile_id}}"],
    "caption": "{{caption}}",
    "title": "{{title}}",
    "mediaUrls": ["{{public_video_url}}"],
    "scheduledTime": "{{scheduled_time_iso}}",
    "externalId": "zapier-{{source_record_id}}",
    "platformMeta": {
      "tiktok": {
        "privacyLevel": "PUBLIC_TO_EVERYONE",
        "disableComment": false,
        "disableDuet": true,
        "disableStitch": true,
        "commercialContentDisclosure": false,
        "brandOrganicOptIn": false,
        "brandContentOptIn": false
      }
    }
  }
}

For Instagram and TikTok, include a public media URL or upload media first and pass mediaId. TikTok also requires title and platformMeta.tiktok.privacyLevel.

Make.com HTTP module

Create an HTTP "Make a request" module with:

  • Method: POST
  • URL: https://sprkly.app/api/v1/posts
  • Headers: Authorization: Bearer <Sprkly API key> and Content-Type: application/json
  • Body type: Raw JSON
{
  "platforms": ["instagram"],
  "profileIds": ["{{profile_id}}"],
  "caption": "{{caption}}",
  "mediaUrls": ["{{image_or_video_url}}"],
  "scheduledTime": "{{formatDate(schedule_time; \"YYYY-MM-DDTHH:mm:ss.000[Z]\")}}",
  "externalId": "make-{{record_id}}"
}

Add a second HTTP module if you want to poll status later:

GET https://sprkly.app/api/v1/posts/{{postId}}
Authorization: Bearer <Sprkly API key>

Forkable template checklist

  • Store api_key as a private connection secret.
  • Ask users to choose platform, profile_id, caption, optional title, optional media_url, and scheduled_time_iso.
  • Call GET /api/v1/connections during setup so users can copy the right profile ID.
  • Use externalId to avoid replaying the same source record.
  • Show the returned postIds in the automation run output.
  • Poll GET /api/v1/posts/{id} for status, failedReason, publishedAt, and permalink.

For the full endpoint reference, see the API docs. Want a ready-made template or a hand setting it up? Email [email protected] and we will share one.

Still have a question?

Email [email protected] — we reply within 24 hours.