openapi: 3.0.3 info: title: Copper Developer Activities People API version: '1.0' description: Copper is a CRM platform built natively for Google Workspace. The Copper Developer API is a RESTful JSON API providing programmatic access to people, companies, leads, opportunities, projects, tasks, activities, and webhooks. contact: name: Copper Support url: https://www.copper.com/contact-us license: name: Proprietary url: https://www.copper.com/terms-of-service servers: - url: https://api.copper.com/developer_api/v1 description: Copper Developer API production server security: - PWAccessToken: [] PWApplication: [] PWUserEmail: [] tags: - name: People description: People (contacts) management paths: /people/search: post: operationId: searchPeople summary: Search People description: Search and list People records using filter criteria. Returns up to 200 records per page. tags: - People requestBody: required: false content: application/json: schema: $ref: '#/components/schemas/PeopleSearchRequest' responses: '200': description: List of matching People records content: application/json: schema: type: array items: $ref: '#/components/schemas/Person' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/RateLimited' /people: post: operationId: createPerson summary: Create a Person description: Create a new Person (contact) record in Copper. tags: - People requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Person' responses: '200': description: Created Person record content: application/json: schema: $ref: '#/components/schemas/Person' /people/{id}: get: operationId: getPerson summary: Get a Person description: Retrieve a single Person record by ID. tags: - People parameters: - $ref: '#/components/parameters/IdPathParam' responses: '200': description: Person record content: application/json: schema: $ref: '#/components/schemas/Person' put: operationId: updatePerson summary: Update a Person description: Update an existing Person record by ID. tags: - People parameters: - $ref: '#/components/parameters/IdPathParam' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Person' responses: '200': description: Updated Person record content: application/json: schema: $ref: '#/components/schemas/Person' delete: operationId: deletePerson summary: Delete a Person description: Delete a Person record by ID. tags: - People parameters: - $ref: '#/components/parameters/IdPathParam' responses: '200': description: Deletion confirmation components: schemas: Address: type: object properties: street: type: string nullable: true city: type: string nullable: true state: type: string nullable: true postal_code: type: string nullable: true country: type: string nullable: true Person: type: object properties: id: type: integer format: int64 name: type: string prefix: type: string nullable: true first_name: type: string last_name: type: string suffix: type: string nullable: true title: type: string company_id: type: integer nullable: true company_name: type: string nullable: true emails: type: array items: type: object properties: email: type: string format: email category: type: string phone_numbers: type: array items: type: object properties: number: type: string category: type: string socials: type: array items: type: object websites: type: array items: type: object address: $ref: '#/components/schemas/Address' assignee_id: type: integer nullable: true contact_type_id: type: integer details: type: string nullable: true tags: type: array items: type: string custom_fields: type: array items: $ref: '#/components/schemas/CustomFieldValue' date_created: type: integer date_modified: type: integer CustomFieldValue: type: object properties: custom_field_definition_id: type: integer value: oneOf: - type: string - type: number - type: integer - type: boolean - type: array items: type: integer - type: 'null' PeopleSearchRequest: type: object properties: page_number: type: integer default: 1 page_size: type: integer default: 20 maximum: 200 sort_by: type: string name: type: string emails: type: array items: type: string phone_numbers: type: array items: type: string assignee_ids: type: array items: type: integer tags: type: array items: type: string Error: type: object properties: status: type: integer message: type: string responses: Unauthorized: description: Authentication failed or missing content: application/json: schema: $ref: '#/components/schemas/Error' RateLimited: description: Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/Error' parameters: IdPathParam: name: id in: path required: true schema: type: integer format: int64 description: The unique resource identifier securitySchemes: PWAccessToken: type: apiKey in: header name: X-PW-AccessToken description: API access token for the user PWApplication: type: apiKey in: header name: X-PW-Application description: Application identifier, set to 'developer_api' PWUserEmail: type: apiKey in: header name: X-PW-UserEmail description: Email address of the API token owner