Skip to content

Endpoints

Full reference for all PartnerSignals REST API endpoints.


Signals

List Signals

GET /v1/signals

Returns the signal feed for your organization.

Query parameters:

Parameter Type Description
type string Filter by signal type: co_sell, overlap, pre_intent
state string Filter by state: new, in_progress, handled, expired
partner_id string Filter to a specific partner
account_id string Filter to a specific CRM account
limit integer Results per page (default: 25, max: 100)
cursor string Pagination cursor from previous response

Example request:

curl "https://api.partnersignals.ai/v1/signals?type=co_sell&state=new&limit=10" \
  -H "Authorization: Bearer ps_live_your_key_here"

Example response:

{
  "data": [
    {
      "id": "sig_01j3kx...",
      "type": "co_sell",
      "state": "new",
      "partner": {
        "id": "prt_01j2ax...",
        "name": "CloudCo",
        "type": "solution_provider"
      },
      "account": {
        "id": "acc_01j1bx...",
        "name": "Acme Corp",
        "crm_id": "001Xx000003GYwI"
      },
      "opportunity": {
        "id": "opp_01j1cx...",
        "name": "Acme Corp Q3 Expansion",
        "value": 240000,
        "stage": "Proposal"
      },
      "fired_at": "2026-07-27T18:30:00Z",
      "recommended_action": "Sync with CloudCo rep this week"
    }
  ],
  "next_cursor": "cur_01j3ky...",
  "has_more": true
}

Get Signal

GET /v1/signals/{signal_id}

Returns full detail for a single signal including the complete partner activity log.


Update Signal State

PATCH /v1/signals/{signal_id}

Request body:

{
  "state": "handled",
  "note": "Synced with CloudCo rep — intro scheduled for 8/3"
}

Partners

List Partners

GET /v1/partners

Query parameters:

Parameter Type Description
type string Filter by partner type: solution_provider, technology_partner, hyperscaler, gsi
tier integer Filter by tier (1–4)
limit integer Results per page (default: 25, max: 100)
cursor string Pagination cursor

Get Partner

GET /v1/partners/{partner_id}

Returns full partner detail including tier, co-sell density score, and active signal count.


Attribution

List Attribution Records

GET /v1/attribution

Query parameters:

Parameter Type Description
partner_id string Filter to a specific partner
tier string Filter by tier: sourced, co_sell, influenced
closed_after ISO 8601 date Filter to deals closed after this date
closed_before ISO 8601 date Filter to deals closed before this date
limit integer Results per page (default: 25, max: 100)
cursor string Pagination cursor

Get Attribution Record

GET /v1/attribution/{record_id}

Returns a single attribution record including the evidence log and dispute history.


Create Dispute

POST /v1/attribution/{record_id}/disputes

Request body:

{
  "claimed_tier": "sourced",
  "justification": "Partner CloudCo made the initial introduction via their SE team in May"
}

Webhooks

PartnerSignals can POST events to your endpoint when signals fire or attribution records are created.

Register a Webhook

POST /v1/webhooks

Request body:

{
  "url": "https://your-app.com/webhooks/partnersignals",
  "events": ["signal.created", "attribution.created", "attribution.updated"],
  "secret": "your_signing_secret"
}

Webhook Payload

{
  "event": "signal.created",
  "data": { ... },
  "timestamp": "2026-07-27T21:00:00Z",
  "signature": "sha256=..."
}

Verify the signature using HMAC-SHA256 with your signing secret before processing the payload.