openapi: 3.1.0 info: title: Capsule CRM API v2 description: >- Capsule is an online CRM for small and midsize businesses that manages contacts, sales pipelines, tasks, projects, and email integration. The v2 API is a REST/JSON service exposing parties (people and organisations), opportunities, projects, tasks, cases, users, and custom fields. version: "2.0" contact: name: Capsule CRM Developer url: https://developer.capsulecrm.com/ servers: - url: https://api.capsulecrm.com/api/v2 description: Production security: - bearerAuth: [] tags: - name: Parties - name: Opportunities - name: Projects - name: Tasks - name: Entries paths: /parties: get: tags: [Parties] summary: List parties operationId: listParties parameters: - $ref: '#/components/parameters/Page' - $ref: '#/components/parameters/PerPage' responses: '200': description: OK post: tags: [Parties] summary: Create party operationId: createParty requestBody: required: true content: application/json: schema: type: object responses: '201': description: Created /parties/{id}: parameters: - $ref: '#/components/parameters/IdPath' get: tags: [Parties] summary: Show party operationId: showParty responses: '200': description: OK put: tags: [Parties] summary: Update party operationId: updateParty requestBody: required: true content: application/json: schema: type: object responses: '200': description: OK delete: tags: [Parties] summary: Delete party operationId: deleteParty responses: '204': description: No Content /parties/search: get: tags: [Parties] summary: Search parties operationId: searchParties parameters: - in: query name: q schema: type: string responses: '200': description: OK /parties/employees: get: tags: [Parties] summary: List employees of an organisation operationId: listEmployees responses: '200': description: OK /opportunities: get: tags: [Opportunities] summary: List opportunities operationId: listOpportunities responses: '200': description: OK post: tags: [Opportunities] summary: Create opportunity operationId: createOpportunity requestBody: required: true content: application/json: schema: type: object responses: '201': description: Created /opportunities/{id}: parameters: - $ref: '#/components/parameters/IdPath' get: tags: [Opportunities] summary: Show opportunity operationId: showOpportunity responses: '200': description: OK put: tags: [Opportunities] summary: Update opportunity operationId: updateOpportunity requestBody: required: true content: application/json: schema: type: object responses: '200': description: OK delete: tags: [Opportunities] summary: Delete opportunity operationId: deleteOpportunity responses: '204': description: No Content /opportunities/search: get: tags: [Opportunities] summary: Search opportunities operationId: searchOpportunities parameters: - in: query name: q schema: type: string responses: '200': description: OK /projects: get: tags: [Projects] summary: List projects operationId: listProjects responses: '200': description: OK post: tags: [Projects] summary: Create project operationId: createProject requestBody: required: true content: application/json: schema: type: object responses: '201': description: Created /projects/{id}: parameters: - $ref: '#/components/parameters/IdPath' get: tags: [Projects] summary: Show project operationId: showProject responses: '200': description: OK put: tags: [Projects] summary: Update project operationId: updateProject requestBody: required: true content: application/json: schema: type: object responses: '200': description: OK delete: tags: [Projects] summary: Delete project operationId: deleteProject responses: '204': description: No Content /tasks: get: tags: [Tasks] summary: List tasks operationId: listTasks responses: '200': description: OK post: tags: [Tasks] summary: Create task operationId: createTask requestBody: required: true content: application/json: schema: type: object responses: '201': description: Created /tasks/{id}: parameters: - $ref: '#/components/parameters/IdPath' get: tags: [Tasks] summary: Show task operationId: showTask responses: '200': description: OK put: tags: [Tasks] summary: Update task operationId: updateTask requestBody: required: true content: application/json: schema: type: object responses: '200': description: OK delete: tags: [Tasks] summary: Delete task operationId: deleteTask responses: '204': description: No Content /entries: get: tags: [Entries] summary: List entries operationId: listEntries responses: '200': description: OK post: tags: [Entries] summary: Create entry operationId: createEntry requestBody: required: true content: application/json: schema: type: object responses: '201': description: Created /entries/{id}: parameters: - $ref: '#/components/parameters/IdPath' put: tags: [Entries] summary: Update entry operationId: updateEntry requestBody: required: true content: application/json: schema: type: object responses: '200': description: OK delete: tags: [Entries] summary: Delete entry operationId: deleteEntry responses: '204': description: No Content components: securitySchemes: bearerAuth: type: http scheme: bearer description: Personal access token or OAuth 2 access token parameters: IdPath: in: path name: id required: true schema: type: integer format: int64 Page: in: query name: page schema: type: integer PerPage: in: query name: perPage schema: type: integer