Welcome to the GetSales.io Public API! This quick start guide shows how to authenticate, create your first contact, and send LinkedIn messages.
For the full API reference, visit: https://api.getsales.io
Authentication
To interact with the API, use a valid API key in every request.
How to Get Your API Key:
Log in to your GetSales.io account
Go to Workspace Settings > API Keys
Copy your existing key or create a new one
Example Header:
Authorization: Bearer {YOUR_TOKEN}Important: Keep your token secure. Never share it publicly.
Creating a Contact
Use this endpoint to add a new lead:
POST https://amazing.getsales.io/leads/api/leads/upsert
Prerequisites:
Each contact must belong to a list
Copy the List ID from the Lists page
Request Example:
POST /leads/api/leads HTTP/1.1\nHost: amazing.getsales.io\nAuthorization: Bearer {YOUR_TOKEN}\nContent-Type: application/jsonResponse returns enriched contact data with full name, LinkedIn profile, emails, and more.
Managing LinkedIn Messages
Retrieve Messages
Use this endpoint to get messages for a specific contact:
GET https://amazing.getsales.io/flows/api/linkedin-messages
Optional Parameters:
limit: Maximum number of messages to retrieve
offset: Offset for pagination
order-field: Field to sort by
order-type: Sorting direction (asc or desc)
filter: JSON object to refine results
Send a Message
Send a LinkedIn message using this endpoint:
POST https://amazing.getsales.io/flows/api/messages
Tip: You can use this for both automated and manual LinkedIn outreach.
What's Next?
Explore the full API documentation
Try endpoints for automations, sender profiles, and pipeline status
Use the API to automate workflows or integrate with external tools
Need help with your setup? Contact support — we're happy to help!
Related articles
Q: Do you have an API for uploading CSV files containing leads?
No, we don't have a request like that. You can send leads directly via API without CSV file.
Q: Why might the message order be incorrect when retrieving messages via API?
You should rely on the sent_at field – it shows the real time when the message was actually sent. The created_at field shows when the message was saved in our system (during sync). It's OK if these fields differ. For example, if the profile was out of schedule, the message would only be saved later when syncing resumes – that's when created_at is set. But sent_at still shows the correct original send time.
