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
- A Sprkly account.
- At least one connected social account in Settings, such as TikTok, Instagram, YouTube Shorts, Threads, or Facebook Page.
- A Sprkly API key created in Settings with these scopes:
post:write,post:read,media:write, andaccount:read. - 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:
- Trigger: new row, new form submission, new file, RSS item, CMS publish event, or webhook payload.
- Optional media step: upload a file to
POST /api/v1/mediaand keep the returnedmediaId. - Schedule step: call
POST /api/v1/postswith caption, platform, profile IDs, media, schedule time, and a stableexternalId.
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>andContent-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_keyas a private connection secret. - Ask users to choose
platform,profile_id,caption, optionaltitle, optionalmedia_url, andscheduled_time_iso. - Call
GET /api/v1/connectionsduring setup so users can copy the right profile ID. - Use
externalIdto avoid replaying the same source record. - Show the returned
postIdsin the automation run output. - Poll
GET /api/v1/posts/{id}forstatus,failedReason,publishedAt, andpermalink.
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.