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.

POST /deals Upserts deals from your CRM into Recotap. Creates the deal if externalDealId is new; updates it if it already exists. Max 100 deals per request. Returns HTTP 200 regardless of per-item outcome.
curl -X POST "http://eapi.recotap.com/api/v1/crm/deals" \
  -H "X-Api-Key: your-api-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "deals": [
      {
        "externalDealId": "deal-001",
        "name": "Acme Corp - Enterprise Plan",
        "amount": 75000,
        "stageId": "stage-3",
        "stageLabel": "Proposal Sent",
        "pipelineId": "smb-pipeline",
        "pipelineLabel": "SMB Sales",
        "startDate": "2026-01-15T00:00:00Z",
        "closedDate": "2026-06-30T00:00:00Z",
        "ownerName": "Jane Smith",
        "ownerEmail": "jane@yourcompany.com",
        "ownerId": "rep-123",
        "dealCurrencyCode": "USD",
        "associatedAccounts": [
          {
            "externalId": "crm-001",
            "domain": "acme.com",
            "name": "Acme Corp"
          }
        ]
      }
    ]
  }'
Request body
FieldTypeRequiredDescription
dealsarrayYesMin 1, max 100 deal objects
Deal object
FieldTypeRequiredDescription
externalDealIdstringYesYour CRM’s unique deal ID, used for deduplication e.g. "deal-001"
namestringYesDeal title e.g. "Acme Corp - Enterprise Plan"
amountnumberNoDeal value e.g. 75000
stageIdstringNoStage ID in your CRM e.g. "stage-3"
stageLabelstringNoStage display name e.g. "Proposal Sent"
pipelineIdstringNoPipeline ID in your CRM e.g. "smb-pipeline"
pipelineLabelstringNoPipeline display name e.g. "SMB Sales"
startDatestringNoISO 8601 deal start date e.g. "2026-01-15T00:00:00Z"
closedDatestringNoISO 8601 expected or actual close date e.g. "2026-06-30T00:00:00Z"
ownerNamestringNoName of the sales rep who owns this deal in your CRM e.g. "Jane Smith"
ownerEmailstringNoEmail of the sales rep who owns this deal in your CRM e.g. "jane@yourcompany.com". Must be a valid email format if provided.
ownerIdstringNoRep’s owner ID in your CRM e.g. "rep-123"
dealCurrencyCodestringNoe.g. "USD", "EUR", "GBP"
associatedAccountsarrayNoAccounts linked to this deal, used for revenue attribution
associatedAccounts object
FieldTypeRequiredDescription
externalIdstringNoYour CRM account ID e.g. "crm-001"
domainstringNoAccount domain used for matching in Recotap e.g. "acme.com". If no match is found, the deal is still created with the account unlinked.
namestringNoCompany display name e.g. "Acme Corp"
Response data
{
  "results": [
    { "externalDealId": "deal-001", "status": "upserted" },
    { "externalDealId": "deal-002", "status": "failed", "error": "..." }
  ],
  "summary": { "total": 2, "upserted": 1, "failed": 1 }
}