Ontraport · OpenAPI Overlay 1.0.0

Ontraport Objects API — API Evangelist enhancements

10 actions 10 updates documentation extends ../openapi/ontraport-objects-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Ontraport's API. It is a proposal applied on top of the contract, not a document Ontraport publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

operationIdx-api-evangelistx-rate-limitx-response-envelopex-paginationx-destructivex-idempotencyx-changelog

Targets 10

$.info
$
$.paths['/objects'].get
$.paths['/objects'].post
$.paths['/objects'].put
$.paths['/objects'].delete
$.paths['/object'].get
$.paths['/objects/saveorupdate'].post
$.paths['/objects/tag'].get
$.paths['/object/getByEmail'].get

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: Ontraport Objects API — API Evangelist enhancements
  version: 1.0.0
  x-generated: '2026-08-13'
  x-method: generated
  x-source: >-
    Enhancements derived from Ontraport's published REST documentation at
    https://api.ontraport.com/doc/ (authentication headers, 180 req/min rolling rate limit
    and its X-Rate-Limit-* response headers, documented HTTP status codes, start/range
    pagination) plus the object-type table on the same page. Extends
    openapi/ontraport-objects-api-openapi.yml. The original OpenAPI is never mutated.
extends: ../openapi/ontraport-objects-api-openapi.yml
actions:
- target: $.info
  description: Add contact, license-free terms link and rate-limit summary to the API description.
  update:
    x-api-evangelist:
      docs: https://api.ontraport.com/doc/
      console: https://api.ontraport.com/live/
      changelog: https://api.ontraport.com/doc/#api-change-log
      rate_limit: 180 requests per minute per account, rolling
      support: https://ontraport.com/support
- target: $
  description: >-
    Declare the rate-limit response headers Ontraport documents on every response, and the
    account-scoped rate-limit policy, at the document root as vendor extensions.
  update:
    x-rate-limit:
      scope: account
      limit: 180
      window: 60s
      rolling: true
      headers:
      - X-Rate-Limit-Limit
      - X-Rate-Limit-Remaining
      - X-Rate-Limit-Reset
      exhausted_status: 429
    x-response-envelope:
      fields:
      - name: code
        type: integer
        description: 0 indicates an HTTP 200 successful call.
      - name: data
        type: object
        description: Object-specific attributes and data.
      - name: account_id
        type: integer
        description: ID of the account making the API call.
- target: $.paths['/objects'].get
  description: Assign a stable operationId and document start/range pagination semantics.
  update:
    operationId: listObjects
    x-pagination:
      style: offset
      params:
        offset: start
        limit: range
      default_page_size: 50
      max_page_size: 50
      count_endpoint: GET /objects/getInfo
- target: $.paths['/objects'].post
  description: Assign a stable operationId.
  update:
    operationId: createObject
- target: $.paths['/objects'].put
  description: Assign a stable operationId.
  update:
    operationId: updateObject
- target: $.paths['/objects'].delete
  description: Assign a stable operationId and flag the destructive scope.
  update:
    operationId: deleteObjects
    x-destructive: true
- target: $.paths['/object'].get
  description: Assign a stable operationId.
  update:
    operationId: getObject
- target: $.paths['/objects/saveorupdate'].post
  description: >-
    Assign a stable operationId and record that this is the upsert Ontraport recommends as
    the default write path because it matches on a unique field and prevents duplicates.
  update:
    operationId: saveOrUpdateObject
    x-idempotency:
      supported: true
      mechanism: unique-field-match
      note: >-
        Ontraport does not support an Idempotency-Key header. Repeat-safety is achieved by
        matching on a unique field (typically email) so a replayed create becomes an update.
        This is the provider's own recommended pattern for maintaining data integrity.
- target: $.paths['/objects/tag'].get
  description: Assign a stable operationId.
  update:
    operationId: getObjectsByTag
- target: $.paths['/object/getByEmail'].get
  description: >-
    Assign a stable operationId and record the documented 2022-04-13 change from 400 to 404
    for an invalid email.
  update:
    operationId: getObjectByEmail
    x-changelog:
    - date: '2022-04-13'
      change: Invalid email response changed from a 400 to a 404.