Notix
API reference

Campaigns.

Create, schedule, pause and resume marketing campaigns. Every request needs an API key in the Authorization header; the reference overview covers keys, errors and rate limits.

Create a campaign

POST/v1/campaignsFull access key

Create a campaign. A team's first campaign is created but held for review before it can send, and answers 202. Pass segmentId to send only to the subscribed contacts of the book who match that segment when the send starts; the segment must belong to contactBookId.

Request body (JSON)
FieldTypeAbout
namerequiredstring
fromrequiredstring
subjectrequiredstring

At most 998 characters.

previewTextstring
contactBookIdrequiredstring
segmentIdstring

Send only to this segment of the contact book.

At most 64 characters.

contentstring
htmlstring
replyTostring or string[]
ccstring or string[]
bccstring or string[]
sendNowboolean
scheduledAtstring

Timestamp in ISO 8601 format or natural language (e.g., 'tomorrow 9am', 'next monday 10:30')

batchSizeinteger

Minimum 1. Maximum 100000.

terminal
curl -X POST "https://app.usenotix.dev/api/v1/campaigns" \
  -H "Authorization: Bearer $NOTIX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Acme",
  "from": "Acme <receipts@acme.com>",
  "subject": "Your receipt for order 4471",
  "contactBookId": "string"
}'

Responses

200Create a campaign
200 response fields
FieldTypeAbout
idrequiredstring
namerequiredstring
fromrequiredstring
subjectrequiredstring

At most 998 characters.

previewTextrequiredstring

Can be null.

contactBookIdrequiredstring

Can be null.

segmentIdrequiredstring

Can be null.

htmlrequiredstring

Can be null.

contentrequiredstring

Can be null.

statusrequiredstring
scheduledAtrequiredstring (date-time)

Can be null.

batchSizerequiredinteger
batchWindowMinutesrequiredinteger
totalrequiredinteger
sentrequiredinteger
deliveredrequiredinteger
openedrequiredinteger
clickedrequiredinteger
unsubscribedrequiredinteger
bouncedrequiredinteger
hardBouncedrequiredinteger
complainedrequiredinteger
replyTorequiredstring[]
ccrequiredstring[]
bccrequiredstring[]
createdAtrequiredstring (date-time)
updatedAtrequiredstring (date-time)
202The team's first campaign, created but held for review before it can send
202 response fields
FieldTypeAbout
statusrequiredstring

One of pending_review.

messagerequiredstring

List campaigns

GET/v1/campaignsFull access key

List the team's campaigns, paged and optionally filtered by status.

Query parameters
FieldTypeAbout
pageinteger

1-based page number, at most 10000. Defaults to 1.

Default 1.

statusstring

Filter campaigns by status

One of DRAFT, SCHEDULED, RUNNING, PAUSED, SENT, PENDING_REVIEW.

searchstring

Search campaigns by name or subject

terminal
curl -X GET "https://app.usenotix.dev/api/v1/campaigns" \
  -H "Authorization: Bearer $NOTIX_API_KEY"

Responses

200Get list of campaigns
200 response fields
FieldTypeAbout
campaignsrequiredobject[]
campaigns[].idrequiredstring
campaigns[].namerequiredstring
campaigns[].fromrequiredstring
campaigns[].subjectrequiredstring
campaigns[].createdAtrequiredstring (date-time)
campaigns[].updatedAtrequiredstring (date-time)
campaigns[].statusrequiredstring
campaigns[].scheduledAtrequiredstring (date-time)

Can be null.

campaigns[].totalrequiredinteger
campaigns[].sentrequiredinteger
campaigns[].deliveredrequiredinteger
campaigns[].unsubscribedrequiredinteger
totalPagerequiredinteger

Get a campaign

GET/v1/campaigns/{campaignId}Full access key

Retrieve one campaign.

Path parameters
FieldTypeAbout
campaignIdrequiredstring
terminal
curl -X GET "https://app.usenotix.dev/api/v1/campaigns/<campaignId>" \
  -H "Authorization: Bearer $NOTIX_API_KEY"

Responses

200Get campaign details
200 response fields
FieldTypeAbout
idrequiredstring
namerequiredstring
fromrequiredstring
subjectrequiredstring

At most 998 characters.

previewTextrequiredstring

Can be null.

contactBookIdrequiredstring

Can be null.

segmentIdrequiredstring

Can be null.

htmlrequiredstring

Can be null.

contentrequiredstring

Can be null.

statusrequiredstring
scheduledAtrequiredstring (date-time)

Can be null.

batchSizerequiredinteger
batchWindowMinutesrequiredinteger
totalrequiredinteger
sentrequiredinteger
deliveredrequiredinteger
openedrequiredinteger
clickedrequiredinteger
unsubscribedrequiredinteger
bouncedrequiredinteger
hardBouncedrequiredinteger
complainedrequiredinteger
replyTorequiredstring[]
ccrequiredstring[]
bccrequiredstring[]
createdAtrequiredstring (date-time)
updatedAtrequiredstring (date-time)

Delete a campaign

DELETE/v1/campaigns/{campaignId}Full access key

Delete a campaign.

Path parameters
FieldTypeAbout
campaignIdrequiredstring
terminal
curl -X DELETE "https://app.usenotix.dev/api/v1/campaigns/<campaignId>" \
  -H "Authorization: Bearer $NOTIX_API_KEY"

Responses

200Delete campaign
200 response fields
FieldTypeAbout
idrequiredstring
namerequiredstring
fromrequiredstring
subjectrequiredstring

At most 998 characters.

previewTextrequiredstring

Can be null.

contactBookIdrequiredstring

Can be null.

segmentIdrequiredstring

Can be null.

htmlrequiredstring

Can be null.

contentrequiredstring

Can be null.

statusrequiredstring
scheduledAtrequiredstring (date-time)

Can be null.

batchSizerequiredinteger
batchWindowMinutesrequiredinteger
totalrequiredinteger
sentrequiredinteger
deliveredrequiredinteger
openedrequiredinteger
clickedrequiredinteger
unsubscribedrequiredinteger
bouncedrequiredinteger
hardBouncedrequiredinteger
complainedrequiredinteger
replyTorequiredstring[]
ccrequiredstring[]
bccrequiredstring[]
createdAtrequiredstring (date-time)
updatedAtrequiredstring (date-time)

Schedule a campaign

POST/v1/campaigns/{campaignId}/scheduleFull access key

Schedule a campaign to send at a time, or now. A campaign still held for review answers 202.

Path parameters
FieldTypeAbout
campaignIdrequiredstring
Request body (JSON)
FieldTypeAbout
scheduledAtstring

Timestamp in ISO 8601 format or natural language (e.g., 'tomorrow 9am', 'next monday 10:30')

batchSizeinteger

Minimum 1. Maximum 100000.

terminal
curl -X POST "https://app.usenotix.dev/api/v1/campaigns/<campaignId>/schedule" \
  -H "Authorization: Bearer $NOTIX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "scheduledAt": "string",
  "batchSize": 1
}'

Responses

200Schedule a campaign
200 response fields
FieldTypeAbout
successrequiredboolean
202The team's first campaign, held for review before it can send
202 response fields
FieldTypeAbout
statusrequiredstring

One of pending_review.

messagerequiredstring

Pause a campaign

POST/v1/campaigns/{campaignId}/pauseFull access key

Stop a sending campaign. Emails already sent stay sent.

Path parameters
FieldTypeAbout
campaignIdrequiredstring
terminal
curl -X POST "https://app.usenotix.dev/api/v1/campaigns/<campaignId>/pause" \
  -H "Authorization: Bearer $NOTIX_API_KEY"

Responses

200Pause a campaign
200 response fields
FieldTypeAbout
successrequiredboolean

Resume a campaign

POST/v1/campaigns/{campaignId}/resumeFull access key

Continue a paused campaign. A campaign still held for review answers 202.

Path parameters
FieldTypeAbout
campaignIdrequiredstring
terminal
curl -X POST "https://app.usenotix.dev/api/v1/campaigns/<campaignId>/resume" \
  -H "Authorization: Bearer $NOTIX_API_KEY"

Responses

200Resume a campaign
200 response fields
FieldTypeAbout
successrequiredboolean
202The team's held campaign, still waiting for review before it can resume
202 response fields
FieldTypeAbout
statusrequiredstring

One of pending_review.

messagerequiredstring