API
- Extract LinkedIn Company Viewers — New action to extract viewers of a LinkedIn company page. Requires page admin access and a Premium page; returns viewers from the past year. Extract LinkedIn Company Viewers
- Extract LinkedIn People Educations — New action to extract education history (schools, degrees, fields of study, dates). Extract LinkedIn People Educations
- Extract LinkedIn People — Education output — New fields:
title(degree + field of study),field_of_study,school_description. Breaking:degree_nameis now correctly filled (first part oftitlebefore comma) or empty; it was previously sometimes filled withfield_of_study. - ID type changes — Several IDs changed from string to integer:
linkedin_school_id,linkedin_company_id,original_linkedin_company_id,company_idin extract-people, experiences, company, company-employees-insights, recruiter-lite-search-people. - LinkedIn experience outputs — Added
job_contract_type, unblocking richer profile refresh data for migrations. - Outputs APIs — Added
extracted_atso consumers can reliably track when data was fetched.
Improvements & Fixes
- Billing — Next billed amount displayed on the platform now takes into account any discount applied on the subscription.
- Sales Navigator — Fixed company keyword search when spaces were double-encoded, restoring results for multi-word queries.
- Runs — Treated
STATUS_404andNO_RESULTas successful “no data” outcomes, reducing false failed runs while keeping transparency vialast_info. - Experience location — Improved completeness by inheriting the parent location when sub-experiences omit it.
- Accounts — Prevents false “no access” errors for some valid accounts.
API
- Get Run Inputs — New endpoint to list all inputs for a run (including failed) and their errors. Get Run Inputs
- Runs — Error responses 404/409/422 added on run endpoints;
auth_typeremoved from account schemas.
Documentation
- Callbacks — Data completeness: “all” vs “final” modes, how to verify and fetch results. Managing Callbacks
- Extract Post Activity — “Understanding Author Fields” (author, activity_author, source_post). Extract LinkedIn People Post Activity
- Run Outputs — Not available for live runs (explicit 422). Get Run Outputs
- Runs overview — Get run inputs added to endpoints table.
- Search Company Employees — Reuse a people search URL on a company in one call. Search Sales Navigator Company Employees
- Message & InMail — Voice/video format detection and conversion; Sales Navigator InMail unchanged. Message · InMail
Improvements & Fixes
- Run Outputs — Pagination fix; 422 for live runs instead of empty response.
- Workspace — OAuth page white-label (your logo); credit override no longer blocks when below plan.
- Retries — More automatic retries (proxy, limits, Sales Navigator).
- Actions —
linkedin_profile_idin more outputs; Search Metrics returns 0 values and supports#in URLs; Post Activity returnslinkedin_activity_id; identities list pagination fixed.
What This Means for You
- Recover missed data — New inputs endpoint and clearer callback rules.
- Voice & video — Message and InMail send audio/video as voice or video messages where supported.
- Company search — Reuse a people search on a company in one call.
- Fewer manual retries — More cases trigger automatic retry.
- Clearer API — Pagination fixed; live runs return explicit error.
- Workspace — OAuth logo, credit override fix.
Deprecations
Page-Based Pagination Deprecated (Live Mode)
Thepage parameter is now deprecated in favor of cursor-based pagination on 38 live mode endpoints.| Parameter | Status |
|---|---|
page | Deprecated (still functional, removed from docs) |
token | Deprecated (still functional, removed from docs) |
cursor | New - recommended approach |
The deprecated parameters remain backward compatible. Existing integrations will continue to work, but we recommend migrating to cursors for new implementations.Migration steps:
- Replace
pageparameter withcursor - Replace
tokenparameter usage withcursor - Use the
cursorvalue fromX-Pagination-Nextheader - Handle cursor expiration - cursors expire after 24 hours (restart from beginning if error)
/run/live endpoints (e.g., linkedin-extract-*, salesnavigator-*, recruiterlite-*)Not affected: Core API endpoints (/runs, /schedules) continue using limit/offset pagination.Improvements
- Unified pagination: Single cursor approach replaces mixed page/token system
- Data consistency: Cursors ensure stable pagination (valid for 24 hours)
- Simpler implementation: Always follow
X-Pagination-Nextheader (no need to distinguish pagination types)
API Parameter Updates
run_uidpath parameter now includes UUID format validation and description
What This Means for You
- Existing integrations continue to work -
pageandtokenremain functional (backward compatible) - New integrations should use
cursor- recommended for all new implementations - Async/Schedule modes unchanged - automatic pagination continues to work the same way
- SDK users: The
nextPagehelper still works - it returns the cursor URL
🚀 What’s New
This release focuses on improved LinkedIn reliability, richer profile data, and new automation features.🔒 LinkedIn Connection Reliability
- Fixed: LinkedIn accounts now reconnect smoothly without false authentication errors
- Fixed: Sales Navigator “upgrade required” errors no longer appear when visiting profiles within your daily limits
- Users should experience far fewer connection interruptions when running LinkedIn workflows
📬 LinkedIn Invitation Management
New actions for managing your LinkedIn invitations with precision:| Action | Description |
|---|---|
| Accept Invitation | Accept a single invitation provided as input |
| Withdraw Invitation | Withdraw a single invitation provided as input |
| Accept Invitations | Accept all pending invitations (now supports async execution) |
| Withdraw Invitations | Withdraw all pending invitations (now supports async execution) |
💰 Richer LinkedIn Profile Data
When searching LinkedIn Sales Navigator, you now get enhanced profile information:- Dynamic headlines shown by LinkedIn
- Job summaries and descriptions
- Work experience details previously unavailable
⚡ One-Shot Callbacks for Automation Tools
New callback option for customers using automation platforms like n8n, Make, or Zapier:- Receive one notification when a job finishes instead of multiple callbacks during execution
- Dramatically reduces costs for webhook-based integrations
- Set
callback.ontofinalinstead ofallto enable this mode
📊 Better Run Visibility
- Output counts are now visible directly in run details
- Know exactly how many results each run produced
- Clearer ROI tracking and performance monitoring
🔐 Clearer Error Messages
When LinkedIn credentials are invalid, you now receive clear, actionable error messages instead of confusing codes. This makes troubleshooting faster and reduces frustration.📝 What This Means for You
- More Reliable: LinkedIn authentication and Sales Navigator access issues are resolved
- Better Targeting: Richer profile data enables more personalized outreach
- Lower Integration Costs: One-shot callbacks can reduce automation platform costs significantly
- Clearer Insights: See exactly what each run produces with output counts
🚀 What’s New
This release enhances Sales Navigator and LinkedIn actions with improved error handling, new callback fields, and standardized error responses.🔔 Scheduled Run Tracking in Callbacks
Callback payloads now include a new field for scheduled runs:✨ Enhanced Error Responses
We’ve significantly improved error response documentation across Sales Navigator and LinkedIn actions with detailed examples and new status codes:| Status Code | Description | Change |
|---|---|---|
| 400 Bad Request | Invalid parameters or input | Now includes detailed examples |
| 402 Payment Required | Access denied due to plan limitations | New |
| 422 Unprocessable Entity | Action aborted | New |
| 424 Failed Dependency | Integration or external service errors | Expanded with multiple examples |
| 429 Too Many Requests | Rate limit exceeded | New (replaces 500) |
Rate Limit Response Details
429 responses now include detailed rate limit information:🔧 Bug Fixes & Improvements
LinkedIn Post Extraction
- 🐛 Sanitize LinkedIn post URLs by stripping query parameters to avoid duplicate/mismatched post references and improve cache/canonicalization correctness
Identity and Authentication
- ✨ If a
SN_ACCOUNT_UPGRADEerror occurs, the related identity will be ignored for 60 seconds, reducing repeated failures and improving overall action reliability (later, this will apply only tomanagedidentities)
Cross-Action Error Messaging
- ✨ Standardized error messages across actions for consistency, aligning error codes/messages and improving client-side parsing
📝 What This Means for You
- Better Debugging: Detailed error examples help identify issues faster
- Improved Rate Limit Handling: 429 responses with headers enable smarter retry logic
- Scheduled Run Correlation: New
scheduled_run_uidfield links callbacks to their schedule - More Reliable Actions: Automatic identity cooldown on SN upgrade errors prevents cascading failures
- Cleaner Post URLs: Post extraction now handles URLs with query parameters correctly
🚀 What’s New
This release improves LinkedIn invitation handling, adds new output fields for post activity, and standardizes API error responses.🔔 LinkedIn Invitations — Schema Improvements
We’ve refactored LinkedIn invitation actions for better consistency and reliability:Standardized Invitation Identifiers
All invitation-related actions now use consistent identifiers:linkedin_invitation_id— String identifier for the invitationlinkedin_invitation_urn— LinkedIn URN for stable reference
| Action | Changes |
|---|---|
| Accept Invitations | Simplified input — now requires only linkedin_invitation_urn |
| Extract Received Invitations | Renamed sent_time → sent_date for consistency |
| Extract Sent Invitations | Now returns linkedin_invitation_id + linkedin_invitation_urn |
| Withdraw Invitations | Output now returns invitation IDs instead of profile URL |
⚠️ Migration Note: If you’re using invitation actions, update your integrations to use the new field names.
✨ LinkedIn Post Activity — Author Information
The People Post Activity action now includes detailed author information:author— The person who shared/posted the contentoriginal_author— The original content creator (for reshares)
🔧 Bug Fixes & Improvements
LinkedIn Post Commenters
- 🐛 Fixed missing
first_nameandlast_namefields — these were returning empty strings even whenfull_namewas populated
LinkedIn Post Likers
- 🐛 Removed
linkedin_company_idfrom output (field only applied to company likes)
LinkedIn Search Content
- ✨ Added
linkedin_company_urlto output
InMail & Message File Attachments
- 🐛 Fixed file validation for Base64-encoded attachments
- 🐛 Fixed filename extension validation regex
API Error Responses
- ✨ Added standardized error schemas:
PaymentRequired(402),Forbidden(403),NotFound(404),UnprocessableEntity(422),TooManyRequests(429)
Pagination
- ✨ Updated default page size to 100 for improved throughput on applicable actions
📚 Documentation
- ✨ Added
POST /runs/{run_uid}/cancel— Cancel an async/schedule run - ✨ Added
GET /runs/{run_uid}/status— Lightweight run status polling - ✨ Added
GET /runs/{run_uid}/outputs— Poll for run outputs without callbacks
🚀 What’s New
Major refactors landed around account rotation and integration limits, introducing caching layers that reduce load and standardize identity handling. HTTP service robustness improved (compressed responses, stricter content-length checks), and several LinkedIn actions received targeted fixes. Run callbacks now include additional identifiers/headers and OpenAPI updates, and error labels were standardized across the stack for clearer diagnostics.🔔 Improved Webhook Delivery Identification & Deduplication
We’re introducing two important enhancements to our webhook callback system to make delivery tracking and deduplication more reliable for all integrators.📌 New Stable Callback Reference (callback_ref_uid)
Webhook payloads now include a new field:- Stable across retries
- Unique per callback event
- Designed specifically to allow safe deduplication on the client side
📌 New Delivery Attempt Headers
Webhook requests now include two additional HTTP headers:| Header | Description |
|---|---|
| X-Callback-Ref | Stable callback identifier, identical across retries (same as callback_ref_uid in the payload). |
| X-Run-Callback | Unique identifier for each delivery attempt. Changes on every retry. |
- Track each individual delivery attempt
- Log retries more easily
- Distinguish between event identity (stable) and delivery attempt identity (per retry)
📘 Why this matters
These changes bring our webhook behavior in line with industry best practices and make it easier to:- Detect and safely ignore duplicate callbacks
- Correlate retries with the same logical event
- Debug delivery attempts via unique identifiers
- Keep payloads stable and idempotent
✅ Summary
callback_ref_uidis now included in the payload → stable event identifierX-Callback-Ref→ stable ID in headersX-Run-Callback→ unique per delivery attempt- Retries always resend the same payload, preserving the original run status and data
🔧 Action Fixes
LinkedIn Job Search
- 🐛 Handled missing job data by throwing a descriptive action error, preventing silent failures.
LinkedIn Post Likers Extraction
- 🐛 Removed
linkedin_profile_handlefrom the output schema because the source does not provide it.
Company Enrichment
- 🐛 Fixed company domain resolution during company enrichment to return the correct domain.
🚀 Edges New Release
This release focuses on improving platform stability, reliability, and user experience across LinkedIn automations, engagement identities, and core API functionality.🔒 Improved LinkedIn Session Stability
- Enhanced IP Management: Implemented a new progressive IP rotation system that significantly improves LinkedIn session reliability
- Fewer Connection Errors: Reduced intermittent failures and reconnection issues during LinkedIn operations
- Better Error Handling: More reliable login, refresh, and checkpoint flows with improved retry logic
- Smoother Workflows: Users should experience fewer session-related interruptions and more stable automation runs
💰 Engagement Identities Billing Enhancements
- Improved Billing Accuracy: New buffer mechanism ensures more accurate usage tracking and billing for engagement identities
- Multiple Plan Tiers: Support for tiered pricing plans based on usage volume, providing better flexibility and cost optimization
- Better Timeframe Validation: Enhanced validation ensures billing stays within subscription timeframes for accurate charges
- Clearer Error Messages: Improved error messages when creating identities to distinguish between “No plan available” and “No more room in plan” scenarios
📊 Sales Navigator & LinkedIn Actions Improvements
- Increased Limits: Sales Navigator company employee search now supports up to 2,500 results (previously 1,000) per request
- Enhanced Profile Data: Company logo URLs are now included in profile experiences when extracting people data
- Fixed Post-Likers Actions: Resolved issues with post-likers actions when using “share” URLs as input
- Better Pagination: Fixed error 424 issues on multiple-output actions by preventing unnecessary pagination when no results are available
- Improved Post Commenters: Enhanced validation for post commenters extraction to handle edge cases more reliably
🔧 API & Automation Improvements
- Output Retrieval by Run UUID: You can now retrieve outputs directly by Run UUID, making it easier to access run results
- Better Workflow Support: Enhanced workflow schemas with improved support for optional steps and output anchoring
- Real Dates from IDs: Actions now return accurate dates when retrieving data by ID
🛠️ Platform Reliability
- Automated Data Retention: Implemented automated cleanup of old runs and usage data to maintain optimal platform performance
- Runs older than 90 days are automatically archived
- Usage records older than 5 days are cleaned up
- This ensures faster queries and better overall system performance
📝 What This Means for You
- More Reliable Automations: LinkedIn actions should run more smoothly with fewer session interruptions
- Better Billing Accuracy: Engagement identities billing is now more precise and transparent
- Increased Capacity: Sales Navigator searches can now handle larger result sets
- Improved Developer Experience: Better error messages and API capabilities make integration easier
- Faster Performance: Automated data retention keeps the platform running smoothly over time
🚀 Edges New Release
New release adds several new features and improvements to the Edges platform.- New Engagement Identities mode for running LinkedIn outreach actions without consuming credits
- Improved UI overall with updated components for better fluidity and user experience
💰 Engagement Identities Pricing & Billing
- New billing model: Engagement Identities are billed monthly based on peak usage
- Starting at $7.99/identity/month with dynamic pricing that decreases with volume
- Credit-free outreach: Run a comprehensive set of outreach actions (connect, message, follow, engage) without consuming credits
- Flexible usage: Convert existing identities to engagement mode or create new ones via API
- Live monitoring: Track current billing status and peak usage
🚀 Update on Extract LinkedIn People
Here are the main changes:-
👔 With the experiences parameter, we now retrieve only the first five companies’ experiences. The total number may vary depending on the profile. If you want more experiences, use the
linkedin-extract-people-experiencesendpoint. -
💡 With the skills parameter, we now get only a few skills (one or two) — again, this can vary by profile. If you want more skills, use the
linkedin-extract-people-skillsendpoint. -
📋 Both actions use the same input payload as
linkedin-extract-people. - ⚠️ Note: these two new actions share the same limit. We’ll define the daily and per-minute request limits in a future release.
🔧 Technical Updates
- Rate limit simplification: Simplified rate limiting system (plans-based rate limits will be introduced in the next release cycle)
✨ New Action
- Extract LinkedIn Received Invitations — New
linkedin-extract-received-invitationsaction to extract invitations you’ve received on LinkedIn, including sender details, messages, and timestamps.
🔧 Improvements
- Enhanced LinkedIn Native Login: Improved stability with broader support for LinkedIn challenge handling, ensuring more reliable authentication flows.
- Better Profile Data Extraction: Enhanced “experiences” field parsing in the
linkedin-extract-peopleaction for more accurate profile information. - Live Mode Enhancements:
custom_datais now included in both responses and errors forliveexecution mode, improving compatibility with automation tools and making it easier to track and reconcile requests.
🚀 Edges New Release
New release adds several new features and improvements to the Edges platform.- New Credit Consumption endpoint to track credit usage
- New Get Identity Limits endpoint to track limits usage per identity and action
- New Generate Login Links endpoint to create new login links for identities
- Improved documentation and examples in FAQ, Native Login, and LinkedIn Limits sections.
🔔 Enhanced Integration Webhooks
- New Event Type: Added
AUTH_UPDATEDwebhook event for monitoring LinkedIn account level changes - Enhanced Payload: Webhook data now includes:
name: LinkedIn account namelevel: Account type (Classic, Sales Navigator, Premium, Recruiter Lite)
- Better Monitoring: Real-time notifications when users upgrade or change their LinkedIn account levels
📚 Documentation Improvements
- API Consistency: Updated endpoint descriptions from “List all” to “List” for better clarity
- LinkedIn Limitations: Added clear documentation about group member extraction limitations
- Sales Navigator: Enhanced filtering capabilities with updated OpenAPI specifications
🔧 Technical Updates
- Updated OpenAPI specifications with new Sales Navigator filters
- Improved API documentation consistency across all listing endpoints
- Enhanced error handling and limitation documentation
🚀 Edges v1 – Public Release
Edges is now publicly available — an API-first automation platform built to run precise, scalable and fully observable actions on top of platforms like LinkedIn and Sales Navigator.📦 TypeScript SDK
The Edges TypeScript SDK offers a type-safe and minimal way to interact with the Edges API.It handles authentication and exposes all endpoints for:
- Action execution (
live,async,schedule) - Identity & integration management
- Run tracking & callbacks
⚙️ New API Core
Edges exposes a fully documented and production-grade REST API with:- Modular actions, identified by scope (e.g.
linkedin-extract-people) - Modern execution modes:
live,async,schedule - Strong separation between members (dashboard users) and identities (automated accounts)
- Robust pagination, rate limits and error tracing
👥 Identity-Centric Design
- Identities represent your automation accounts (e.g. a LinkedIn profile)
- Create and manage identities independently from workspace members
- Use native login or cookie-based authentication
- Monitor integration status with webhooks
🔁 Async, Schedule & Callbacks
- Run bulk actions at scale via the
asyncmode - Program runs to start later (
schedule_at) or recurrently withcronvia theschedulemode - Provide a
callback_urlto get results pushed when ready - Enrich callback payloads with your own
custom_datato simplify reconciliation
✉️ Featured Actions
- LinkedIn Authentication, Extract, Search, Find, Intents, Messaging & Engage
- Sales Navigator Search, Metrics & Engage
- Recruiter Lite Search
🧠 Developer Experience First
- Full OpenAPI-based, comprehensive documentation
- Instant authentication with API keys
- Built-in account rotation logic and identity modes
- Tracking and observability with run UIDs, callbacks and callbacks api
- Fast iteration cycles
LinkedIn Post Activity
- Added Understanding Author Fields for Extract LinkedIn People Post Activity:
activity_author— Person who performs the activity (e.g., reshared).author— Author of the first-level (visible) post.source_post— Source post (2nd level) when the visible post is a reshare; includesauthor,linkedin_post_id,linkedin_post_url,content_text;nullwhen there is no 2nd level.- Examples for original post, reshare without comment, reshare with comment, and reshare of a post that shares another post.

