openapi: 3.1.0 info: title: Keap REST Campaigns Contacts API description: 'Curated OpenAPI 3.1 description of the Keap (formerly Infusionsoft) REST v2 API. Covers a representative subset of contacts, companies, opportunities, orders, products, tasks, campaigns, and tags. Derived from the official Keap v2 OpenAPI document published at https://developer.infusionsoft.com/docs/restv2/ which is served by the api.infusionsoft.com host. ' version: 2.70.0 contact: name: Keap url: https://developer.keap.com/get-support/ email: api@keap.com license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0 servers: - url: https://api.infusionsoft.com/crm/rest description: Keap production REST API security: - oauth2: [] tags: - name: Contacts description: Manage Keap contacts. paths: /v2/contacts: get: tags: - Contacts summary: List contacts operationId: listContacts parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageToken' responses: '200': description: A page of contacts. content: application/json: schema: $ref: '#/components/schemas/ContactList' post: tags: - Contacts summary: Create a contact operationId: createContact requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Contact' responses: '201': description: Contact created. content: application/json: schema: $ref: '#/components/schemas/Contact' /v2/contacts/{id}: parameters: - $ref: '#/components/parameters/IdPath' get: tags: - Contacts summary: Get a contact by ID operationId: getContact responses: '200': description: Contact. content: application/json: schema: $ref: '#/components/schemas/Contact' patch: tags: - Contacts summary: Patch a contact operationId: patchContact requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Contact' responses: '200': description: Updated contact. content: application/json: schema: $ref: '#/components/schemas/Contact' delete: tags: - Contacts summary: Delete a contact operationId: deleteContact responses: '204': description: Contact deleted. components: parameters: IdPath: name: id in: path required: true schema: type: string PageToken: name: page_token in: query required: false schema: type: string PageSize: name: limit in: query required: false schema: type: integer minimum: 1 maximum: 1000 default: 100 schemas: ContactList: type: object properties: contacts: type: array items: $ref: '#/components/schemas/Contact' next_page_token: type: string count: type: integer Contact: type: object properties: id: type: string given_name: type: string family_name: type: string email_addresses: type: array items: type: object properties: email: type: string format: email field: type: string phone_numbers: type: array items: type: object properties: number: type: string field: type: string company: type: object properties: id: type: string company_name: type: string securitySchemes: oauth2: type: oauth2 description: Keap uses OAuth 2.0 for authentication. See https://developer.infusionsoft.com/getting-started-oauth-keys/ flows: authorizationCode: authorizationUrl: https://accounts.infusionsoft.com/app/oauth/authorize tokenUrl: https://api.infusionsoft.com/token scopes: full: Full access to the Keap CRM REST API.