Skip to main content
Use the Plyne API to read the buyers and accounts your team is already tracking in Plyne. The dashboard is where your team configures ICPs, signal agents, and monitored accounts. The API is the read layer for integrating those outputs into your product, workflow, or outbound system.

1. Create an API key

Open the dashboard and go to Developer → API Keys. Create a key and copy it. API keys are scoped to your organization.
Authorization: Bearer plyne_...

2. List Intent Signals agents

Signal agents are always-on discovery setups. Each agent belongs to a sheet and runs on a recurring schedule to find buyers showing relevant intent.
curl --request POST \
  --url https://api.plyne.ai/v1/signals/agents \
  --header 'Authorization: Bearer plyne_...' \
  --header 'Content-Type: application/json' \
  --data '{
    "cursor": { "limit": 50 }
  }'
{
  "data": [
    {
      "id": "agent_123",
      "name": "Intent Signals",
      "status": "active",
      "schedule": "4x daily",
      "sheet_id": "sheet_123",
      "sheet_name": "AI infrastructure buyers"
    }
  ],
  "cursor": {
    "next": "",
    "has_more": false
  }
}

3. Read qualified leads

Use signals to read leads surfaced by a specific buying signal, and sheet_ids to limit results to a configured sheet.
curl --request POST \
  --url https://api.plyne.ai/v1/signals/leads \
  --header 'Authorization: Bearer plyne_...' \
  --header 'Content-Type: application/json' \
  --data '{
    "signals": ["topic_engagement_signal"],
    "sheet_ids": ["sheet_123"],
    "lead_country_codes": ["US"],
    "company_country_codes": ["US"],
    "cursor": { "limit": 100 }
  }'
{
  "data": [
    {
      "id": "lead_123",
      "full_name": "Sarah Carter",
      "title": "Head of Engineering",
      "country_code": "US",
      "profile": {
        "platform": "linkedin",
        "url": "https://linkedin.com/in/sarah-carter"
      },
      "company": {
        "id": "company_123",
        "name": "Acme",
        "domain": "acme.com",
        "linkedin_url": "https://linkedin.com/company/acme",
        "country_code": "US"
      },
      "sheet": {
        "id": "sheet_123",
        "name": "AI infrastructure buyers"
      },
      "signal": {
        "id": "topic_engagement_signal",
        "name": "Post Engagers",
        "summary": "Engaged with relevant topic content recently",
        "reason": "Sarah engaged with content related to cloud infrastructure modernization.",
        "observed_at": "2026-06-15T08:00:00Z"
      }
    }
  ],
  "cursor": {
    "next": "",
    "has_more": false
  }
}

4. Paginate results

List responses return pagination metadata under cursor.
{
  "cursor": {
    "next": "eyJ2IjoxLCJvYnNlcnZlZF9hdCI6IjIwMjYtMDYtMTJUMTQ6MDk6MjNaIiwiaWQiOiJsZWFkXzEyMyJ9",
    "has_more": true
  }
}
Pass cursor.next as cursor.after to fetch the next page.
{
  "cursor": {
    "limit": 100,
    "after": "eyJ2IjoxLCJvYnNlcnZlZF9hdCI6IjIwMjYtMDYtMTJUMTQ6MDk6MjNaIiwiaWQiOiJsZWFkXzEyMyJ9"
  }
}

5. Check request logs

Open Developer → Request Logs in the dashboard to inspect recent API requests, response codes, latency, IP, and user agent.