Monaco Campaigns API

The Campaigns API from Monaco — 7 operation(s) for creating campaigns that enroll the contacts of one or more audiences onto a sequence template, and for attaching, detaching, and enrolling into them.

Operations 7

POST /v1/campaigns/list List Campaigns #
GET /v1/campaigns/{campaign_id} Get a Campaign #
PATCH /v1/campaigns/{campaign_id} Update a Campaign #
POST /v1/campaigns/ Create a Campaign #
POST /v1/campaigns/{campaign_id}/enroll Enroll Contacts in a Campaign #
POST /v1/campaigns/{campaign_id}/audiences Add Audiences to a Campaign #
POST /v1/campaigns/{campaign_id}/audiences/remove Remove Audiences from a Campaign #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/monaco-campaigns-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

monaco-campaigns-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Monaco Public Campaigns API
  description: Public API for Monaco
  version: 1.0.0
servers:
- url: https://api.monaco.com
tags:
- name: Campaigns
paths:
  /v1/campaigns/list:
    post:
      tags:
      - Campaigns
      summary: List Campaigns
      description: Returns a paginated list of campaigns.
      operationId: list_campaigns
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublicListRequest'
            examples:
              paginated:
                value:
                  page: 1
                  page_size: 50
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicListResponse_CampaignResponse_'
              example:
                data:
                - id: cmp_abc123
                  name: Q3 Enterprise Outbound
                  status: active
                  prioritized: false
                  end_date: '2026-12-31'
                  template_id: seqt_789ghi
                  template_name: Enterprise Onboarding
                  audiences:
                  - id: aud_abc123
                    name: Enterprise West
                  created_at: '2026-01-15T10:30:00Z'
                  updated_at: '2026-05-10T14:22:00Z'
                pagination:
                  page: 1
                  page_size: 50
                  total_count: 7
                  total_pages: 1
                meta:
                  timestamp: '2026-05-11T17:00:00Z'
        4XX:
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicErrorResponse'
  /v1/campaigns/{campaign_id}:
    get:
      tags:
      - Campaigns
      summary: Get a Campaign
      description: Gets a single campaign by its `campaign_id`, including its attached audiences.
      operationId: get_campaign
      parameters:
      - name: campaign_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Campaign Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicItemResponse_CampaignDetailResponse_'
              example:
                data:
                  id: cmp_abc123
                  name: Q3 Enterprise Outbound
                  status: active
                  prioritized: false
                  end_date: '2026-12-31'
                  template_id: seqt_789ghi
                  template_name: Enterprise Onboarding
                  audiences:
                  - id: aud_abc123
                    name: Enterprise West
                  created_at: '2026-01-15T10:30:00Z'
                  updated_at: '2026-05-10T14:22:00Z'
                meta:
                  timestamp: '2026-05-11T17:00:00Z'
        4XX:
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicErrorResponse'
    patch:
      tags:
      - Campaigns
      summary: Update a Campaign
      description: 'Updates a campaign''s content fields and/or transitions its lifecycle via `status`. Returns the refreshed campaign.


        To attach or detach audiences, use `add_audiences_to_campaign` / `remove_audiences_from_campaign`.'
      operationId: update_campaign
      parameters:
      - name: campaign_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Campaign Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCampaignRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicItemResponse_CampaignDetailResponse_'
              example:
                data:
                  id: cmp_abc123
                  name: Q3 Enterprise Outbound (revised)
                  status: paused
                  prioritized: true
                  end_date: '2027-01-31'
                  template_id: seqt_789ghi
                  template_name: Enterprise Onboarding
                  audiences:
                  - id: aud_abc123
                    name: Enterprise West
                  created_at: '2026-01-15T10:30:00Z'
                  updated_at: '2026-05-10T14:22:00Z'
                meta:
                  timestamp: '2026-05-10T14:22:00Z'
        4XX:
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicErrorResponse'
        '400':
          description: Invalid campaign update
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicErrorResponse'
        '404':
          description: Campaign not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicErrorResponse'
        '409':
          description: Campaign is being processed and can't be updated right now
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicErrorResponse'
  /v1/campaigns/:
    post:
      tags:
      - Campaigns
      summary: Create a Campaign
      description: Creates a campaign that enrolls the contacts of the given audiences onto a template, routing sends according to `distribution`.
      operationId: create_campaign
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCampaignRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicItemResponse_CampaignDetailResponse_'
              example:
                data:
                  id: cmp_abc123
                  name: Q3 Enterprise Outbound
                  status: active
                  prioritized: true
                  end_date: '2026-12-31'
                  template_id: seqt_789ghi
                  template_name: Enterprise Onboarding
                  audiences:
                  - id: aud_abc123
                    name: Enterprise West
                  created_at: '2026-01-15T10:30:00Z'
                  updated_at: '2026-01-15T10:30:00Z'
                meta:
                  timestamp: '2026-01-15T10:30:00Z'
        4XX:
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicErrorResponse'
        '400':
          description: Invalid campaign request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicErrorResponse'
        '404':
          description: Template not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicErrorResponse'
  /v1/campaigns/{campaign_id}/enroll:
    post:
      tags:
      - Campaigns
      summary: Enroll Contacts in a Campaign
      description: 'Enrolls contacts into a campaign by creating a new audience named `audience_name`, attaching it to the campaign, and adding the contacts to it. The campaign must be `active` or `paused`.


        This always creates a new audience. Audiences can be shared across campaigns, so a contact added to one is enrolled in every campaign using it.'
      operationId: enroll_contacts_in_campaign
      parameters:
      - name: campaign_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Campaign Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnrollContactsInCampaignRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicItemResponse_EnrollContactsInCampaignResponse_'
              example:
                data:
                  success_count: 3
                  failure_count: 1
                  failure_reasons:
                  - code: contact_not_found
                    description: contact not found
                    count: 1
                meta:
                  timestamp: '2026-07-09T10:30:00Z'
        4XX:
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicErrorResponse'
        '400':
          description: Campaign is not enrollable or the audience name is taken
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicErrorResponse'
        '404':
          description: Campaign not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicErrorResponse'
  /v1/campaigns/{campaign_id}/audiences:
    post:
      tags:
      - Campaigns
      summary: Add Audiences to a Campaign
      description: Attaches the given audiences to a campaign, keeping its existing ones. Their contacts are enrolled asynchronously. Audiences already attached are ignored, so retries are safe. Returns the refreshed campaign.
      operationId: add_audiences_to_campaign
      parameters:
      - name: campaign_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Campaign Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CampaignAudiencesRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicItemResponse_CampaignDetailResponse_'
              example:
                data:
                  id: cmp_abc123
                  name: Q3 Enterprise Outbound
                  status: active
                  prioritized: false
                  end_date: '2026-12-31'
                  template_id: seqt_789ghi
                  template_name: Enterprise Onboarding
                  audiences:
                  - id: aud_abc123
                    name: Enterprise West
                  - id: aud_def456
                    name: Enterprise East
                  created_at: '2026-01-15T10:30:00Z'
                  updated_at: '2026-05-10T14:22:00Z'
                meta:
                  timestamp: '2026-05-10T14:22:00Z'
        4XX:
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicErrorResponse'
        '400':
          description: Invalid audiences
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicErrorResponse'
        '404':
          description: Campaign not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicErrorResponse'
        '409':
          description: Campaign is being processed and can't be updated right now
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicErrorResponse'
  /v1/campaigns/{campaign_id}/audiences/remove:
    post:
      tags:
      - Campaigns
      summary: Remove Audiences from a Campaign
      description: 'Detaches the given audiences from a campaign, keeping the rest.


        WARNING: detaching an audience tears down in-flight sequences for its contacts — they stop receiving the campaign''s sends.


        Audiences not attached are ignored, so retries are safe, but a campaign must keep at least one audience — a request that would remove them all is rejected.


        Returns the refreshed campaign.'
      operationId: remove_audiences_from_campaign
      parameters:
      - name: campaign_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Campaign Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CampaignAudiencesRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicItemResponse_CampaignDetailResponse_'
              example:
                data:
                  id: cmp_abc123
                  name: Q3 Enterprise Outbound
                  status: active
                  prioritized: false
                  end_date: '2026-12-31'
                  template_id: seqt_789ghi
                  template_name: Enterprise Onboarding
                  audiences:
                  - id: aud_abc123
                    name: Enterprise West
                  - id: aud_def456
                    name: Enterprise East
                  created_at: '2026-01-15T10:30:00Z'
                  updated_at: '2026-05-10T14:22:00Z'
                meta:
                  timestamp: '2026-05-10T14:22:00Z'
        4XX:
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicErrorResponse'
        '400':
          description: Request would leave the campaign with no audiences
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicErrorResponse'
        '404':
          description: Campaign not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicErrorResponse'
        '409':
          description: Campaign is being processed and can't be updated right now
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicErrorResponse'
components:
  schemas:
    LogicalOperatorEnum:
      type: string
      enum:
      - and
      - or
      title: LogicalOperatorEnum
      description: Logical operators to combine filters or filter expressions.
    CampaignAudiencesRequest:
      properties:
        audience_ids:
          items:
            type: string
            format: uuid
          type: array
          minItems: 1
          title: Audience Ids
          description: IDs of the audiences to add to (or remove from) the campaign
          examples:
          - - 550e8400-e29b-41d4-a716-446655440010
      type: object
      required:
      - audience_ids
      title: CampaignAudiencesRequest
    SenderAutopilotRate:
      properties:
        sender_id:
          type: string
          format: uuid
          title: Sender Id
          description: ID of the sending user
          examples:
          - 550e8400-e29b-41d4-a716-446655440001
        daily_rate_target:
          type: integer
          exclusiveMinimum: 0.0
          title: Daily Rate Target
          description: Daily cap on auto-released sends for this sender; must be positive
          examples:
          - 25
      type: object
      required:
      - sender_id
      - daily_rate_target
      title: SenderAutopilotRate
    CreateCampaignRequest:
      properties:
        name:
          type: string
          minLength: 1
          title: Name
          description: Name of the campaign; must be unique within the organization
          examples:
          - Q3 Enterprise Outbound
        template_id:
          type: string
          format: uuid
          title: Template Id
          description: ID of the template enrolled contacts are placed on
          examples:
          - 550e8400-e29b-41d4-a716-446655440000
        audience_ids:
          items:
            type: string
            format: uuid
          type: array
          minItems: 1
          title: Audience Ids
          description: IDs of the audiences whose contacts are enrolled in this campaign
          examples:
          - - 550e8400-e29b-41d4-a716-446655440010
        distribution:
          oneOf:
          - $ref: '#/components/schemas/PercentageDistribution'
          - $ref: '#/components/schemas/AccountOwnerDistribution'
          title: Distribution
          description: How sends are routed across senders (percentage or account_owner)
          discriminator:
            propertyName: mode
            mapping:
              account_owner: '#/components/schemas/AccountOwnerDistribution'
              percentage: '#/components/schemas/PercentageDistribution'
        end_date:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          title: End Date
          description: Date the campaign stops enrolling; must not be in the past
          examples:
          - '2026-12-31'
        prioritized:
          type: boolean
          title: Prioritized
          description: Whether this campaign takes priority over non-prioritized campaigns
          default: false
          examples:
          - false
        rules_of_engagement:
          anyOf:
          - $ref: '#/components/schemas/PublicRulesOfEngagement-Input'
          - type: 'null'
          description: Per-rule overrides on the org's default rules of engagement
          examples:
          - max_contacts_in_sequence:
              enabled: true
              max_contacts: 3
        autopilot_settings:
          anyOf:
          - $ref: '#/components/schemas/PublicAutopilotSettings'
          - type: 'null'
          description: Initial autopilot roster. Senders listed here auto-send up to their daily cap; senders in `distribution` but omitted here require manual approval per send. Omit to leave every sender supervised.
      type: object
      required:
      - name
      - template_id
      - audience_ids
      - distribution
      title: CreateCampaignRequest
    PublicListResponse_CampaignResponse_:
      properties:
        data:
          items:
            $ref: '#/components/schemas/CampaignResponse'
          type: array
          title: Data
        pagination:
          $ref: '#/components/schemas/PaginationInfo'
        meta:
          $ref: '#/components/schemas/ResponseMeta'
      type: object
      required:
      - data
      - pagination
      title: PublicListResponse[CampaignResponse]
    PublicEnrollmentStatus:
      type: string
      enum:
      - pending
      - running
      - completed
      - failed
      title: PublicEnrollmentStatus
      description: Progress of the async audience-enrollment task behind create/update.
    AccountStatusEnum:
      type: string
      enum:
      - NEW
      - PROSPECTING
      - OPPORTUNITY
      - CUSTOMER
      - DISQUALIFIED
      - NURTURE
      - INBOUND
      - CHURNED
      title: AccountStatusEnum
      description: 'Represents the status of an account in the sales process.

        These are suggested values, but the field accepts any string for flexibility.'
    ErrorDetail:
      properties:
        code:
          type: string
          title: Code
          description: Machine-readable error code
          examples:
          - not_found
        message:
          type: string
          title: Message
          description: Human-readable error message
          examples:
          - Resource not found
      type: object
      required:
      - code
      - message
      title: ErrorDetail
    PublicItemResponse_EnrollContactsInCampaignResponse_:
      properties:
        data:
          $ref: '#/components/schemas/EnrollContactsInCampaignResponse'
        meta:
          $ref: '#/components/schemas/ResponseMeta'
      type: object
      required:
      - data
      title: PublicItemResponse[EnrollContactsInCampaignResponse]
    PublicToggleRule:
      properties:
        enabled:
          type: boolean
          title: Enabled
          description: Whether this rule is enforced for the campaign
          examples:
          - true
      type: object
      required:
      - enabled
      title: PublicToggleRule
      description: A rule controlled by a single on/off switch.
    PercentageDistribution:
      properties:
        mode:
          type: string
          const: percentage
          title: Mode
          description: Distribution mode discriminator
          examples:
          - percentage
        sender_ids:
          items:
            type: string
            format: uuid
          type: array
          minItems: 1
          title: Sender Ids
          description: IDs of the users sending on this campaign
          examples:
          - - 550e8400-e29b-41d4-a716-446655440001
        percentages:
          items:
            $ref: '#/components/schemas/SenderPercentage'
          type: array
          title: Percentages
          description: Per-sender percentages; must cover every sender_id and sum to 100
      type: object
      required:
      - mode
      - sender_ids
      - percentages
      title: PercentageDistribution
      description: Split sends across named senders by fixed percentages that sum to 100.
    UpdateCampaignRequest:
      properties:
        name:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
          title: Name
          description: New name for the campaign; must be unique within the organization
          examples:
          - Q3 Enterprise Outbound (revised)
        end_date:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          title: End Date
          description: New end date; must not be in the past
          examples:
          - '2026-12-31'
        audience_ids:
          anyOf:
          - items:
              type: string
              format: uuid
            type: array
          - type: 'null'
          title: Audience Ids
          description: Deprecated — use `add_audiences_to_campaign` / `remove_audiences_from_campaign` instead. The complete set of audiences for this campaign; REPLACES the current set, and any audience you omit is detached (tearing down in-flight sequences for its contacts).
          deprecated: true
          examples:
          - - 550e8400-e29b-41d4-a716-446655440010
        distribution:
          anyOf:
          - oneOf:
            - $ref: '#/components/schemas/PercentageDistribution'
            - $ref: '#/components/schemas/AccountOwnerDistribution'
            discriminator:
              propertyName: mode
              mapping:
                account_owner: '#/components/schemas/AccountOwnerDistribution'
                percentage: '#/components/schemas/PercentageDistribution'
          - type: 'null'
          title: Distribution
          description: Replacement send distribution. Only reassigns contacts who haven't been sent to yet (queued/pending review); contacts already receiving sends keep their original sender permanently — this never reassigns in place.
        rules_of_engagement:
          anyOf:
          - $ref: '#/components/schemas/PublicRulesOfEngagement-Input'
          - type: 'null'
          description: Per-rule overrides on the org's default rules of engagement
          examples:
          - max_contacts_in_sequence:
              enabled: true
              max_contacts: 3
        autopilot_settings:
          anyOf:
          - $ref: '#/components/schemas/PublicAutopilotSettings'
          - type: 'null'
          description: Replacement autopilot roster. Senders listed here auto-send up to their daily cap; senders in `distribution` but omitted here require manual approval per send. An empty `sender_rates` list moves every sender to supervised.
        status:
          anyOf:
          - $ref: '#/components/schemas/PublicCampaignUpdateStatusEnum'
          - type: 'null'
          description: Target lifecycle status. `paused` halts new sends, `active` resumes a paused campaign, `completed` stops all of its sequences (terminal), and `archived` permanently stops the campaign and halts all of its active/paused sequences — terminal and cannot be reversed via the public API.
          examples:
          - paused
      type: object
      title: UpdateCampaignRequest
      description: 'Content edits and status transitions for a campaign.


        Any combination of content fields may be supplied. When ``status`` is set it

        is routed to the matching lifecycle transition (pause / resume / complete / archive).'
    EnrollContactsInCampaignResponse:
      properties:
        success_count:
          type: integer
          title: Success Count
          description: Contacts added to the campaign's new audience
          examples:
          - 2
        failure_count:
          type: integer
          title: Failure Count
          description: Contacts that could not be added (e.g. not found in the organization)
          examples:
          - 1
        failure_reasons:
          items:
            $ref: '#/components/schemas/EnrollFailureReason'
          type: array
          title: Failure Reasons
          description: Failure reasons with the number of contacts affected by each
      type: object
      required:
      - success_count
      - failure_count
      title: EnrollContactsInCampaignResponse
      description: 'Aggregate outcome of enrolling contacts into a campaign.


        Counts reflect contacts added to the campaign''s new audience. Sequence

        creation happens asynchronously, so contacts already enrolled in the

        campaign are deduplicated later and still count as successes here.'
    PublicListRequest:
      properties:
        filters:
          oneOf:
          - items:
              $ref: '#/components/schemas/FilterRule'
            type: array
          - $ref: '#/components/schemas/FilterExpression'
          title: Filters
          description: Filters to apply. Accepts either a flat list of filter rules, implicitly ANDed together, or a recursive filter expression with 'operator' and 'filters'. When an expression omits 'operator', it defaults to 'and'. The flat form must be a JSON array — a single rule sent as a bare object is not a valid filter. Filter field names, their valid operators, and allowed values come from GET /v1/schemas/{entity} — each field lists 'allowed_operators' and 'enum_field_settings.allowed_values'; field names differ per entity, so the examples on each list endpoint show fields valid for that entity. Custom fields are keyed 'custom_field_<uuid>'; related-entity custom fields use '<relation>.custom_field_<uuid>' and are filter-only.
          examples:
          - - condition: greater_than
              field: created_at
              value: '2026-01-01'
          - filters:
            - condition: greater_than
              field: created_at
              value: '2026-01-01'
            - filters:
              - condition: less_than
                field: created_at
                value: '2026-07-01'
            operator: and
        page:
          type: integer
          minimum: 1.0
          title: Page
          description: Page number (1-indexed)
          default: 1
          examples:
          - 1
        page_size:
          type: integer
          maximum: 500.0
          minimum: 1.0
          title: Page Size
          description: Number of results per page
          default: 50
          examples:
          - 25
        sort:
          type: string
          title: Sort
          description: Field to sort by. Prefix with '-' for descending order.
          default: -created_at
          examples:
          - -created_at
      additionalProperties: false
      type: object
      title: PublicListRequest
    PublicRulesOfEngagement-Input:
      properties:
        do_not_contact:
          anyOf:
          - $ref: '#/components/schemas/PublicToggleRule'
          - type: 'null'
          description: Skip contacts flagged do-not-contact
        allow_sequence_stop_on_meeting_booked:
          anyOf:
          - $ref: '#/components/schemas/PublicToggleRule'
          - type: 'null'
          description: Stop a contact's sequence once a meeting is booked
        contact_cooldown:
          anyOf:
          - $ref: '#/components/schemas/PublicCooldownRule'
          - type: 'null'
          description: Cooldown before re-contacting the same contact
        account_cooldown:
          anyOf:
          - $ref: '#/components/schemas/PublicCooldownRule'
          - type: 'null'
          description: Cooldown before re-contacting any contact at the same account
        max_contacts_in_sequence:
          anyOf:
          - $ref: '#/components/schemas/PublicMaxContactsInSequenceRule'
          - type: 'null'
          description: Cap on simultaneously-active contacts per account
        allow_non_account_owner_campaigns:
          anyOf:
          - $ref: '#/components/schemas/PublicToggleRule'
          - type: 'null'
          description: Allow enrolling contacts whose account owner is not a campaign sender
        allow_stop_and_dismiss_on_account_status:
          anyOf:
          - $ref: '#/components/schemas/PublicStopAndDismissRule'
          - type: 'null'
          description: Stop and dismiss sequences when an account changes to certain statuses
        exclude_sequences_on_account_status:
          anyOf:
          - $ref: '#/components/schemas/PublicStopAndDismissRule'
          - type: 'null'
          description: Exclude not-yet-started sequences when an account is in (or transitions into) certain statuses; already-active sequences are unaffected
      type: object
      title: PublicRulesOfEngagement
      description: 'Per-rule overrides layered on the org''s default rules of engagement.


        Only the rules you include are overridden, rules you omit keep

        their org default.'
    CampaignResponse:
      properties:
        id:
          type: string
          title: Id
          description: Unique identifier for the campaign
          examples:
          - cmp_abc123
        name:
          type: string
          title: Name
          description: Name of the campaign
          examples:
          - Q3 Enterprise Outbound
        status:
          $ref: '#/components/schemas/CampaignStatus'
          description: Current lifecycle status of the campaign
          examples:
          - active
        prioritized:
          type: boolean
          title: Prioritized
          description: Whether this campaign takes priority over non-prioritized campaigns
          examples:
          - false
        end_date:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          title: End Date
          description: Date the campaign stops enrolling
          examples:
          - '2026-12-31'
        template_id:
          type: string
          title: Template Id
          description: ID of the template enrolled contacts are placed on
          examples:
          - seqt_789ghi
        template_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Template Name
          description: Title of the template
          examples:
          - Enterprise Onboarding
        audiences:
          items:
            $ref: '#/components/schemas/CampaignAudienceRef'
          type: array
          title: Audiences
          description: Audiences enrolled in this campaign
        enrollment_status:
          $ref: '#/components/schemas/PublicEnrollmentStatus'
          description: Progress of the async task enrolling this campaign's audiences
          examples:
          - completed
        created_at:
          type: string
          format: date-time
          title: Created At
          description: Date and time the campaign was created
          examples:
          - '2026-01-15T10:30:00Z'
        updated_at:
    

# --- truncated at 32 KB (48 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/monaco/refs/heads/main/openapi/monaco-campaigns-api-openapi.yml