ActiveCampaign · Capability

ActiveCampaign API v3 — Custom Objects

ActiveCampaign API v3 — Custom Objects. 13 operations. Lead operation: ActiveCampaign List Records by Schema. Self-contained Naftiko capability covering one Activecampaign business surface.

Run with Naftiko ActivecampaignCustom Objects

What You Can Do

GET
Listrecordscreatedfromaschema — ActiveCampaign List Records by Schema
/v1/customobjects/records/{schemaid}
POST
Createorupdaterecord — ActiveCampaign Create or Update Record
/v1/customobjects/records/{schemaid}
DELETE
Deletearecordbyexternalid — ActiveCampaign Delete a Record by External ID
/v1/customobjects/records/{schemaid}/external/{externalid}
GET
Getasinglerecord — ActiveCampaign Get a Record by Id
/v1/customobjects/records/{schemaid}/{recordid}
DELETE
Deletearecord — ActiveCampaign Delete a Record by Id
/v1/customobjects/records/{schemaid}/{recordid}
GET
Listallschemas — ActiveCampaign List All Schemas
/v1/customobjects/schemas
POST
Createaschema — ActiveCampaign Create a Schema
/v1/customobjects/schemas
POST
Createapublicschema — ActiveCampaign Create a Public Schema
/v1/customobjects/schemas/public
GET
Retrieveaschema — ActiveCampaign Retrieve a Schema
/v1/customobjects/schemas/{id}
DELETE
Deleteaschema — ActiveCampaign Delete a Schema
/v1/customobjects/schemas/{id}
POST
Createachildschema — ActiveCampaign Create a Child Schema
/v1/customobjects/schemas/{id}/child
PUT
Updateaschema — ActiveCampaign Update a Schema
/v1/customobjects/schemas/{schemaid}
DELETE
Deleteafield1 — ActiveCampaign Delete a Field
/v1/customobjects/schemas/{schemaid}/fields/{fieldid}

MCP Tools

activecampaign-list-records-schema

ActiveCampaign List Records by Schema

read-only idempotent
activecampaign-create-update-record

ActiveCampaign Create or Update Record

activecampaign-delete-record-external-id

ActiveCampaign Delete a Record by External ID

idempotent
activecampaign-get-record-id

ActiveCampaign Get a Record by Id

read-only idempotent
activecampaign-delete-record-id

ActiveCampaign Delete a Record by Id

idempotent
activecampaign-list-all-schemas

ActiveCampaign List All Schemas

read-only idempotent
activecampaign-create-schema

ActiveCampaign Create a Schema

activecampaign-create-public-schema

ActiveCampaign Create a Public Schema

activecampaign-retrieve-schema

ActiveCampaign Retrieve a Schema

read-only idempotent
activecampaign-delete-schema

ActiveCampaign Delete a Schema

idempotent
activecampaign-create-child-schema

ActiveCampaign Create a Child Schema

activecampaign-update-schema

ActiveCampaign Update a Schema

idempotent
activecampaign-delete-field

ActiveCampaign Delete a Field

idempotent

Capability Spec

v3-custom-objects.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: ActiveCampaign API v3 — Custom Objects
  description: 'ActiveCampaign API v3 — Custom Objects. 13 operations. Lead operation: ActiveCampaign List Records by Schema.
    Self-contained Naftiko capability covering one Activecampaign business surface.'
  tags:
  - Activecampaign
  - Custom Objects
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    ACTIVECAMPAIGN_API_KEY: ACTIVECAMPAIGN_API_KEY
capability:
  consumes:
  - type: http
    namespace: v3-custom-objects
    baseUri: https://{yourAccountName}.api-us1.com/api/3
    description: ActiveCampaign API v3 — Custom Objects business capability. Self-contained, no shared references.
    resources:
    - name: customObjects-records-schemaId
      path: /customObjects/records/{schemaId}
      operations:
      - name: listrecordscreatedfromaschema
        method: GET
        description: ActiveCampaign List Records by Schema
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: schemaId
          in: path
          type: string
          description: ID of schema
          required: true
        - name: limit
          in: query
          type: integer
          description: The number of records to return for each call. Maximum value is 100.
        - name: offset
          in: query
          type: integer
          description: Offset index of records to return
        - name: filters
          in: query
          type: array
          description: Use ?filters[relationships.{your-contact-relationship}][eq]={contactId} to filter records to a specific
            contact.
      - name: createorupdaterecord
        method: POST
        description: ActiveCampaign Create or Update Record
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: schemaId
          in: path
          type: string
          description: ID of schema
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: customObjects-records-schemaId-external-externalId
      path: /customObjects/records/{schemaId}/external/{externalId}
      operations:
      - name: deletearecordbyexternalid
        method: DELETE
        description: ActiveCampaign Delete a Record by External ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: schemaId
          in: path
          type: string
          description: ID of schema
          required: true
        - name: externalId
          in: path
          type: string
          description: External ID of record
          required: true
    - name: customObjects-records-schemaId-recordId
      path: /customObjects/records/{schemaId}/{recordId}
      operations:
      - name: getasinglerecord
        method: GET
        description: ActiveCampaign Get a Record by Id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: schemaId
          in: path
          type: string
          description: ID of schema
          required: true
        - name: recordId
          in: path
          type: string
          description: ID of record
          required: true
      - name: deletearecord
        method: DELETE
        description: ActiveCampaign Delete a Record by Id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: schemaId
          in: path
          type: string
          description: ID of schema
          required: true
        - name: recordId
          in: path
          type: string
          description: ID of record
          required: true
    - name: customObjects-schemas
      path: /customObjects/schemas
      operations:
      - name: listallschemas
        method: GET
        description: ActiveCampaign List All Schemas
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: limit
          in: query
          type: integer
          description: The number of schemas to retrieve for each API call. Maximum value is 100.
        - name: offset
          in: query
          type: integer
          description: Offset index of items to return
        - name: orders
          in: query
          type: array
          description: Array of sorting criteria to fetch items
        - name: filters
          in: query
          type: string
          description: Filters schemas by different criteria
        - name: showFields
          in: query
          type: string
          description: Toggle which fields are shown in the response body of a schema (if there hidden due to e.g. recently
            being deleted). Omit this parameter entirely to hide fields
      - name: createaschema
        method: POST
        description: ActiveCampaign Create a Schema
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: customObjects-schemas-public
      path: /customObjects/schemas/public
      operations:
      - name: createapublicschema
        method: POST
        description: ActiveCampaign Create a Public Schema
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: customObjects-schemas-id
      path: /customObjects/schemas/{id}
      operations:
      - name: retrieveaschema
        method: GET
        description: ActiveCampaign Retrieve a Schema
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Id of the Schema
          required: true
        - name: showFields
          in: query
          type: string
          description: Toggle which fields are shown in the response body of a schema (if there hidden due to e.g. recently
            being deleted). Omit this parameter entirely to hide fields
      - name: deleteaschema
        method: DELETE
        description: ActiveCampaign Delete a Schema
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Id of schema to delete
          required: true
    - name: customObjects-schemas-id-child
      path: /customObjects/schemas/{id}/child
      operations:
      - name: createachildschema
        method: POST
        description: ActiveCampaign Create a Child Schema
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Id of the parent schema the new child schema will extend
          required: true
    - name: customObjects-schemas-schemaId
      path: /customObjects/schemas/{schemaId}
      operations:
      - name: updateaschema
        method: PUT
        description: ActiveCampaign Update a Schema
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: schemaId
          in: path
          type: string
          description: Id of Schema being updated
          required: true
        - name: validateOnly
          in: header
          type: boolean
          description: When set to `true` the API will validate the schema update without saving changes
        - name: showFields
          in: query
          type: string
          description: Toggle which fields are shown in the response body of a schema (if there hidden due to e.g. recently
            being deleted). Omit this parameter entirely to hide fields
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: customObjects-schemas-schemaId-fields-fieldId
      path: /customObjects/schemas/{schemaId}/fields/{fieldId}
      operations:
      - name: deleteafield1
        method: DELETE
        description: ActiveCampaign Delete a Field
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: schemaId
          in: path
          type: string
          description: Schema ID of the field to be deleted
          required: true
        - name: fieldId
          in: path
          type: string
          description: Field ID of the field to be deleted
          required: true
        - name: showFields
          in: query
          type: string
          description: Toggle which fields are shown in the response body of a schema (if there hidden due to e.g. recently
            being deleted). Omit this parameter entirely to hide fields
    authentication:
      type: apikey
      key: Api-Token
      value: '{{env.ACTIVECAMPAIGN_API_KEY}}'
      placement: header
  exposes:
  - type: rest
    namespace: v3-custom-objects-rest
    port: 8080
    description: REST adapter for ActiveCampaign API v3 — Custom Objects. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/customobjects/records/{schemaid}
      name: customobjects-records-schemaid
      description: REST surface for customObjects-records-schemaId.
      operations:
      - method: GET
        name: listrecordscreatedfromaschema
        description: ActiveCampaign List Records by Schema
        call: v3-custom-objects.listrecordscreatedfromaschema
        with:
          schemaId: rest.schemaId
          limit: rest.limit
          offset: rest.offset
          filters: rest.filters
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createorupdaterecord
        description: ActiveCampaign Create or Update Record
        call: v3-custom-objects.createorupdaterecord
        with:
          schemaId: rest.schemaId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/customobjects/records/{schemaid}/external/{externalid}
      name: customobjects-records-schemaid-external-externalid
      description: REST surface for customObjects-records-schemaId-external-externalId.
      operations:
      - method: DELETE
        name: deletearecordbyexternalid
        description: ActiveCampaign Delete a Record by External ID
        call: v3-custom-objects.deletearecordbyexternalid
        with:
          schemaId: rest.schemaId
          externalId: rest.externalId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/customobjects/records/{schemaid}/{recordid}
      name: customobjects-records-schemaid-recordid
      description: REST surface for customObjects-records-schemaId-recordId.
      operations:
      - method: GET
        name: getasinglerecord
        description: ActiveCampaign Get a Record by Id
        call: v3-custom-objects.getasinglerecord
        with:
          schemaId: rest.schemaId
          recordId: rest.recordId
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletearecord
        description: ActiveCampaign Delete a Record by Id
        call: v3-custom-objects.deletearecord
        with:
          schemaId: rest.schemaId
          recordId: rest.recordId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/customobjects/schemas
      name: customobjects-schemas
      description: REST surface for customObjects-schemas.
      operations:
      - method: GET
        name: listallschemas
        description: ActiveCampaign List All Schemas
        call: v3-custom-objects.listallschemas
        with:
          limit: rest.limit
          offset: rest.offset
          orders: rest.orders
          filters: rest.filters
          showFields: rest.showFields
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createaschema
        description: ActiveCampaign Create a Schema
        call: v3-custom-objects.createaschema
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/customobjects/schemas/public
      name: customobjects-schemas-public
      description: REST surface for customObjects-schemas-public.
      operations:
      - method: POST
        name: createapublicschema
        description: ActiveCampaign Create a Public Schema
        call: v3-custom-objects.createapublicschema
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/customobjects/schemas/{id}
      name: customobjects-schemas-id
      description: REST surface for customObjects-schemas-id.
      operations:
      - method: GET
        name: retrieveaschema
        description: ActiveCampaign Retrieve a Schema
        call: v3-custom-objects.retrieveaschema
        with:
          id: rest.id
          showFields: rest.showFields
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deleteaschema
        description: ActiveCampaign Delete a Schema
        call: v3-custom-objects.deleteaschema
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/customobjects/schemas/{id}/child
      name: customobjects-schemas-id-child
      description: REST surface for customObjects-schemas-id-child.
      operations:
      - method: POST
        name: createachildschema
        description: ActiveCampaign Create a Child Schema
        call: v3-custom-objects.createachildschema
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/customobjects/schemas/{schemaid}
      name: customobjects-schemas-schemaid
      description: REST surface for customObjects-schemas-schemaId.
      operations:
      - method: PUT
        name: updateaschema
        description: ActiveCampaign Update a Schema
        call: v3-custom-objects.updateaschema
        with:
          schemaId: rest.schemaId
          validateOnly: rest.validateOnly
          showFields: rest.showFields
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/customobjects/schemas/{schemaid}/fields/{fieldid}
      name: customobjects-schemas-schemaid-fields-fieldid
      description: REST surface for customObjects-schemas-schemaId-fields-fieldId.
      operations:
      - method: DELETE
        name: deleteafield1
        description: ActiveCampaign Delete a Field
        call: v3-custom-objects.deleteafield1
        with:
          schemaId: rest.schemaId
          fieldId: rest.fieldId
          showFields: rest.showFields
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: v3-custom-objects-mcp
    port: 9090
    transport: http
    description: MCP adapter for ActiveCampaign API v3 — Custom Objects. One tool per consumed operation, routed inline through
      this capability's consumes block.
    tools:
    - name: activecampaign-list-records-schema
      description: ActiveCampaign List Records by Schema
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: v3-custom-objects.listrecordscreatedfromaschema
      with:
        schemaId: tools.schemaId
        limit: tools.limit
        offset: tools.offset
        filters: tools.filters
      outputParameters:
      - type: object
        mapping: $.
    - name: activecampaign-create-update-record
      description: ActiveCampaign Create or Update Record
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: v3-custom-objects.createorupdaterecord
      with:
        schemaId: tools.schemaId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: activecampaign-delete-record-external-id
      description: ActiveCampaign Delete a Record by External ID
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: v3-custom-objects.deletearecordbyexternalid
      with:
        schemaId: tools.schemaId
        externalId: tools.externalId
      outputParameters:
      - type: object
        mapping: $.
    - name: activecampaign-get-record-id
      description: ActiveCampaign Get a Record by Id
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: v3-custom-objects.getasinglerecord
      with:
        schemaId: tools.schemaId
        recordId: tools.recordId
      outputParameters:
      - type: object
        mapping: $.
    - name: activecampaign-delete-record-id
      description: ActiveCampaign Delete a Record by Id
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: v3-custom-objects.deletearecord
      with:
        schemaId: tools.schemaId
        recordId: tools.recordId
      outputParameters:
      - type: object
        mapping: $.
    - name: activecampaign-list-all-schemas
      description: ActiveCampaign List All Schemas
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: v3-custom-objects.listallschemas
      with:
        limit: tools.limit
        offset: tools.offset
        orders: tools.orders
        filters: tools.filters
        showFields: tools.showFields
      outputParameters:
      - type: object
        mapping: $.
    - name: activecampaign-create-schema
      description: ActiveCampaign Create a Schema
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: v3-custom-objects.createaschema
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: activecampaign-create-public-schema
      description: ActiveCampaign Create a Public Schema
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: v3-custom-objects.createapublicschema
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: activecampaign-retrieve-schema
      description: ActiveCampaign Retrieve a Schema
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: v3-custom-objects.retrieveaschema
      with:
        id: tools.id
        showFields: tools.showFields
      outputParameters:
      - type: object
        mapping: $.
    - name: activecampaign-delete-schema
      description: ActiveCampaign Delete a Schema
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: v3-custom-objects.deleteaschema
      with:
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.
    - name: activecampaign-create-child-schema
      description: ActiveCampaign Create a Child Schema
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: v3-custom-objects.createachildschema
      with:
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.
    - name: activecampaign-update-schema
      description: ActiveCampaign Update a Schema
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: v3-custom-objects.updateaschema
      with:
        schemaId: tools.schemaId
        validateOnly: tools.validateOnly
        showFields: tools.showFields
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: activecampaign-delete-field
      description: ActiveCampaign Delete a Field
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: v3-custom-objects.deleteafield1
      with:
        schemaId: tools.schemaId
        fieldId: tools.fieldId
        showFields: tools.showFields
      outputParameters:
      - type: object
        mapping: $.