openapi: 3.2.0 info: title: Marketo Program Members API version: '1.0' description: 'Operations tagged Program Members across 2 of this provider''s published API definitions: marketo-data-ingestion-openapi-original.json, marketo-lead-database-openapi-original.json. Each path carries the servers of the definition it was published in.' servers: - url: https://mkto-ingestion-api.adobe.io description: Marketo Data Ingestion API - url: https://localhost:8080/ tags: - name: Program Members description: Sync program member status or delete (remove) members from programs paths: /subscriptions/{munchkinId}/programmembers: post: tags: - Program Members summary: Sync Program Member Status description: 'Sync (upsert) program member status. Adds leads to programs or updates their program status. Required permission: `Read-Write Lead`.' operationId: syncProgramMembers 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/SyncProgramMembersRequest' example: programs: - programId: 1001 status: Member members: - leadId: 10001 - leadId: 10002 - programId: 1002 status: Influenced members: - leadId: 10003 responses: '202': description: Accepted – request accepted for async processing headers: X-Request-Id: description: Unique request ID schema: type: string '400': description: Bad request – validation error (e.g. status not specified, lead ids not specified, number of leads exceeded max size, status 'Not in Program' not allowed, invalid programId) content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized – OAuth token is invalid content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' servers: - url: https://mkto-ingestion-api.adobe.io description: Marketo Data Ingestion API /subscriptions/{munchkinId}/programmembers/delete: post: tags: - Program Members summary: Delete Program Members description: 'Remove leads from programs. Sets the lead''s membership status to ''Not in Program''. This endpoint uses POST rather than DELETE because the request requires a JSON body with structured data. Required permission: `Read-Write Lead`.' operationId: deleteProgramMembers 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/DeleteProgramMembersRequest' example: programs: - programId: 1001 members: - leadId: 10001 - leadId: 10002 - programId: 1002 members: - leadId: 10003 responses: '202': description: Accepted – request accepted for async processing headers: X-Request-Id: description: Unique request ID schema: type: string '400': description: Bad request – validation error (e.g. lead ids not specified, number of leads exceeded max size, invalid programId) content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '401': description: Unauthorized – OAuth token is invalid content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' servers: - url: https://mkto-ingestion-api.adobe.io description: Marketo Data Ingestion API /rest/v1/programs/members/schema/fields/{fieldApiName}.json: get: tags: - Program Members summary: Get Program Member Field by Name description: 'Retrieves metadata for single program member field. Required Permissions: Read-Write Schema Standard Field, Read-Write Schema Custom Field' operationId: getProgramMemberFieldByNameUsingGET parameters: - name: fieldApiName in: path description: The API name of program member field required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ResponseOfLeadField' post: tags: - Program Members summary: Update Program Member Field description: 'Update metadata for a program member field in the target instance. See update rules here. Required Permissions: Read-Write Schema Standard Field, Read-Write Schema Custom Field' operationId: updateProgramMemberFieldUsingPOST parameters: - name: fieldApiName in: path description: The API name of program member field required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ResponseOfUpdateLeadField' requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateLeadFieldRequest' description: updateLeadFieldRequest required: true servers: - url: https://localhost:8080/ /rest/v1/programs/members/schema/fields.json: get: tags: - Program Members summary: Get Program Member Fields description: 'Retrieves metadata for all program member fields in the target instance. Required Permissions: Read-Write Schema Standard Field, Read-Write Schema Custom Field' operationId: getProgramMemberFieldsUsingGET parameters: - name: batchSize in: query description: The batch size to return. The max and default value is 300. required: false schema: type: integer format: int32 - name: nextPageToken in: query description: A token will be returned by this endpoint if the result set is greater than the batch size and can be passed in a subsequent call through this parameter. See Paging Tokens for more info. required: false schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ResponseOfLeadField' post: tags: - Program Members summary: Create Program Member Fields description: 'Create program member fields in the target instance. Required Permissions: Read-Write Schema Custom Field' operationId: createProgramMemberFieldUsingPOST responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ResponseOfCreateLeadField' requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateLeadFieldRequest' description: createLeadFieldRequest required: true servers: - url: https://localhost:8080/ /rest/v1/programs/{programId}/members/status.json: post: tags: - Program Members summary: Sync Program Member Status description: 'Changes the program member status of a list of leads in a target program. If member is not part of the program, member is added to the program. Required Permissions: Read-Write Lead' operationId: syncProgramMemberStatusUsingPOST parameters: - name: programId in: path description: The id of target program. required: true schema: type: integer format: int64 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ResponseOfProgramMemberStatus' requestBody: content: application/json: schema: $ref: '#/components/schemas/SyncProgramMemberStatusRequest' description: syncProgramMemberStatusRequest required: true servers: - url: https://localhost:8080/ /rest/v1/programs/{programId}/members.json: get: tags: - Program Members summary: Get Program Members description: 'Returns a list of up to 300 program members on a list of values in a particular field. If you specify a filterType that is a custom field, the custom field’s dataType must be either “string” or “integer”. If you specify a filterType other than “leadId”, a maximum of 100,000 program member records can be processed by the request. Required Permissions: Read-Only Lead, Read-Write Lead' operationId: getProgramMembersUsingGET parameters: - name: programId in: path description: The id of target program. required: true schema: type: integer format: int64 - name: filterType in: query description: The program member field to filter on. Any custom field (string or integer types only), "updatedAt", or any searchable field. Searchable fields can be obtained via the Describe Program Member endpoint. required: true schema: type: string - name: filterValues in: query description: A comma-separated list of values to filter on in the specified fields. required: true style: form explode: true schema: type: array items: type: string - name: startAt in: query description: When using filterType=updatedAt, the start of date range filter (ISO 8601-format) schema: type: string - name: endAt in: query description: When using filterType=updatedAt, the end of date range filter (ISO 8601-format) schema: type: string - name: fields in: query description: A comma-separated list of lead fields to return for each record. required: false style: form explode: true schema: type: array items: type: string - name: batchSize in: query description: The batch size to return. The max and default value is 300. required: false schema: type: integer format: int32 - name: nextPageToken in: query description: A token will be returned by this endpoint if the result set is greater than the batch size and can be passed in a subsequent call through this parameter. See Paging Tokens for more info. required: false schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ResponseOfProgramMember' post: tags: - Program Members summary: Sync Program Member Data description: 'Changes the program member data of a list of leads in a target program. Only existing members of the program may have their data changed with this API. Required Permissions: Read-Write Lead' operationId: syncProgramMemberDataUsingPOST parameters: - name: programId in: path description: The id of target program. required: true schema: type: integer format: int64 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ResponseOfProgramMemberData' requestBody: content: application/json: schema: $ref: '#/components/schemas/SyncProgramMemberDataRequest' description: syncProgramMemberDataRequest required: true servers: - url: https://localhost:8080/ /rest/v1/programs/{programId}/members/delete.json: post: tags: - Program Members summary: Delete Program Members description: 'Delete a list of members from the destination instance. Required Permissions: Read-Write Lead' operationId: deleteProgramMemberUsingPOST parameters: - name: programId in: path description: The id of target program. required: true schema: type: integer format: int64 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ResponseOfProgramMemberDelete' requestBody: content: application/json: schema: $ref: '#/components/schemas/DeleteProgramMemberRequest' description: deleteProgramMemberRequest required: true servers: - url: https://localhost:8080/ /rest/v1/programs/members/describe.json: get: tags: - Program Members summary: Describe Program Member description: 'Returns metadata about program member objects in the target instance, including a list of all fields available for interaction via the APIs. Required Permissions: Read-Only Lead, Read-Write Lead' operationId: describeProgramMemberUsingGET2 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ResponseOfProgramMemberAttributes2' servers: - url: https://localhost:8080/ components: schemas: SyncProgramMembersRequest: required: - programs type: object properties: programs: type: array description: List of program operations. Each specifies a program, a target status, and the leads to sync. items: $ref: '#/components/schemas/ProgramOperation' 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 DeleteProgramOperation: required: - programId - members type: object description: A program delete operation. properties: programId: type: integer format: int64 description: The Marketo program ID. Must be a positive integer. example: 1001 members: type: array description: List of lead references to remove from the program. items: $ref: '#/components/schemas/ProgramMember' ProgramMember: required: - leadId type: object description: Lead reference for program membership. properties: leadId: type: integer format: int64 description: The Marketo lead ID. example: 10001 ProgramOperation: required: - programId - status - members type: object description: A program sync operation. properties: programId: type: integer format: int64 description: The Marketo program ID. Must be a positive integer. example: 1001 status: type: string description: The program member status to set (e.g. 'Member', 'Influenced'). Must not be 'Not in Program'; use the delete endpoint instead. example: Member members: type: array description: List of lead references to add or update in the program. items: $ref: '#/components/schemas/ProgramMember' DeleteProgramMembersRequest: required: - programs type: object properties: programs: type: array description: List of program delete operations. items: $ref: '#/components/schemas/DeleteProgramOperation' ProgramMemberStatus: type: object required: - leadId properties: leadId: type: integer format: int64 description: Unique integer id of a lead record ResponseOfProgramMember: type: object required: - errors - requestId - result - success - warnings properties: errors: type: array description: Array of errors that occurred if the request was unsuccessful items: $ref: '#/components/schemas/Error' moreResult: type: boolean example: false description: Boolean indicating if there are more results in subsequent pages nextPageToken: type: string description: Paging token given if the result set exceeded the allowed batch size requestId: type: string description: Id of the request made result: type: array description: Array of results for individual records in the operation, may be empty items: $ref: '#/components/schemas/ProgramMember_2' success: type: boolean example: false description: Whether the request succeeded warnings: type: array description: Array of warnings given for the operation items: $ref: '#/components/schemas/Warning' ProgramMemberDelete: type: object required: - leadId properties: leadId: type: integer format: int64 description: Unique integer id of a lead record CreateLeadFieldRequest: type: object required: - input properties: input: type: array description: List of lead fields for input items: $ref: '#/components/schemas/CreateLeadField' LeadAttribute2Fields2: type: object required: - name - displayName - dataType - updateable - crmManaged properties: name: type: string description: REST API name of field displayName: type: string description: Display name of field (friendly name) dataType: type: string description: Data type of field length: type: integer description: Length of field updateable: type: boolean description: Is field updateable crmManaged: type: boolean description: Is field managed by CRM Reason: type: object required: - code - message properties: code: type: string description: Integer code of the reason message: type: string description: Message describing the reason for the status of the operation SyncProgramMemberStatusRequest: type: object required: - statusName - input properties: statusName: type: string description: Program member status input: type: array description: List of input records items: $ref: '#/components/schemas/ProgramMemberStatus' Error: type: object required: - code - message properties: code: type: string description: Error code of the error. See full list of error codes here message: type: string description: Message describing the cause of the error ResponseOfCreateLeadField: type: object required: - errors - requestId - result - success - warnings properties: errors: type: array description: Array of errors that occurred if the request was unsuccessful items: $ref: '#/components/schemas/Error' moreResult: type: boolean example: false description: Boolean indicating if there are more results in subsequent pages nextPageToken: type: string description: Paging token given if the result set exceeded the allowed batch size requestId: type: string description: Id of the request made result: type: array description: Array of results for individual records in the operation, may be empty items: $ref: '#/components/schemas/LeadFieldStatus' success: type: boolean example: false description: Whether the request succeeded warnings: type: array description: Array of warnings given for the operation items: $ref: '#/components/schemas/Warning' ResponseOfProgramMemberData: type: object required: - errors - requestId - result - success - warnings properties: errors: type: array description: Array of errors that occurred if the request was unsuccessful items: $ref: '#/components/schemas/Error' moreResult: type: boolean example: false description: Boolean indicating if there are more results in subsequent pages nextPageToken: type: string description: Paging token given if the result set exceeded the allowed batch size requestId: type: string description: Id of the request made result: type: array description: Array of results for individual records in the operation, may be empty items: $ref: '#/components/schemas/ProgramMemberStatusResponse' success: type: boolean example: false description: Whether the request succeeded warnings: type: array description: Array of warnings given for the operation items: $ref: '#/components/schemas/Warning' ProgramMember_2: type: object description: Program member record. Always contains lead id, but may have any number of other fields, depending on the fields available in the target instance. required: - seq - leadId - reachedSuccess - programId - acquiredBy - membershipDate properties: seq: type: integer format: int32 description: Integer indicating the sequence of the record in response. This value is correlated to the order of the records included in the request input. Seq should only be part of responses and should not be submitted. leadId: type: integer format: int32 description: Unique integer id of a lead record reachedSuccess: type: boolean example: false description: Boolean indicating if program member has reached success criteria for program programId: type: integer format: int32 description: Unique integer id of a program acquiredBy: type: boolean example: false description: Boolean indicating if program member was acquired by program membershipDate: type: string description: Date the lead first became a member of the program ResponseOfProgramMemberAttributes2: type: object required: - errors - requestId - result - success - warnings properties: errors: type: array description: Array of errors that occurred if the request was unsuccessful items: $ref: '#/components/schemas/Error' moreResult: type: boolean example: false description: Boolean indicating if there are more results in subsequent pages nextPageToken: type: string description: Paging token given if the result set exceeded the allowed batch size requestId: type: string description: Id of the request made result: type: array description: Array of results for individual records in the operation, may be empty items: $ref: '#/components/schemas/ProgramMemberAttribute2' success: type: boolean example: false description: Whether the request succeeded warnings: type: array description: Array of warnings given for the operation items: $ref: '#/components/schemas/Warning' ProgramMemberData: type: object required: - leadId - '{fieldApiName}' properties: leadId: type: integer format: int64 description: Unique integer id of a lead record '{fieldApiName}': type: string description: API Name of field to update. Must be updateable as described by Describe Program Member endpoint. '{fieldApiName2}': type: string description: API Name of another field to update (and so forth). Must be updateable as described by Describe Program Member endpoint. SyncProgramMemberDataRequest: type: object required: - input properties: input: type: array description: List of input records items: $ref: '#/components/schemas/ProgramMemberData' Warning: type: object required: - code - message properties: code: type: integer format: int32 description: Integer code of the warning message: type: string description: Message describing the warning CreateLeadField: type: object required: - displayName - name - dataType description: Lead field record for create properties: displayName: type: string description: UI display-name of the field. Must be unique, cannot contain special characters name: type: string description: API name of the field. Must be unique, start with a letter, and only contain letters, numbers, or underscore description: type: string description: Description of the field. Default is no description dataType: type: string description: Datatype of the field enum: - boolean - currency - date - datetime - email - float - integer - percent - phone - score - string - url isHidden: type: boolean example: false description: If set to true, the field is hidden. Default is false isHtmlEncodingInEmail: type: boolean example: false description: If set to true, field is encoded as HTML in email. Default is true isSensitive: type: boolean example: false description: If set to true, field is marked as sensitive. Default is false LeadFieldStatus: type: object required: - name - status description: Lead field update status properties: name: type: string description: API name of the field status: type: string description: Status of the operation performed on the record enum: - created - updated LeadAttribute2SearchableFields: type: array description: List of searchable fields items: type: string description: Searchable field ProgramMemberAttribute2: type: object required: - name - description - createdAt - updatedAt - dedupeFields - searchableFields - fields properties: name: type: string description: '"API Program Member"' description: type: string description: '"API Program Member Map"' createdAt: type: string description: Datetime when created updatedAt: type: string description: Datetime updated dedupeFields: type: array description: List of dedupe fields items: type: string searchableFields: type: array description: List of searchable fields items: $ref: '#/components/schemas/LeadAttribute2SearchableFields' fields: type: array description: Description of searchable fields items: $ref: '#/components/schemas/LeadAttribute2Fields2' ResponseOfProgramMemberDelete: type: object required: - errors - requestId - result - success - warnings properties: errors: type: array description: Array of errors that occurred if the request was unsuccessful items: $ref: '#/components/schemas/Error' moreResult: type: boolean example: false description: Boolean indicating if there are more results in subsequent pages nextPageToken: type: string description: Paging token given if the result set exceeded the allowed batch size requestId: type: string description: Id of the request made result: type: array description: Array of results for individual records in the operation, may be empty items: $ref: '#/components/schemas/ProgramMemberDeleteResponse' success: type: boolean example: false description: Whether the request succeeded warnings: type: array description: Array of warnings given for the operation items: $ref: '#/components/schemas/Warning' UpdateLeadFieldRequest: type: object required: - input properties: input: type: array description: Single lead field for input items: $ref: '#/components/schemas/UpdateLeadField' LeadField: type: object description: Lead field record required: - displayName - name - description - dataType - isHidden - isHtmlEncodingInEmail - isSensitive - isCustom - isApiCreated properties: displayName: type: string description: UI display-name of the field name: type: string description: API name of the field description: type: string description: Description of the field dataType: type: string description: Datatype of the field length: type: integer format: int32 description: Max length of the field. Only applicable to text, string, and text area. isHidden: type: boolean example: false description: If set to true, the field is hidden isHtmlEncodingInEmail: type: boolean example: false description: If set to true, field is encoded as HTML in email isSensitive: type: boolean example: false description: If set to true, field is marked as sensitive isCustom: type: boolean example: false description: If set to true, field is custom isApiCreated: type: boolean example: false description: If set to true, field was created using REST API ProgramMemberDeleteResponse: type: object required: - status - leadId - seq properties: status: type: string description: Status of the operation performed on the record enum: - deleted - skipped reasons: type: array description: List of reasons why an operation did not succeed. Reasons are only present in API responses and should not be submitted items: $ref: '#/components/schemas/Reason' leadId: type: integer format: int64 description: Id of the lead associated to the program member seq: type: integer format: int32 description: Integer indicating the sequence of the record in response. This value is correlated to the order of the records included in the request input. Seq should only be part of responses and should not be submitted. DeleteProgramMemberRequest: type: object required: - input properties: input: type: array description: List of input records items: $ref: '#/components/schemas/ProgramMemberDelete' ProgramMemberStatusResponse: type: object required: - status - leadId - seq properties: status: type: string description: Status of the operation performed on the record enum: - updated - skipped reasons: type: array description: List of reasons why an operation did not succeed. Reasons are only present in API responses and should not be submitted items: $ref: '#/components/schemas/Reason' leadId: type: integer format: int64 description: Id of the lead associated to the program member seq: type: integer format: int32 description: Integer indicating the sequence of the record in response. This value is correlated to the order of the records included in the request input. Seq should only be part of responses and should not be submitted. ResponseOfProgramMemberStatus: type: object required: - errors - requestId - result - success - warnings properties: errors: type: array description: Array of errors that occurred if the request was unsuccessful items: $ref: '#/components/schemas/Error' moreResult: type: boolean example: false description: Boolean indicating if there are more results in subsequent pages nextPageToken: type: string description: Paging token given if the result set exceeded the allowed batch size requestId: type: string description: Id of the request made result: type: array description: Array of results for individual records in the operation, may be empty items: $ref: '#/components/schemas/ProgramMemberStatusResponse' success: type: boolean example: false description: Whether the request succeeded warnings: type: array description: Array of warnings given for the operation items: $ref: '#/components/schemas/Warning' ResponseOfUpdateLeadField: type: object required: - errors - requestId - result - success - warnings properties: errors: type: array description: Array of errors that occurred if the request was unsuccessful items: $ref: '#/components/schemas/Error' moreResult: type: boolean example: false description: Boolean indicating if there are more results in subsequent pages nextPageToken: type: string description: Paging token given if the result set exceeded the allowed batch size requestId: type: string description: Id of the request made result: type: array description: Array of results for individual records in the operation, may be empty items: $ref: '#/components/schemas/LeadFieldStatus' success: type: boolean example: false description: Whether the request succeeded warnings: type: array description: Array of warnings given for the operation items: $ref: '#/components/schemas/Warning' ResponseOfLeadField: type: object required: - errors - requestId - result - success - warnings properties: errors: type: array description: Array of errors that occurred if the request was unsuccessful items: $ref: '#/components/schemas/Error' moreResult: type: boolean example: false description: Boolean indicating if there are more results in subsequent pages nextPageToken: type: string description: Paging token given if the result set exceeded the allowed batch size requestId: type: string description: Id of the request made result: type: array description: Array of results for individual records in the operation, may be empty items: $ref: '#/components/schemas/LeadField' success: type: boolean example: false description: Whether the request succeeded warnings: type: array description: Array of warnings given for the operation items: $ref: '#/components/schemas/Warning' UpdateLeadField: type: object description: Lead field record for update properties: displayName: type: string description: UI display-name of the field description: type: string description: Description of the field isHidden: type: boolean example: false description: If set to true, the field is hidden. Default is false isHtmlEncodingInEmail: type: boolean example: false description: If set to true, field is encoded as HTML in email. Default is true isSensitive: type: boolean example: false description: If set to true, field is marked as sensitive. Default is false x-refined-from: - marketo-data-ingestion-openapi-original.json - marketo-lead-database-openapi-original.json