Skip to main content
GET
/
api
/
v1
/
research
List research people (partner API)
curl --request GET \
  --url https://app.puffle.ai/api/v1/research \
  --header 'Authorization: Bearer <token>'
{
  "people": [
    {
      "id": "11111111-1111-1111-1111-111111111111",
      "user_id": null,
      "first_name": "Jane",
      "last_name": "Smith",
      "linkedin_url": "https://www.linkedin.com/in/janesmith",
      "role": "VP of Engineering",
      "company": "Acme Corp",
      "company_domain": "acme.com",
      "photo_url": null,
      "status": "complete",
      "last_enriched_at": "2026-04-21T18:00:00Z",
      "created_at": "2026-04-21T17:55:00Z",
      "updated_at": "2026-04-21T18:00:00Z"
    }
  ]
}

Overview

Returns every deep_research_people row owned by the authenticated partner, ordered newest first. Each row carries identity fields plus the current pipeline status — use this to locate the id for a follow-up getResearchV1 call, or to render a partner-facing dashboard. This is the public partner API. The caller must authenticate with a partner API key (not a user Bearer token). For the internal UI-facing variant, see listDeepResearchPeople.

AI agent notes

No pagination. Returns the full partner-scoped collection in a single response. If your partner account has thousands of people, expect a multi-second response and cache aggressively on the client.Status field drives follow-up work:
StatusNext action
completeCall getResearchV1 to fetch the report inline
runningPoll getResearchV1 every 30 seconds
failedRe-submit the same linkedin_url via createResearchV1 to re-trigger
idlePipeline hasn’t run yet; call createResearchV1
No side effects. Safe to call repeatedly.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Response

List of research people scoped to the calling partner.

people
object[]
required