Zernio | Developer News
714 subscribers
1 photo
1 video
535 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
Channel created
Channel photo updated
Hey 👋

Welcome to the Zernio Dev News channel 🙂

Here we share technical updates, API changes, and product news for zernio.com

You’ll find:
🐛 Bug fixes and reliability improvements
⚙️ New endpoints, SDKs, and integration updates
🚨 Breaking changes (with migration notes)
💡 Short examples so you can plug things in fast

This channel is:
🔒 Read‑only, announcement‑only
🧵 Low noise, just the important stuff

Useful links:
📚 Docs → https://docs.zernio.com
3👍1
Zernio | Developer News pinned «Hey 👋 Welcome to the Zernio Dev News channel 🙂 Here we share technical updates, API changes, and product news for zernio.com You’ll find: 🐛 Bug fixes and reliability improvements ⚙️ New endpoints, SDKs, and integration updates 🚨 Breaking changes (with…»
New Endpoints Available:

1. GET /v1/accounts/health
- This endpoint allows you to check the health status of all connected social accounts. It returns a summary of token validity, permissions status, and any issues that need attention. This is useful for monitoring account connections and identifying accounts that may need reconnection.
- Parameters:
- profileId (string, optional): Filter by profile ID.
- platform (string, optional): Filter by platform. Acceptable values include: facebook, instagram, linkedin, twitter, tiktok, youtube, threads, pinterest, reddit, bluesky, googlebusiness, telegram.
- status (string, optional): Filter by health status. Acceptable values are healthy, warning, error.
- Response: Returns a JSON object containing:
- summary: Total number of accounts, number of healthy accounts, accounts with warnings, accounts with errors, and accounts needing reconnection.
- accounts: An array of account details, including account ID, platform, username, display name, health status, posting and analytics permissions, token validity, and any issues.

2. GET /v1/accounts/{accountId}/health
- This endpoint provides detailed health information for a specific social account. It includes token status, granted permissions, missing permissions, and actionable recommendations.
- Parameters:
- accountId (string, required): The account ID for which to check the health.
- Response: Returns a JSON object containing:
- accountId, platform, username, displayName, overall status, tokenStatus (validity, expiry time, refresh needs), permissions (posting, analytics, optional), issues found, and actionable recommendations.

These new endpoints enhance the API's capability to monitor and manage social media accounts effectively.
2
GET /v1/profiles
This endpoint lists profiles visible to the authenticated user. It now includes a new optional query parameter includeOverLimit (type: boolean, default: false). When set to true, it includes profiles that exceed the user's plan limit, which will have isOverLimit: true in the response. This is useful for managing or deleting profiles after a plan downgrade. The profiles are sorted by creation date (oldest first).

Response contains:
- profiles: an array of profile objects, each containing:
- _id: string
- name: string
- color: string
- isDefault: boolean
- isOverLimit: boolean (only present when includeOverLimit=true)
- createdAt: string (date-time)

GET /v1/accounts
This endpoint lists connected social accounts. It now also includes the includeOverLimit parameter (type: boolean, default: false). When true, it includes accounts from profiles that exceed the user's plan limit, allowing users to disconnect accounts from over-limit profiles for deletion.

Response contains:
- accounts: an array of account objects, each containing:
- _id: string
- platform: string
- profileId: object containing profile details
- username: string
- displayName: string
- profileUrl: string
- isActive: boolean
- hasAnalyticsAccess: boolean (indicates if the user has analytics add-on access)
4
GET /v1/accounts/{accountId}/linkedin-mentions

This endpoint resolves a LinkedIn profile URL (for a person) or a company page URL (for an organization) to a URN that can be used to @mention them in posts.

Parameters:
- accountId (path, required): The LinkedIn account ID.
- url (query, required): LinkedIn profile URL, company URL, or vanity name. It supports:
- Person: miquelpalet, linkedin.com/in/miquelpalet
- Organization: company/microsoft, linkedin.com/company/microsoft
- displayName (query, optional): The exact display name as shown on LinkedIn. This is required for clickable person mentions. If not provided, the name is derived from the vanity URL, which may not match exactly.

Response:
On success (HTTP 200), the response contains:
- urn: The LinkedIn URN (either for a person or organization).
- type: The type of entity, which can be either person or organization.
- displayName: The display name (provided, from API, or derived from vanity URL).
- mentionFormat: Ready-to-use mention format for post content.
- vanityName: The vanity name/slug (only for organization mentions).
- warning: A warning about clickable mentions (only present for person mentions if displayName was not provided).

This change allows developers to mention organizations without needing to be an admin of a LinkedIn organization, which simplifies the process of tagging companies in posts. Person mentions still require admin access for the organization but now support a broader range of input formats.
🔥31👏1
New Endpoints for Pinterest Integration

We have added two new endpoints to enhance your integration with Pinterest in headless mode:

1. GET /v1/connect/pinterest/select-board
- Summary: List Pinterest Boards after OAuth (Headless Mode)
- Description: This endpoint retrieves a list of Pinterest boards available for selection after initiating OAuth via /v1/connect/pinterest with headless=true. It allows you to build your own fully-branded board selector instead of using Late's hosted UI.
- Parameters:
- X-Connect-Token (header, required): Short-lived connect token from the OAuth redirect.
- profileId (query, required): Your Late profile ID.
- tempToken (query, required): Temporary Pinterest access token from the OAuth callback redirect.
- Responses:
- 200: Returns a list of Pinterest boards available for connection, including each board's ID, name, description, and privacy setting.
- 400: Missing required parameters.
- 401: Unauthorized access.
- 403: No access to profile.
- 500: Failed to fetch boards.

2. POST /v1/connect/pinterest/select-board
- Summary: Select a Pinterest Board to complete the connection (Headless Mode)
- Description: Use this endpoint to save the selected board and complete the Pinterest account connection after OAuth.
- Request Body: Must include the following fields:
- profileId (string, required): Your Late profile ID.
- boardId (string, required): The Pinterest Board ID selected by the user.
- boardName (string, optional): The board name for display purposes.
- tempToken (string, required): Temporary Pinterest access token from OAuth.
- userProfile (object, optional): User profile data from OAuth redirect.
- refreshToken (string, optional): Pinterest refresh token if available.
- expiresIn (integer, optional): Token expiration time in seconds.
- redirect_url (string, optional): Custom redirect URL after connection completes.
- Responses:
- 200: Pinterest Board connected successfully, returns a message and account details.
- 400: Missing required fields.
- 401: Unauthorized access.
- 403: No access to profile or profile limit exceeded.
- 500: Failed to save Pinterest connection.
3👍2🥰1
New Endpoints Available:

1. GET /v1/logs
- This endpoint allows you to retrieve publishing logs for all posts. You can filter logs by status (status), platform (platform), and action (action). The logs include detailed information about each publishing attempt, such as API requests, responses, and timing data.
- status (string, optional): Filter by log status (options: success, failed, pending, skipped, all).
- platform (string, optional): Filter by platform (options include tiktok, instagram, facebook, etc.).
- action (string, optional): Filter by action type (options: publish, retry, media_upload, etc.).
- days (integer, optional): Number of days to look back (max 7, default 7).
- limit (integer, optional): Maximum number of logs to return (max 100, default 50).
- skip (integer, optional): Number of logs to skip for pagination (default 0).
- The response includes an array of logs and pagination details.

2. GET /v1/logs/{logId}
- Use this endpoint to retrieve detailed information about a specific log entry, including full request and response bodies for debugging purposes.
- logId (string, required): The ID of the log entry you want to retrieve.
- The response contains the log entry details, including the full context of the publishing attempt.

3. GET /v1/posts/{postId}/logs
- This endpoint retrieves all publishing logs for a specific post, showing the complete history of publishing attempts across all platforms.
- postId (string, required): The ID of the post for which you want to retrieve logs.
- limit (integer, optional): Maximum number of logs to return (max 100, default 50).
- The response includes an array of logs specific to the post and the count of logs returned.
4👍2🔥1
InstagramPlatformData Schema Update

The InstagramPlatformData schema has been updated to include a new parameter: trialParams. This parameter allows for configuration of trial Reels, which are initially shared only with non-followers.

Here are the details of the new trialParams field:
- trialParams: object (optional)
- graduationStrategy: string (required)
- Possible values: MANUAL, SS_PERFORMANCE
- This field determines how a trial reel transitions to a regular reel:
- MANUAL: Requires manual graduation via the Instagram app.
- SS_PERFORMANCE: Automatically graduates based on performance metrics with non-followers.

The rest of the schema remains unchanged, including the parameters contentType, shareToFeed, collaborators, firstComment, and userTags.

This update enhances your ability to manage Reels effectively, allowing for strategic sharing and performance-based visibility adjustments. Keep this in mind as you plan your content strategy.
1🔥1
Instagram now supports custom audio names for Reels via audioName in platformSpecificData.

You can set a custom name for the original audio, replacing the default "Original Audio" label. This can only be set once during creation or later from the Instagram audio page in the app.
2🔥1
YouTube now supports AI-generated content disclosure via containsSyntheticMedia in YouTubePlatformData.

Set containsSyntheticMedia to true if your video contains AI-generated or synthetic content that could be mistaken for real people, places, or events. YouTube may add a label to videos when this is set.

View documentation
5🥰1