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.

Recotap is an AI-powered account-based marketing (ABM) platform built for SaaS and software companies. It aggregates first, second, and third-party intent signals across multiple sources — website visits, G2, Bombora, and LinkedIn ads — to score accounts, map them to buying journey stages, and help sales and marketing teams identify which accounts are most likely to convert and when. Recotap is an official LinkedIn Marketing Partner, with deep integration into LinkedIn ad activity as a core intent signal. This API lets you connect Recotap to a custom or in-house CRM so your CRM and Recotap stay in sync, in both directions.
This API is for teams whose CRM is not HubSpot or Salesforce. Those platforms are supported through a separate native integration. If your team uses a custom or proprietary CRM, this is the right path.

What this API provides

Inbound — Your CRM → Recotap

Push accounts, deals, sales activities, and custom field definitions into Recotap so it can score and segment them.

Outbound — Recotap → Your CRM

Pull accounts back with Recotap scores, intent signals, journey stages, and segment memberships to enrich your CRM records.
When you first push an account, all rtp_ score fields default to 0. Scores are updated on a schedule — not in real-time. Build your integration to expect a delay between pushing an account and seeing updated scores.

Authentication

All requests require an API key passed in the X-Api-Key header. See the Authentication page for how to generate your key and use it correctly.

Base URL

All CRM API endpoints are under:
http://eapi.recotap.com/api/v1/crm/
The current API version is v1. Breaking changes will be introduced under a new version path (e.g. /v2/). Existing v1 endpoints will not be modified in a breaking way.

Request format

POST, PUT, and PATCH requests must include:
Content-Type: application/json
GET requests require only the X-Api-Key header. No multipart or other content types are used anywhere in this API.

Response envelope

All responses — success and error — share a consistent top-level structure:
{
  "statusCode": 200,
  "timestamp": "2026-04-30T10:00:00.000Z",
  "path": "/api/v1/crm/accounts",
  "data": { ... }
}
Error responses follow the same envelope with data: null and two additional fields:
{
  "statusCode": 400,
  "timestamp": "2026-04-30T10:00:00.000Z",
  "path": "/api/v1/crm/accounts",
  "data": null,
  "message": "Validation failed",
  "customMessage": "externalId is required for all accounts"
}

Pagination

All GET list endpoints support limit and cursor query parameters. Most endpoints default to limit=100. The cursor is offset-based. Pass the offset of the next page to continue.
ParameterTypeDescription
limitintegerNumber of records to return. Defaults to 100.
cursorintegerOffset to start from. Omit or pass 0 for the first page.

Delta sync

Every GET list endpoint also supports lastSync, an ISO 8601 timestamp. Pass your last sync time and Recotap returns only records updated after that point. This is a filter, not a pagination control. Use it alongside limit and cursor for large syncs.
First sync:    GET /accounts?limit=100
Next page:     GET /accounts?limit=100&cursor=100
Delta sync:    GET /accounts?lastSync=2026-04-30T10:00:00Z&limit=100
Delta + page:  GET /accounts?lastSync=2026-04-30T10:00:00Z&limit=100&cursor=100
Your integration is responsible for storing the timestamp of each completed sync and passing it as lastSync on the next run.

Bulk limits

ResourceMax records per request
Accounts (POST)100
Deals (POST)100
Sales Activities (POST)50
External ID mappings (PATCH)100