Zernio | Developer News
708 subscribers
1 photo
1 video
524 links
This channel is for recurrent updates and announcements on https://zernio.com.

Zernio is a Social API for Posting and Analytics on 14 platforms.
Download Telegram
Reddit posting now supports post flairs via flairId in platformSpecificData.

Some subreddits require a flair; you can now fetch available flairs and set the one you want on the post.

New endpoint: GET /v1/accounts/{accountId}/reddit-flairs
Required query: subreddit (without r/)

New field: platformSpecificData.reddit.flairId (string)
If omitted, the API will attempt to use the first available flair as a fallback.

View documentation
❀3πŸ”₯1
Google Business Profile posts now support explicitly setting the content language via languageCode in GoogleBusinessPlatformData.

If omitted, the language is auto-detected from the post text; set it when auto-detection may be unreliable (short posts, mixed languages, transliteration).

New field: languageCode (BCP 47, e.g. en, de, es, fr).

View documentation
πŸ”₯2
POST /v1/inbox/comments/{postId}/{commentId}/private-reply now supports Facebook in addition to Instagram.

You can send a private reply to a Facebook post comment, which opens a Messenger conversation with the commenter (text-only; still limited to 1 private reply per comment within 7 days).

Use accountId (Instagram or Facebook) and message in the JSON body. The response platform is now instagram or facebook.

View documentation
πŸ”₯2
Instagram photo tagging now supports tagging specific slides in carousel posts via mediaIndex in platformSpecificData.userTags.

This lets you place tags on any image within a carousel. Tags without mediaIndex still default to the first image (index 0).

Use:
β€’ userTags[].mediaIndex (integer, 0-based)

Notes:
β€’ Not supported for stories or videos; tags targeting video items (or out-of-range indices) are ignored.

View documentation
❀1
New endpoint: POST /v1/posts/{postId}/unpublish.

You can now delete a previously published post from a specific social platform while keeping the Late post record (platform status becomes cancelled).

Request body: platform = threads | facebook | twitter | linkedin | youtube | pinterest | reddit | bluesky | googlebusiness | telegram.

Notes: Instagram/TikTok/Snapchat deletion isn’t supported. Telegram deletions may fail for messages older than 48h. YouTube deletion permanently removes the video.

View documentation
πŸ”₯4
Facebook publishing now supports Reels via FacebookPlatformData.contentType.

Set contentType to story or reel (omit for a feed post). Reels require a single vertical video (9:16, 3–60s).

New field for reels:
β€’ title β€” Reel title (only when contentType=reel)

Note: firstComment applies to feed posts only (not stories or reels).

View documentation
πŸ”₯3❀1
API keys can now be created with restricted access using scope, profileIds, and permission on POST /v1/api-keys.

This lets you issue keys limited to specific profiles and/or make keys read-only for safer analytics/integration use.

New request fields:
β€’ scope: full | profiles (default full)
β€’ profileIds: required when scope=profiles
β€’ permission: read-write | read (default read-write)

Key responses now include scope, profileIds (populated profile objects when scoped), and permission (e.g., in GET /v1/api-keys and create responses).

View documentation
πŸ”₯2😍1
LinkedIn document (PDF/carousel) posts now let you control the displayed document title via platformSpecificData.linkedin.documentTitle.

LinkedIn requires a title for document posts; if omitted, Late will fall back to the media item title, then the filename.

Use:
β€’ platformSpecificData.linkedin.documentTitle
β€’ media[].title (used as the LinkedIn document title if documentTitle is not set; otherwise falls back to filename)

View documentation
❀5
Real-time Webhooks are live πŸš€

Get notified instantly when someone comments on your posts or sends you a DM.

New events:
β€’ message.received β€” Instagram, Facebook, WhatsApp, Twitter, Bluesky, Reddit

β€’ comment.received β€” Instagram, Facebook, Threads, Twitter, YouTube, Bluesky, Reddit, LinkedIn

View documentation
❀4
New Analytics endpoints are available for aggregated reporting and scheduling optimization (requires the Analytics add-on).

Daily aggregated metrics: GET /v1/analytics/daily-metrics
β€’ Filters: platform, profileId, fromDate, toDate
β€’ Returns: dailyData + platformBreakdown with summed metrics (impressions, reach, likes, comments, shares, saves, clicks, views)

Best times to post: GET /v1/analytics/best-time
β€’ Filters: platform, profileId
β€’ Returns: slots grouped by day_of_week (0=Monday..6=Sunday) and hour (UTC 0-23) with avg_engagement

Content performance decay: GET /v1/analytics/content-decay
β€’ Filters: platform, profileId
β€’ Returns: buckets with bucket_label and avg_pct_of_final

Posting frequency vs engagement: GET /v1/analytics/posting-frequency
β€’ Filters: platform, profileId
β€’ Returns: frequency rows with posts_per_week, avg_engagement_rate, weeks_count

View documentation
❀6πŸ”₯3
New validation endpoints are available under /v1/tools/validate to preflight-check content before publishing.

Validate weighted character counts per platform with POST /v1/tools/validate/post-length (body: { text }) and get per-platform { count, limit, valid }.

Dry-run the full post validation pipeline (same body as POST /v1/posts) with POST /v1/tools/validate/post. Target platforms via platforms[].platform: twitter, instagram, tiktok, youtube, facebook, linkedin, bluesky, threads, reddit, pinterest, telegram, snapchat, googlebusiness. Returns valid plus errors[] and/or warnings[].

Validate a public media URL and compare against per-platform size limits with POST /v1/tools/validate/media (body: { url }). Returns contentType, size, type (image/video/unknown), and platformLimits when available.

Check subreddit existence/info with GET /v1/tools/validate/subreddit using query name.

View documentation
❀3πŸ”₯1
Late CLI is now available.

npm install -g late

Docs: https://docs.getlate.dev/resources/cli
Source: https://github.com/getlate-dev/late-cli
πŸ”₯3❀1πŸ‘€1
New endpoint GET /v1/analytics/post-timeline returns a daily analytics timeline for a specific post (per platform for multi-platform Late posts), showing how metrics evolve day-by-day since publishing. Requires the Analytics add-on.

Query params:
β€’ postId (required) β€” accepts ExternalPost ID, platformPostId, or Late Post ID
β€’ fromDate (optional, ISO 8601; default 90 days ago)
β€’ toDate (optional, ISO 8601; default now)

Response includes timeline[] rows with date, platform, platformPostId, and metrics like impressions, reach, likes, comments, shares, saves, clicks, views.

View documentation
❀7
You can now authenticate the Late CLI directly from the browser.

Running late auth:login opens a browser window where users verify a confirmation code and authorize access.

An API key is created automatically and saved to the CLI config.
❀2πŸ‘2
Posts can now be recycled (auto-reposted on a schedule) via recycling on POST /v1/posts and PUT /v1/posts/{postId}.

After the original post is published, Late will create new scheduled copies at a weekly/monthly interval until an expiration condition is met.

Configure with recycling:
β€’ gap (int)
β€’ gapFreq: week | month
β€’ startDate (date-time, optional)
β€’ expireCount (int, optional)
β€’ expireDate (date-time, optional)
β€’ contentVariations (string[], optional)

Webhooks: a new event post.recycled is available in POST/PUT /v1/webhooks/settings and filterable in GET /v1/webhooks/logs.

View documentation
πŸ”₯3
GET /v1/connect/{platform} redirect behavior now includes accountId in standard mode.

After a successful connect, Late’s standard redirect to redirect_url now appends ?connected={platform}&profileId=X&accountId=Y&username=Z (previously no accountId).

In headless mode (headless=true), the redirect includes raw OAuth data only when a post-OAuth selection step is required (e.g. LinkedIn orgs, Facebook pages). If no selection is needed, the account is created directly and the redirect includes accountId.

View documentation
πŸ”₯1
New endpoint GET /v1/accounts/{accountId}/linkedin-post-reactions returns who reacted to a LinkedIn post, including reactor profile details.

Currently supported only for organization/company page accounts (personal profile reaction data is restricted by LinkedIn).

Required params: accountId (path), urn (query, LinkedIn post URN)
Optional: limit (1-100, default 25), cursor

Response includes reactions[] with reactionType (LIKE, PRAISE, EMPATHY, INTEREST, APPRECIATION, ENTERTAINMENT), reactedAt, and from (name, headline, profileUrl), plus pagination.

View documentation
πŸ”₯2
Twitter posts now support replying to an existing tweet via replyToTweetId in TwitterPlatformData.

Set replyToTweetId to publish the first tweet (or the root of a thread) as a reply; subsequent thread items chain normally.

replySettings also adds verified (now: following, mentionedUsers, subscribers, verified). Note: replySettings cannot be combined with replyToTweetId.

View documentation
❀2
GBP endpoints now support overriding the target location via optional locationId.

This lets you fetch/update reviews, media, attributes, place actions, food menus, and location details for a specific GBP location without changing the account’s selected location.

Use locationId (query) on:
β€’ GET /v1/accounts/{accountId}/gmb-reviews
β€’ GET/PUT /v1/accounts/{accountId}/gmb-food-menus
β€’ GET/PUT /v1/accounts/{accountId}/gmb-location-details
β€’ GET/POST/DELETE /v1/accounts/{accountId}/gmb-media
β€’ GET/PUT /v1/accounts/{accountId}/gmb-attributes
β€’ GET/POST/DELETE /v1/accounts/{accountId}/gmb-place-actions

View documentation
❀2πŸ‘1
The GET /v1/usage-stats response now includes billingAnchorDay.

Use billingAnchorDay (1–31) to determine the day of the month when the billing cycle resets, which can help align usage tracking and reset expectations.

View documentation
❀2πŸ‘1
GET /v1/analytics now returns richer media metadata for analytics results.

You can render previews and handle carousels consistently using the new fields on both single-post and list responses.

New fields:
β€’ thumbnailUrl
β€’ mediaType = image | video | gif | document | carousel | text (single-post also supports image | video | carousel | text)
β€’ mediaItems (array of { type: image|video, url, thumbnail }; carousel posts include one entry per slide)

View documentation
πŸ₯°1