Marketo Persons API

Upsert (insert or update) person/lead records

Operations 1

POST /subscriptions/{munchkinId}/persons Sync Persons #

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/marketo-persons-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

marketo-persons-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Marketo Data Ingestion Persons API
  description: High volume, low latency, highly available service designed to handle ingestion of large amounts of person and person-related data efficiently and with minimal delays. Data is ingested by submitting requests that execute asynchronously. Request status can be retrieved by subscribing to events from the Marketo Observability Data Stream.
  version: v1
servers:
- url: https://mkto-ingestion-api.adobe.io
  description: Marketo Data Ingestion API
tags:
- name: Persons
  description: Upsert (insert or update) person/lead records
paths:
  /subscriptions/{munchkinId}/persons:
    post:
      tags:
      - Persons
      summary: Sync Persons
      description: 'Upsert (insert or update) a list of person/lead records. Required permission: `Read-Write Lead`.'
      operationId: syncPersons
      parameters:
      - name: munchkinId
        in: path
        description: Marketo subscription Munchkin ID
        required: true
        schema:
          type: string
          example: 556-RJS-213
      - name: X-Mkto-User-Token
        in: header
        description: Marketo API access token
        required: true
        schema:
          type: string
      - name: X-Correlation-Id
        in: header
        description: Arbitrary string (max 255 characters). Used to trace requests through the system via Marketo Observability Data Stream.
        schema:
          type: string
      - name: X-Request-Source
        in: header
        description: Arbitrary string (max 50 characters). Used to trace the source of requests.
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SyncPersonsRequest'
            example:
              priority: high
              partitionName: EMEA
              dedupeFields:
                field1: email
                field2: firstName
              persons:
              - email: brooklyn.parker@karnv.com
                firstName: Brooklyn
                lastName: Parker
                company: Karnv
              - email: johnny.neal@yvu30.com
                firstName: Johnny
                lastName: Neal
                company: Acme Inc
      responses:
        '202':
          description: Accepted – request accepted for async processing
          headers:
            X-Request-Id:
              description: Unique request ID
              schema:
                type: string
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized – OAuth token is invalid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    Person:
      type: object
      description: Person/lead record. May contain any standard or custom lead field as key-value pairs.
      additionalProperties: true
      example:
        email: brooklyn.parker@karnv.com
        firstName: Brooklyn
        lastName: Parker
        company: Karnv
    DedupeFields:
      type: object
      description: 'Attributes to deduplicate on. One or two attribute names are allowed. Two attributes are used in an AND operation. Supported attributes: id, email, sfdcAccountId, sfdcContactId, sfdcLeadId, sfdcLeadOwnerId, custom attributes (string and integer type only).'
      properties:
        field1:
          type: string
          example: email
        field2:
          type: string
          example: firstName
    SyncPersonsRequest:
      required:
      - persons
      type: object
      properties:
        priority:
          type: string
          description: Priority of the request.
          enum:
          - normal
          - high
          default: normal
        partitionName:
          type: string
          description: Name of person partition.
          default: Default
        dedupeFields:
          $ref: '#/components/schemas/DedupeFields'
        persons:
          type: array
          description: List of attribute name-value pairs for the person.
          items:
            $ref: '#/components/schemas/Person'
    ErrorResponse:
      type: object
      description: Error response body returned for non-202 responses.
      properties:
        error_code:
          type: string
          description: Error code.
          example: '4000801'
        message:
          type: string
          description: Error message.
          example: Bad request