Skip to main content
POST
/
v1
/
contacts
curl --request POST \ --url https://brew.new/api/v1/contacts \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data ' { "email": "jane@example.com", "firstName": "Jane", "lastName": "Doe", "customFields": { "plan": "enterprise" } } '
{ "contact": { "email": "jane@example.com", "firstName": "Jane", "lastName": "Doe", "subscribed": true, "verificationStatus": "valid", "suppressed": false, "suppressedReason": null, "createdAt": 1712592000000, "updatedAt": 1712592300000, "importId": null, "customFields": { "plan": "enterprise", "revenue": 4200 } }, "created": true, "fieldsCreated": [ "plan" ], "warnings": [] }

Authorizations

Authorization
string
header
default:brew_your_api_key
required

Send your Brew API key as Authorization: Bearer brew_xxx.

Headers

Idempotency-Key
string

Optional idempotency key for safe retries. Reusing the same key with the same request body returns the original response for 24 hours.

Required string length: 1 - 100

Body

application/json

Single contact payload or batch contact payload.

email
string
firstName
string
lastName
string
subscribed
boolean
customFields
object

Response

Single requests return one contact result. Batch requests return a summary when every contact succeeded.

contact
object
required
created
boolean
required
fieldsCreated
string[]
required
warnings
object[]
required