Platform Guide11 min readApr 4, 2026

How to Post to Snapchat via API — Stories, Spotlight & Saved Stories

Snapchat reaches 850 million monthly active users, with 75% of 13-to-34-year-olds in 25+ countries using the app daily. For brands targeting Gen Z and young millennials, Snapchat is not optional — it is the primary channel. This guide covers every content type, all API parameters, media specifications, scheduling, and code examples for both the REST API and TypeScript SDK.

Why Snapchat still matters for content distribution

Unlike Instagram and TikTok, where the algorithm surfaces content to anyone regardless of follow status, Snapchat's Story feed is subscriber-first. When you post a Story, every one of your subscribers sees it at the top of their app. No algorithmic filtering, no pay-to-play. This makes Snapchat uniquely valuable for brands that have built a subscriber base and want guaranteed visibility.

Spotlight — Snapchat's answer to TikTok — changed the equation for discovery. Spotlight videos are surfaced algorithmically to users who don't follow you, based on engagement signals and content relevance. This creates a dual strategy: Stories for retention (your existing audience) and Spotlight for acquisition (new audiences). Saved Stories add a third dimension: permanent profile content that serves as a portfolio when new visitors check your profile.

The problem most teams face is that Snapchat's native posting tools are mobile-only. There's no web dashboard, no bulk upload, and no scheduling. For agencies managing multiple brand accounts or developers building social media tools, manual Snapchat posting doesn't scale. The API changes that.

Audience reach

Snapchat users open the app 40+ times per day on average, with a daily active user time of 30+ minutes. Story completion rates average 85% for brands with under 50k subscribers — significantly higher than Instagram Story completion rates.

The three Snapchat content types

Snapchat's content model has three distinct types, each with different distribution mechanics, audience reach, and persistence. Understanding when to use each type is critical for an effective Snapchat strategy.

Stories (24-hour ephemeral)

snapchat_post_type: "STORY"

The default Snapchat format. Stories appear at the top of your subscribers' feed and auto-delete after 24 hours. Best for daily updates, behind-the-scenes content, flash sales, and time-sensitive announcements. Every subscriber sees Stories in their feed — no algorithmic filtering. Completion rates for brand Stories average 85%, making this the highest-visibility format on the platform.

Saved Stories (permanent)

snapchat_post_type: "SAVED_STORY"

Saved Stories pin content to your public profile permanently. They appear in a dedicated section that visitors see when they tap your profile — functioning like Instagram Highlights but with native Snapchat formatting. Use Saved Stories for product demos, tutorials, FAQs, and any content that remains relevant beyond 24 hours. Set a title with snapchat_saved_story_title to organize collections.

Spotlight (algorithmic feed)

snapchat_post_type: "SPOTLIGHT"

Snapchat's TikTok-style vertical video feed. Spotlight content is surfaced algorithmically to users who don't follow you, based on engagement signals, watch time, and content relevance. This is your discovery channel — a single Spotlight video can reach millions of users outside your existing subscriber base. Spotlight favors content that keeps viewers watching: strong hooks in the first 2 seconds, vertical format, and 15-60 second durations tend to perform best.

Media requirements and validation

Snapchat is a video-first platform. Every post type requires a video attachment — there is no text-only or image-only option. CodivUpload validates these specs server-side before attempting to publish. If your media doesn't meet the requirements, the API returns a descriptive error so you can fix it before retrying.

SpecRequirementNotes
ContainerMP4H.264 video codec, AAC audio codec
Duration5 - 300 secondsSpotlight optimal: 15-60 seconds
Min resolution540 x 960 px9:16 vertical aspect ratio
Max file size1 GBSmaller files upload faster via CDN
Frame rate24-60 fps30 fps recommended for consistency
OrientationVertical (9:16)Horizontal videos are letterboxed

Vertical-only platform

Snapchat strongly penalizes non-vertical content. Horizontal or square videos are letterboxed with black bars, which dramatically reduces engagement. Always shoot or crop to 9:16 before uploading. CodivUpload does not auto-crop — if your video isn't vertical, it publishes as-is with letterboxing.

Snapchat-specific API parameters

All Snapchat parameters use the snapchat_ prefix and are passed alongside the standard CodivUpload post fields. These parameters are extracted server-side and forwarded to Snapchat's API — they are silently ignored if you post to other platforms in the same request.

ParameterTypeDescription
snapchat_post_typestringSTORY (default), SAVED_STORY, or SPOTLIGHT
snapchat_descriptionstringCaption for Spotlight; description for Saved Stories
snapchat_localestringContent locale in ll_CC format (e.g. en_US, fr_FR)
snapchat_skip_save_to_profilebooleanWhen true, snap is not pinned to public profile
snapchat_saved_story_titlestringCollection title for Saved Stories

Dashboard: Snapchat post creation

You don't have to write code. The CodivUpload dashboard exposes every Snapchat parameter through a visual interface. Select Snapchat from the platform list, choose your content type, upload your video, and hit publish — or schedule it for later.

Snapchat Post
Spotlight
studio-clip.mp4 (28s, 1080x1920)
Description

Behind the scenes at our studio

Locale

en_US

Save to profile

Yes

TypeScript SDK example

The codivupload TypeScript SDK provides full type safety for all Snapchat parameters. Install with npm install codivupload and publish Spotlight videos with autocomplete for every field.

snapchat-spotlight.ts
import { CodivUpload } from "codivupload";

const codiv = new CodivUpload("YOUR_API_KEY");

// Publish a Spotlight video
const post = await codiv.posts.create({
  profile_name: "my-brand",
  platforms: ["snapchat"],
  post_type: "video",
  description: "Studio session highlights",
  media_urls: ["https://cdn.example.com/studio.mp4"],
  snapchat_post_type: "SPOTLIGHT",
  snapchat_description: "Watch us build the new collection",
  snapchat_locale: "en_US",
});

// Cross-post: add other platforms
const crossPost = await codiv.posts.create({
  profile_name: "my-brand",
  platforms: ["snapchat", "tiktok", "instagram"],
  post_type: "video",
  media_urls: ["https://cdn.example.com/reel.mp4"],
  snapchat_post_type: "STORY",
  tiktok_privacy_level: "PUBLIC_TO_EVERYONE",
});

REST API example

If you prefer raw HTTP, here is a curl command that creates a Saved Story with a collection title. The same endpoint handles all 12 platforms — just change the platforms array and add the relevant overrides.

snapchat-saved-story.sh
# Create a Saved Story on Snapchat
curl -X POST \
  https://api.codivupload.com/v1/posts \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "profile_name": "my-brand",
    "platforms": ["snapchat"],
    "post_type": "video",
    "description": "Complete product walkthrough",
    "media_urls": ["https://cdn.example.com/walkthrough.mp4"],
    "snapchat_post_type": "SAVED_STORY",
    "snapchat_saved_story_title": "Product Tutorials",
    "snapchat_locale": "en_US"  }'

Scheduling Snapchat posts

Snapchat's native app has no scheduling feature. You have to open the app, record or upload, and post manually — every single time. CodivUpload solves this by accepting a scheduled_date field. Set any future ISO 8601 timestamp and CodivUpload queues the post for delivery at that exact time.

This is particularly valuable for Stories, which have a 24-hour lifespan. If your audience is most active between 7-9 PM in their timezone, you can pre-schedule a week of Stories to hit that window consistently — even if you're asleep or offline when they go live.

Combine scheduling with cross-platform posting: schedule the same video to publish as a Snapchat Story at 7 PM, a TikTok video at 7:15 PM, and an Instagram Reel at 7:30 PM. Each platform gets its own optimal timing while you upload everything in a single session.

Token security

CodivUpload encrypts all Snapchat OAuth tokens at rest using AES-256-GCM authenticated encryption. Tokens are decrypted only momentarily in server memory during API operations and are never stored in plaintext, written to logs, or accessible to humans.

Content strategy: when to use each type

The most effective Snapchat strategy uses all three content types in combination. Stories drive daily engagement with your existing subscribers. Spotlight brings in new followers through algorithmic discovery. Saved Stories convert profile visitors by showcasing your best permanent content.

A practical cadence for most brands: 1-2 Stories per day (casual, behind-the-scenes, time-sensitive), 2-3 Spotlight videos per week (polished, hook-driven, discoverable), and update Saved Story collections monthly (evergreen tutorials, product demos, FAQs). This creates a flywheel where Spotlight brings new subscribers who then see your daily Stories and explore your Saved Stories.

Because CodivUpload lets you cross-post the same video to Snapchat, TikTok, and Instagram simultaneously, you can repurpose vertical video across all three short-form platforms in a single API call. Use platform-specific overrides to customize the caption, hashtags, and privacy settings for each platform while uploading the video only once.

Start posting to Snapchat for free

2 profiles, 10 uploads/mo on the free plan. All 12 platforms included.

Get Started Free