Ortto

Ortto (formerly Autopilot) is a marketing automation, customer data platform (CDP), and analytics product. Its REST API at https://api.ap3api.com/v1 lets applications create and update people/contacts and accounts, send custom activity events, manage tags, retrieve campaign reports, and send transactional email and SMS, all authenticated with a custom API key via the X-Api-Key header.

6 APIs 0 Features
Marketing AutomationCDPCustomer Data PlatformAnalyticsEmail

APIs

Ortto People / Contacts API

Create or update one or more people (merge), retrieve people by query or by IDs, archive, delete, restore, and manage subscriptions and custom fields, with configurable merge st...

Ortto Custom Activities API

Send up to 100 custom activity events per request (2 MB max) and manage activity definitions, optionally creating or updating the associated person via merge_by or person_id.

Ortto Campaigns API

Retrieve campaigns by time period (calendar), pull campaign and asset reports, and fetch the HTML or SMS body of email and SMS assets.

Ortto Tags API

Retrieve the list of tags configured on an account, optionally filtered by a search term; people are tagged and untagged through the people merge endpoint.

Ortto Transactional Email API

Send transactional (or, with non_transactional set, marketing) email and SMS via a single POST, with support for up to 5 base64-encoded attachments; the endpoint returns a 202 o...

Ortto Webhooks

Outbound webhooks delivered from Ortto journeys/playbooks let external systems react to contact and campaign events; configuration is done in the Ortto app rather than through a...

Collections

Ortto API

OPEN

Pricing Plans

Ortto Plans Pricing

5 plans

PLANS

Rate Limits

Ortto Rate Limits

7 limits

RATE LIMITS

FinOps

Ortto Finops

FINOPS

Resources

👥
GitHubOrganization
GitHubOrganization
🔗
LinkedIn
LinkedIn
🔗
Website
Website
🔗
Documentation
Documentation
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
FinOps
FinOps

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Ortto API
  version: '1.0'
request:
  auth:
    type: apikey
    apikey:
      key: X-Api-Key
      value: '{{apiKey}}'
      in: header
items:
- info:
    name: People
    type: folder
  items:
  - info:
      name: Create or update one or more people (merge)
      type: http
    http:
      method: POST
      url: https://api.ap3api.com/v1/person/merge
      body:
        type: json
        data: "{\n  \"people\": [{ \"fields\": { \"str::email\": \"person@example.com\" } }],\n  \"merge_by\": [\"str::email\"\
          ],\n  \"merge_strategy\": 2\n}"
    docs: Create or update up to 100 people in one request using merge_by and merge_strategy.
  - info:
      name: Retrieve one or more people (get)
      type: http
    http:
      method: POST
      url: https://api.ap3api.com/v1/person/get
      body:
        type: json
        data: "{\n  \"limit\": 50,\n  \"fields\": [\"str::email\", \"str::first\"]\n}"
    docs: Retrieve people matching a filter with requested fields, sort, limit, and offset.
  - info:
      name: Retrieve people by IDs (get-by-ids)
      type: http
    http:
      method: POST
      url: https://api.ap3api.com/v1/person/get-by-ids
      body:
        type: json
        data: "{\n  \"contact_ids\": [\"00000000-0000-0000-0000-000000000000\"]\n}"
    docs: Retrieve people by their Ortto contact IDs.
- info:
    name: Accounts
    type: folder
  items:
  - info:
      name: Create or update one or more accounts (merge)
      type: http
    http:
      method: POST
      url: https://api.ap3api.com/v1/accounts/merge
      body:
        type: json
        data: "{\n  \"accounts\": [{ \"fields\": { \"str:o::name\": \"Acme Inc\" } }],\n  \"merge_by\": [\"str:o::name\"]\n\
          }"
    docs: Create or update accounts (previously organizations) using merge semantics.
- info:
    name: Activities
    type: folder
  items:
  - info:
      name: Create a custom activity event (create)
      type: http
    http:
      method: POST
      url: https://api.ap3api.com/v1/activities/create
      body:
        type: json
        data: "{\n  \"activities\": [{ \"activity_id\": \"act:cm:placed-order\", \"fields\": { \"str::email\": \"person@example.com\"\
          \ } }],\n  \"merge_by\": [\"str::email\"]\n}"
    docs: Send up to 100 custom activity events per request (max 2 MB).
- info:
    name: Tags
    type: folder
  items:
  - info:
      name: Retrieve a list of tags (get)
      type: http
    http:
      method: POST
      url: https://api.ap3api.com/v1/tags/get
      body:
        type: json
        data: '{}'
    docs: Retrieve the tags configured on the account; optional q filters by search term.
- info:
    name: Campaigns
    type: folder
  items:
  - info:
      name: Retrieve campaigns by time period (calendar)
      type: http
    http:
      method: POST
      url: https://api.ap3api.com/v1/campaign/calendar
      body:
        type: json
        data: "{\n  \"type\": \"journey\",\n  \"limit\": 50\n}"
    docs: Retrieve campaigns filtered by type, state, folder, and search query.
  - info:
      name: Retrieve a campaign or asset report (get)
      type: http
    http:
      method: POST
      url: https://api.ap3api.com/v1/campaign/reports/get
      body:
        type: json
        data: "{\n  \"campaign_id\": \"00000000-0000-0000-0000-000000000000\"\n}"
    docs: Retrieve a report for a campaign or asset.
- info:
    name: Transactional
    type: folder
  items:
  - info:
      name: Send a transactional email (send)
      type: http
    http:
      method: POST
      url: https://api.ap3api.com/v1/transactional/send
      body:
        type: json
        data: "{\n  \"email_id\": \"00000000-0000-0000-0000-000000000000\",\n  \"merge_by\": [\"str::email\"],\n  \"people\"\
          : [{ \"fields\": { \"str::email\": \"person@example.com\" } }]\n}"
    docs: Send a transactional email; returns 202 on acceptance. Set non_transactional true for marketing.
  - info:
      name: Send a transactional SMS (send-sms)
      type: http
    http:
      method: POST
      url: https://api.ap3api.com/v1/transactional/send-sms
      body:
        type: json
        data: "{\n  \"sms_id\": \"00000000-0000-0000-0000-000000000000\",\n  \"merge_by\": [\"str::email\"],\n  \"people\"\
          : [{ \"fields\": { \"str::email\": \"person@example.com\" } }]\n}"
    docs: Send a transactional SMS message.