Docs
Get API key

Leads

Get a lead

GET/leads/{leadId}

A lead with tags, custom fields, lists and where they are in each campaign.

Try itSend a real request with your API key

Your key stays in this page and goes only to Salesteam.

Path

  • leadIdstringRequired

    The lead.

Answer

200 OK The lead.

  • dataLeadRequired
    Inside it
    • idstringRequired
    • firstNamestringRequired
    • lastNamestringRequired
    • fullNamestringRequired
    • titlestringRequired
    • companystringRequired
    • companyShortstringRequired

      What {{company_short}} (and {{company_name}}) say for this lead in messages: the short name set for them, or the company name cleaned up (no Inc., no tagline).

    • companyShortSetbooleanRequired

      A short company name was set for this lead; false means the automatic one.

    • locationstringRequired
    • industrystringRequired
    • linkedinUrlstringRequired
    • emailstring or nullRequired

      A found email, when it is usable.

    • emailStatusstring or nullRequired

      One of deliverable, catch_all, unknown.

    • statusstringRequired

      One of new, queued, contacted, connected, replied, suppressed.

    • stagestringRequired

      Where the person is, as the Leads table’s Stage column says it: Blacklisted or Do not contact (suppressed) first, then an outcome you recorded (interested, qualified, booked, attended, won, no_show, lost), then Interested or Not interested from tags and AI reply tags, else the automatic status (new, queued, contacted, connected, replied). One of new, queued, contacted, connected, replied, interested, qualified, booked, attended, won, not_interested, no_show, lost, suppressed, blacklisted.

    • tagsarray of stringRequired
    • customFieldsobjectRequired

      The lead's custom field values by field key: text, numbers, dates as YYYY-MM-DD, web addresses, and lists for Multi-select fields.

    • listsarray of objectRequired
      Each item
      • idstringRequired

        The list's ID.

      • namestringRequired

        The list's name.

    • fromPostobject or nullRequired

      The LinkedIn post this person liked or commented on when they were saved from it (Posts › Engagers), kept beside how they were first added. Null when they weren't saved from a post.

      Inside it
      • postUrlstringRequired
      • topicstring or nullRequired

        What the post was about, in the workspace's words: what {{post_topic}} says in messages.

      • interactionstringRequired

        One of like, comment.

      • commentstring or nullRequired

        Their comment, up to 300 characters.

      • yourPostbooleanRequired

        The post is one of the workspace's own.

      • engagedAtstring · date-timeRequired
      • savedAtstring · date-timeRequired
    • createdAtstring · date-timeRequired
    • updatedAtstring · date-timeRequired

      The last time anything about this person changed: their details, lists or tags, an email found, outreach or a reply. What updatedSince filters on.

    • campaignsarray of LeadCampaignRequired
      Each item
      • campaignobjectRequired
        Inside it
        • idstringRequired
        • namestringRequired
        • statusstringRequired

          draft: not launched. active: running. paused: stopped by the owner. completed: finished. One of draft, active, paused, completed.

      • statusstringRequired

        Where the person is in a campaign. One of active, waiting_for_acceptance, retrying, paused, needs_review, replied, suppressed, finished, stopped.

      • stepintegerRequired

        The step they are on, from 1.

      • stepsintegerRequired
      • senderobject or nullRequired

        The LinkedIn account reaching out.

        Inside it
        • idstring
        • namestring
      • connectionRequestSentAtstring · date-time or nullRequired
      • acceptedAtstring · date-time or nullRequired
      • lastContactedAtstring · date-time or nullRequired
      • messagesSentintegerRequired
      • repliedAtstring · date-time or nullRequired
      • finishedAtstring · date-time or nullRequired
      • nextStepAtstring · date-time or nullRequired

        When the next step is due, while active.

      • pausedReasonstring or nullRequired

Errors

  • 401 Unauthorizedunauthorized
  • 404 Not foundnot_found not_in_campaign
  • 429 Too many requestsrate_limited
  • 500 Server errorserver_error

Every error has the same shape. See Errors.

GET /leads/{leadId}
curl "https://app.salesteam.dev/api/v1/leads/LEAD_ID" \
  -H "Authorization: Bearer $SALESTEAM_API_KEY"
200 answer
{
  "data": {
    "id": "lead_7Qm2xT9a",
    "firstName": "Jamie",
    "lastName": "Lee",
    "fullName": "Jamie Lee",
    "title": "Head of Sales",
    "company": "Pear Sky",
    "companyShort": "Pear Sky",
    "companyShortSet": true,
    "location": "London, United Kingdom",
    "industry": "Software",
    "linkedinUrl": "https://www.linkedin.com/in/jamie-lee-example",
    "email": "jamie@example.co",
    "emailStatus": "deliverable",
    "status": "new",
    "stage": "new",
    "tags": [
      "tag"
    ],
    "customFields": {},
    "lists": [
      {
        "id": "list_7Qm2xT9a",
        "name": "Founders Q4"
      }
    ],
    "fromPost": {
      "postUrl": "https://example.com",
      "topic": "topic",
      "interaction": "like",
      "comment": "comment",
      "yourPost": true,
      "engagedAt": "2026-11-12T09:00:00.000Z",
      "savedAt": "2026-11-12T09:00:00.000Z"
    },
    "createdAt": "2026-11-12T09:00:00.000Z",
    "updatedAt": "2026-11-12T09:00:00.000Z",
    "campaigns": [
      {
        "campaign": {
          "id": "cmp_7Qm2xT9a",
          "name": "Founders Q4",
          "status": "draft"
        },
        "status": "active",
        "step": 1,
        "steps": 1,
        "sender": {
          "id": "acc_7Qm2xT9a",
          "name": "Founders Q4"
        },
        "connectionRequestSentAt": "2026-11-12T09:00:00.000Z",
        "acceptedAt": "2026-11-12T09:00:00.000Z",
        "lastContactedAt": "2026-11-12T09:00:00.000Z",
        "messagesSent": 1,
        "repliedAt": "2026-11-12T09:00:00.000Z",
        "finishedAt": "2026-11-12T09:00:00.000Z",
        "nextStepAt": "2026-11-12T09:00:00.000Z",
        "pausedReason": "paused reason"
      }
    ]
  }
}