Sliq People API
The People API from Sliq — 3 operation(s) for people.
The People API from Sliq — 3 operation(s) for people.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/getsliq-com:getsliq-com-people-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Sliq Public People API
version: 0.1.0
description: Sliq's public API — programmatic read access to your GTM data for CRM sync and coding agents. v1 exposes your outreach prospects, their cross-channel interaction history, and your agents (campaigns); more resources follow over time. Read-only, bearer-authenticated, cursor-paginated, and scoped to the key owner.
servers: []
tags:
- name: People
paths:
/v1/people:
get:
operationId: publicapi_api_list_people
summary: List People
parameters:
- in: query
name: updated_since
schema:
anyOf:
- format: date-time
type: string
- type: 'null'
description: ISO-8601 with a timezone offset; returns prospects updated at or after this instant.
title: Updated Since
required: false
description: ISO-8601 with a timezone offset; returns prospects updated at or after this instant.
- in: query
name: stage
schema:
anyOf:
- enum:
- not_started
- queued
- contacted
- engaged
- replied
- interested
- meeting_booked
- not_interested
- finished
- not_reached
- already_connected
type: string
- type: 'null'
description: Filter to prospects in this lead-funnel bucket (the `stage` output value).
title: Stage
required: false
description: Filter to prospects in this lead-funnel bucket (the `stage` output value).
- in: query
name: agent_id
schema:
anyOf:
- type: integer
- type: 'null'
description: Filter to prospects belonging to this agent (campaign) id.
title: Agent Id
required: false
description: Filter to prospects belonging to this agent (campaign) id.
- in: query
name: is_connected
schema:
anyOf:
- type: boolean
- type: 'null'
description: Filter to prospects with (true) or without (false) a LinkedIn connection.
title: Is Connected
required: false
description: Filter to prospects with (true) or without (false) a LinkedIn connection.
- in: query
name: has_replied
schema:
anyOf:
- type: boolean
- type: 'null'
description: Filter to prospects who have (true) or have not (false) replied on any channel.
title: Has Replied
required: false
description: Filter to prospects who have (true) or have not (false) replied on any channel.
- in: query
name: search
schema:
anyOf:
- type: string
- type: 'null'
description: Case-insensitive substring match on name or email.
title: Search
required: false
description: Case-insensitive substring match on name or email.
- in: query
name: page_size
schema:
anyOf:
- type: integer
- type: 'null'
description: Rows per page, 1–100 (default 100).
title: Page Size
required: false
description: Rows per page, 1–100 (default 100).
- in: query
name: cursor
schema:
anyOf:
- type: string
- type: 'null'
description: Opaque cursor copied from a prior response's next_url; omit for the first page.
title: Cursor
required: false
description: Opaque cursor copied from a prior response's next_url; omit for the first page.
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PagedPersonOut'
description: 'The owner''s prospect book. Filters are row-local predicates; results are
cursor-paginated on immutable `id`. Prospects of soft-deleted campaigns are
excluded.'
security:
- ApiKeyAuth: []
tags:
- People
/v1/people/{person_id}:
get:
operationId: publicapi_api_get_person
summary: Get Person
parameters:
- in: path
name: person_id
schema:
title: Person Id
type: integer
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PersonOut'
description: 'One prospect by id. A wrong-owner id (or a soft-deleted campaign''s prospect)
404s exactly like a missing one — the lookup is owner-scoped.'
security:
- ApiKeyAuth: []
tags:
- People
/v1/people/{person_id}/interactions:
get:
operationId: publicapi_api_get_interactions
summary: Get Interactions
parameters:
- in: path
name: person_id
schema:
title: Person Id
type: integer
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/InteractionsOut'
description: One person's merged LinkedIn + email timeline (deduped, ascending), truncated to the most recent 500 interactions — `has_more` flags truncation.
security:
- ApiKeyAuth: []
tags:
- People
components:
schemas:
InteractionOut:
properties:
at:
description: ISO-8601 timestamp of the interaction.
title: At
type: string
channel:
$ref: '#/components/schemas/Channel'
direction:
description: '''outbound'' (from the account owner) or ''inbound'' (from the prospect).'
title: Direction
type: string
type:
description: '''message'' for ordinary messages, else a kind like ''reaction'' or ''connection_request_sent''.'
title: Type
type: string
text:
description: The message's own text; an email's quoted reply or forward history below it is returned separately in `quoted`. An email that is only a quote or forward, with nothing written above it, comes back whole here.
title: Text
type: string
quoted:
anyOf:
- type: string
- type: 'null'
description: An email's quoted reply or forward history; null when it has none and for LinkedIn.
title: Quoted
subject:
anyOf:
- type: string
- type: 'null'
title: Subject
required:
- at
- channel
- direction
- type
- text
title: InteractionOut
type: object
InteractionsOut:
properties:
data:
items:
$ref: '#/components/schemas/InteractionOut'
title: Data
type: array
has_more:
description: True when older interactions were truncated — the timeline returns the most recent events up to a fixed cap. The returned events are still ascending.
title: Has More
type: boolean
required:
- data
- has_more
title: InteractionsOut
type: object
Channel:
description: An outreach channel.
enum:
- linkedin
- email
title: Channel
type: string
PagedPersonOut:
properties:
data:
items:
$ref: '#/components/schemas/PersonOut'
title: Data
type: array
next_url:
anyOf:
- type: string
- type: 'null'
title: Next Url
has_more:
title: Has More
type: boolean
required:
- data
- has_more
title: PagedPersonOut
type: object
PersonOut:
properties:
id:
description: Stable Sliq prospect id; the path segment for GET /people/{id}/interactions.
title: Id
type: integer
name:
title: Name
type: string
title:
anyOf:
- type: string
- type: 'null'
title: Title
company:
anyOf:
- type: string
- type: 'null'
title: Company
email:
anyOf:
- type: string
- type: 'null'
title: Email
linkedin_slug:
anyOf:
- type: string
- type: 'null'
description: The person's LinkedIn profile slug, the part after linkedin.com/in/.
title: Linkedin Slug
channel:
anyOf:
- type: string
- type: 'null'
description: 'Which channel(s) the prospect is enrolled on: ''linkedin'', ''email'', ''both'', or null.'
title: Channel
agent_id:
anyOf:
- type: integer
- type: 'null'
description: Id of the Sliq agent (campaign) this prospect currently belongs to; resolve to a name via GET /agents. Null when the prospect is not in any campaign — e.g. a durable contact whose campaign was deleted.
title: Agent Id
stage:
description: Lead-funnel bucket — the furthest-advanced state across both channels. Filterable via the `stage` query param on GET /people.
enum:
- not_started
- queued
- contacted
- engaged
- replied
- interested
- meeting_booked
- not_interested
- finished
- not_reached
- already_connected
title: Stage
type: string
is_connected:
description: Whether a LinkedIn connection exists — including a pre-existing 1st-degree connection that `stage` parks outside the earned funnel. Orthogonal to `stage`.
title: Is Connected
type: boolean
created_at:
format: date-time
title: Created At
type: string
updated_at:
format: date-time
title: Updated At
type: string
required:
- id
- name
- stage
- is_connected
- created_at
- updated_at
title: PersonOut
type: object
securitySchemes:
ApiKeyAuth:
type: http
scheme: bearer
x-provenance:
method: harvested
publisher: Sliq
source: https://getsliq.com/openapi.json
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)