Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.recotap.com/llms.txt

Use this file to discover all available pages before exploring further.

Prerequisites

  • CRM API access enabled: This is not self-serve. Contact your Recotap account manager to have it enabled for your workspace.
  • Your API key: Generate it from Settings → Workspace → Tech Settings → API Access Key. See Authentication if you haven’t done this yet.

Step 1: Verify your key

Fetch your accounts to confirm authentication is working:
curl "http://eapi.recotap.com/api/v1/crm/accounts?limit=1" \
  -H "X-Api-Key: your-api-key-here"
A successful response returns the full response envelope:
{
  "statusCode": 200,
  "timestamp": "2026-04-30T10:00:00.000Z",
  "path": "/api/v1/crm/accounts",
  "data": {
    "data": [...],
    "nextCursor": null,
    "hasNextPage": false,
    "syncTimestamp": "2026-04-30T10:00:00.000Z"
  }
}
All API responses share this envelope: statusCode, timestamp, path, and data. Subsequent steps in this guide show only the data field for brevity. See Introduction for the full structure.
If you receive 401 Unauthorized, check that the X-Api-Key header value is correct and that CRM API access has been enabled for your workspace.

Step 2: Push your first account

externalId is required on every account. It is your CRM’s unique identifier for the record and is used for all future updates via PUT /accounts/:externalId.
curl -X POST "http://eapi.recotap.com/api/v1/crm/accounts" \
  -H "X-Api-Key: your-api-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "accounts": [
      {
        "externalId": "crm-account-001",
        "domain": "acme.com",
        "name": "Acme Corp",
        "shortName": "Acme",
        "linkedinUrl": "https://www.linkedin.com/company/acme-corp",
        "tags": ["enterprise", "q2-target"],
        "customFields": { "CONTRACT_VALUE_C": 75000 }
      }
    ],
    "segmentId": "663xyz..."
  }'
data field of the response:
{
  "results": [
    { "externalId": "crm-account-001", "status": "created" }
  ],
  "summary": { "total": 1, "created": 1, "updated": 0, "failed": 0 }
}
All subsequent updates use externalId as the path parameter, matching what you pushed.

Step 3: Pull accounts with Recotap scores

Pull accounts back with enriched rtp_ score fields:
curl "http://eapi.recotap.com/api/v1/crm/accounts" \
  -H "X-Api-Key: your-api-key-here"
All rtp_ score fields default to 0 on a newly pushed account. Scores are updated on a schedule — not in real-time.
data field of the response (showing one account):
{
  "data": [
    {
      "externalId": "crm-account-001",
      "name": "Acme Corp",
      "domain": "acme.com",
      "rtp_aid": "663abc...",
      "rtp_account_score": 78,
      "rtp_journey_stage": "Consideration",
      "rtp_advertising_activity_score": 55,
      "rtp_website_intent_score": 42,
      "rtp_g2_intent_score": 0,
      "rtp_bombora_intent_score": 31,
      "rtp_last_account_date": "2026-04-30T09:00:00.000Z"
    }
  ],
  "nextCursor": null,
  "hasNextPage": false,
  "syncTimestamp": "2026-04-30T10:00:00.000Z"
}
Map these rtp_ fields back into your CRM records:
FieldTypeDescription
rtp_aidstringRecotap’s internal account ID
rtp_account_scorenumberOverall account score (0–100)
rtp_journey_stagestringCurrent revenue journey stage (e.g. "Consideration")
rtp_website_intent_scorenumberIntent score from website visit signals
rtp_bombora_intent_scorenumberIntent score from Bombora data
rtp_g2_intent_scorenumberIntent score from G2 data
rtp_advertising_activity_scorenumberIntent score from LinkedIn ad activity
rtp_last_account_datedateTimestamp of the last Recotap update for this account

Step 4: Set up delta sync

On subsequent syncs, combine lastSync (a filter) with limit and cursor (pagination) to fetch only changed records efficiently:
# First delta page
curl "http://eapi.recotap.com/api/v1/crm/accounts?lastSync=2026-04-30T10:00:00Z&limit=100" \
  -H "X-Api-Key: your-api-key-here"

# Next page if hasNextPage is true
curl "http://eapi.recotap.com/api/v1/crm/accounts?lastSync=2026-04-30T10:00:00Z&limit=100&cursor=663abc..." \
  -H "X-Api-Key: your-api-key-here"
Store the syncTimestamp from each completed response and pass it as lastSync on the next run. Only records updated after that point are returned.

What’s next

Accounts

Full account push, update, and pull reference

Deals

Push deals with stage history for revenue attribution

Sales Activities

Push call and email activities with contact data

Custom Fields

View and define custom field schemas for accounts

Segments

Pull Recotap segment memberships into your CRM

Errors

Complete error reference and handling guide