Skip to content
Pile
Esc
↑↓navigate↵open⌘Jpreview

Create customer send gate

POST/workspaces/{organizationId}/customers/{id}/send-gate
Authorization
AuthorizationBearer token · headerrequired

Workspace API key (Authorization: Bearer <key>). Issue keys under Settings → Developer or POST /workspaces/{organizationId}/tokens.

Path parameters
organizationIdstringrequired
idstringrequired
Request body
application/json
touchIdstring
default: "touch-preview"
channelstringrequired
Allowed:emailcallvisitlinkedin
actionstring
default: "engage"
Allowed:engageclaim
contactIdstring
default: "default-contact"
contactEmailstring
emailStatusstring
Allowed:validinvalidcatch_allroleunknown
emailVerifiedAtstring
doNotContactboolean
doNotEmailboolean
doNotCallboolean
euResidentboolean
hasExplicitConsentboolean
allowCatchAllboolean
allowRoleboolean
allowUnverifiedboolean
Responses
200

Deterministic send/claim GateDecision

touchIdstringrequired
channelstringrequired
resultstringrequired
Allowed:passwarnblock
reasonsstring[]required
matchedExclusionsstring[]required
evaluatedAtstringrequired
404

Customer not found

Try it
Server
Authorization
Parameters
Bodyapplication/json
Request
curl -X POST 'https://pile.nyc/workspaces/string/customers/string/send-gate' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "touchId": "touch-preview",
  "channel": "email",
  "action": "engage",
  "contactId": "default-contact",
  "contactEmail": "string",
  "emailStatus": "valid",
  "emailVerifiedAt": "string",
  "doNotContact": true,
  "doNotEmail": true,
  "doNotCall": true,
  "euResident": true,
  "hasExplicitConsent": true,
  "allowCatchAll": true,
  "allowRole": true,
  "allowUnverified": true
}'
Response
{
  "touchId": "string",
  "channel": "string",
  "result": "pass",
  "reasons": [
    "string"
  ],
  "matchedExclusions": [
    "string"
  ],
  "evaluatedAt": "string"
}

Was this page helpful?