API reference
DEVELOPER PLATFORM · v1

An API you can build with

CRM, campaigns, analytics and integrations. Exact contracts, practical examples and signed webhooks.

Download OpenAPI

Private preview: use a project API key. Public SLA and support windows have not been established yet.

GET

List Developer Campaigns

/api/v1/developer/campaigns

Use the access scope below. The generated schemas specify the exact request and responses.

Access scopecampaigns.read

Authorization: Bearer YOUR_PROJECT_TOKEN

Parameters

limitoptional · query

integerminimum: 1 · maximum: 100 · default: 50

JSON Schema
{
  "type": "integer",
  "minimum": 1,
  "maximum": 100,
  "default": 50
}
cursoroptional · query

stringminLength: 1 · maxLength: 4096

JSON Schema
{
  "type": "string",
  "minLength": 1,
  "maxLength": 4096
}

Request examples

curl --request GET   'https://YOUR_NOVA_HOST/api/v1/developer/campaigns?limit=50'   --header 'Authorization: Bearer YOUR_PROJECT_TOKEN'

Responses

200 Paginated minimized Campaign directory
application/json

object

campaignsrequired
arraymaxItems: 100
Nested schema

arraymaxItems: 100

object

idrequired
stringminLength: 1 · maxLength: 160
namerequired
stringminLength: 1 · maxLength: 160
statusrequired
stringenum: ["draft","scheduled","sending","paused","completed","cancelled"]
scheduledForrequired
string | nullformat: "date-time"
scheduleTimezonerequired
string | nullminLength: 1 · maxLength: 100
scheduleLocalDateTimerequired
string | nullpattern: "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}$"
sendsPerMinuterequired
integer | nullexclusiveMinimum: 0
startedAtrequired
string | nullformat: "date-time"
pausedAtrequired
string | nullformat: "date-time"
completedAtrequired
string | nullformat: "date-time"
cancelledAtrequired
string | nullformat: "date-time"
versionrequired
integerexclusiveMinimum: 0
createdAtrequired
stringformat: "date-time"
updatedAtrequired
stringformat: "date-time"
JSON Schema
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 160
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 160
    },
    "status": {
      "type": "string",
      "enum": [
        "draft",
        "scheduled",
        "sending",
        "paused",
        "completed",
        "cancelled"
      ]
    },
    "scheduledFor": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "scheduleTimezone": {
      "type": [
        "string",
        "null"
      ],
      "minLength": 1,
      "maxLength": 100
    },
    "scheduleLocalDateTime": {
      "type": [
        "string",
        "null"
      ],
      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}$"
    },
    "sendsPerMinute": {
      "type": [
        "integer",
        "null"
      ],
      "exclusiveMinimum": 0
    },
    "startedAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "pausedAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "completedAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "cancelledAt": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "version": {
      "type": "integer",
      "exclusiveMinimum": 0
    },
    "createdAt": {
      "type": "string",
      "format": "date-time"
    },
    "updatedAt": {
      "type": "string",
      "format": "date-time"
    }
  },
  "required": [
    "id",
    "name",
    "status",
    "scheduledFor",
    "scheduleTimezone",
    "scheduleLocalDateTime",
    "sendsPerMinute",
    "startedAt",
    "pausedAt",
    "completedAt",
    "cancelledAt",
    "version",
    "createdAt",
    "updatedAt"
  ],
  "additionalProperties": false
}
JSON Schema
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": {
        "type": "string",
        "minLength": 1,
        "maxLength": 160
      },
      "name": {
        "type": "string",
        "minLength": 1,
        "maxLength": 160
      },
      "status": {
        "type": "string",
        "enum": [
          "draft",
          "scheduled",
          "sending",
          "paused",
          "completed",
          "cancelled"
        ]
      },
      "scheduledFor": {
        "type": [
          "string",
          "null"
        ],
        "format": "date-time"
      },
      "scheduleTimezone": {
        "type": [
          "string",
          "null"
        ],
        "minLength": 1,
        "maxLength": 100
      },
      "scheduleLocalDateTime": {
        "type": [
          "string",
          "null"
        ],
        "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}$"
      },
      "sendsPerMinute": {
        "type": [
          "integer",
          "null"
        ],
        "exclusiveMinimum": 0
      },
      "startedAt": {
        "type": [
          "string",
          "null"
        ],
        "format": "date-time"
      },
      "pausedAt": {
        "type": [
          "string",
          "null"
        ],
        "format": "date-time"
      },
      "completedAt": {
        "type": [
          "string",
          "null"
        ],
        "format": "date-time"
      },
      "cancelledAt": {
        "type": [
          "string",
          "null"
        ],
        "format": "date-time"
      },
      "version": {
        "type": "integer",
        "exclusiveMinimum": 0
      },
      "createdAt": {
        "type": "string",
        "format": "date-time"
      },
      "updatedAt": {
        "type": "string",
        "format": "date-time"
      }
    },
    "required": [
      "id",
      "name",
      "status",
      "scheduledFor",
      "scheduleTimezone",
      "scheduleLocalDateTime",
      "sendsPerMinute",
      "startedAt",
      "pausedAt",
      "completedAt",
      "cancelledAt",
      "version",
      "createdAt",
      "updatedAt"
    ],
    "additionalProperties": false
  },
  "maxItems": 100
}
nextCursorrequired
string | nullmaxLength: 4096
JSON Schema
{
  "type": "object",
  "properties": {
    "campaigns": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160
          },
          "status": {
            "type": "string",
            "enum": [
              "draft",
              "scheduled",
              "sending",
              "paused",
              "completed",
              "cancelled"
            ]
          },
          "scheduledFor": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "scheduleTimezone": {
            "type": [
              "string",
              "null"
            ],
            "minLength": 1,
            "maxLength": 100
          },
          "scheduleLocalDateTime": {
            "type": [
              "string",
              "null"
            ],
            "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}$"
          },
          "sendsPerMinute": {
            "type": [
              "integer",
              "null"
            ],
            "exclusiveMinimum": 0
          },
          "startedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "pausedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "completedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "cancelledAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "version": {
            "type": "integer",
            "exclusiveMinimum": 0
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "name",
          "status",
          "scheduledFor",
          "scheduleTimezone",
          "scheduleLocalDateTime",
          "sendsPerMinute",
          "startedAt",
          "pausedAt",
          "completedAt",
          "cancelledAt",
          "version",
          "createdAt",
          "updatedAt"
        ],
        "additionalProperties": false
      },
      "maxItems": 100
    },
    "nextCursor": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 4096
    }
  },
  "required": [
    "campaigns",
    "nextCursor"
  ],
  "additionalProperties": false,
  "$ref": "#/components/schemas/DeveloperCampaignPageResponse"
}
400 Invalid Campaign page
application/problem+json

object

type
stringformat: "uri" · default: "about:blank"
titlerequired
string
statusrequired
integerminimum: 100 · maximum: 599
detail
string
instance
string
errors
object
JSON Schema
{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "default": "about:blank"
    },
    "title": {
      "type": "string"
    },
    "status": {
      "type": "integer",
      "minimum": 100,
      "maximum": 599
    },
    "detail": {
      "type": "string"
    },
    "instance": {
      "type": "string"
    },
    "errors": {
      "type": "object",
      "additionalProperties": {}
    }
  },
  "required": [
    "title",
    "status"
  ]
}
401 Invalid developer credential
application/problem+json

object

type
stringformat: "uri" · default: "about:blank"
titlerequired
string
statusrequired
integerminimum: 100 · maximum: 599
detail
string
instance
string
errors
object
JSON Schema
{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "default": "about:blank"
    },
    "title": {
      "type": "string"
    },
    "status": {
      "type": "integer",
      "minimum": 100,
      "maximum": 599
    },
    "detail": {
      "type": "string"
    },
    "instance": {
      "type": "string"
    },
    "errors": {
      "type": "object",
      "additionalProperties": {}
    }
  },
  "required": [
    "title",
    "status"
  ]
}
403 Campaign directory unavailable
application/problem+json

object

type
stringformat: "uri" · default: "about:blank"
titlerequired
string
statusrequired
integerminimum: 100 · maximum: 599
detail
string
instance
string
errors
object
JSON Schema
{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "default": "about:blank"
    },
    "title": {
      "type": "string"
    },
    "status": {
      "type": "integer",
      "minimum": 100,
      "maximum": 599
    },
    "detail": {
      "type": "string"
    },
    "instance": {
      "type": "string"
    },
    "errors": {
      "type": "object",
      "additionalProperties": {}
    }
  },
  "required": [
    "title",
    "status"
  ]
}
429 Developer API rate limit exceeded
application/problem+json

object

type
stringformat: "uri" · default: "about:blank"
titlerequired
string
statusrequired
integerminimum: 100 · maximum: 599
detail
string
instance
string
errors
object
JSON Schema
{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "default": "about:blank"
    },
    "title": {
      "type": "string"
    },
    "status": {
      "type": "integer",
      "minimum": 100,
      "maximum": 599
    },
    "detail": {
      "type": "string"
    },
    "instance": {
      "type": "string"
    },
    "errors": {
      "type": "object",
      "additionalProperties": {}
    }
  },
  "required": [
    "title",
    "status"
  ]
}
503 Developer API rate limiter unavailable
application/problem+json

object

type
stringformat: "uri" · default: "about:blank"
titlerequired
string
statusrequired
integerminimum: 100 · maximum: 599
detail
string
instance
string
errors
object
JSON Schema
{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "format": "uri",
      "default": "about:blank"
    },
    "title": {
      "type": "string"
    },
    "status": {
      "type": "integer",
      "minimum": 100,
      "maximum": 599
    },
    "detail": {
      "type": "string"
    },
    "instance": {
      "type": "string"
    },
    "errors": {
      "type": "object",
      "additionalProperties": {}
    }
  },
  "required": [
    "title",
    "status"
  ]
}