openapi: 3.1.0 info: title: Canny REST Autopilot Posts API description: 'REST API for retrieving and managing Canny customer-feedback resources: boards, categories, changelog entries, comments, companies, ideas, posts, status changes, tags, users, and votes. All requests are POST and JSON- bodied. Authentication is a secret API key passed in the apiKey body parameter (or the x-api-key header on supported endpoints). This specification is a best-effort, hand-authored representation of the publicly documented v1/v2 endpoints at https://developers.canny.io/. Request and response payloads are intentionally generic where the public docs do not enumerate the full property schema. ' version: 1.0.0 contact: name: Canny url: https://developers.canny.io/ servers: - url: https://canny.io/api/v1 description: Canny v1 base URL - url: https://canny.io/api/v2 description: Canny v2 base URL (cursor-paginated endpoints) security: - apiKeyBody: [] - apiKeyHeader: [] tags: - name: Posts paths: /posts/retrieve: post: tags: - Posts summary: Retrieve a post requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AuthedRequest' responses: '200': $ref: '#/components/responses/GenericObject' /posts/list: post: tags: - Posts summary: List posts requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PagedAuthedRequest' responses: '200': $ref: '#/components/responses/GenericList' /posts/create: post: tags: - Posts summary: Create a post requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AuthedRequest' responses: '200': $ref: '#/components/responses/GenericObject' /posts/change_board: post: tags: - Posts summary: Move a post to another board requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AuthedRequest' responses: '200': $ref: '#/components/responses/GenericObject' /posts/change_category: post: tags: - Posts summary: Change a post's category requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AuthedRequest' responses: '200': $ref: '#/components/responses/GenericObject' /posts/change_status: post: tags: - Posts summary: Change a post's status requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AuthedRequest' responses: '200': $ref: '#/components/responses/GenericObject' /posts/merge: post: tags: - Posts summary: Merge two posts requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AuthedRequest' responses: '200': $ref: '#/components/responses/GenericObject' /posts/add_tag: post: tags: - Posts summary: Add a tag to a post requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AuthedRequest' responses: '200': $ref: '#/components/responses/GenericObject' /posts/remove_tag: post: tags: - Posts summary: Remove a tag from a post requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AuthedRequest' responses: '200': $ref: '#/components/responses/GenericObject' /posts/update: post: tags: - Posts summary: Update a post requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AuthedRequest' responses: '200': $ref: '#/components/responses/GenericObject' /posts/delete: post: tags: - Posts summary: Delete a post requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AuthedRequest' responses: '200': $ref: '#/components/responses/GenericObject' /posts/link_jira: post: tags: - Posts summary: Link a post to a Jira issue requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AuthedRequest' responses: '200': $ref: '#/components/responses/GenericObject' /posts/unlink_jira: post: tags: - Posts summary: Unlink a post from a Jira issue requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AuthedRequest' responses: '200': $ref: '#/components/responses/GenericObject' components: schemas: PagedAuthedRequest: allOf: - $ref: '#/components/schemas/AuthedRequest' - type: object properties: limit: type: integer description: Page size limit. skip: type: integer description: v1 skip-based pagination offset. cursor: type: string description: v2 cursor-based pagination token. GenericList: type: object properties: hasMore: type: boolean cursor: type: string additionalProperties: true GenericObject: type: object additionalProperties: true AuthedRequest: type: object required: - apiKey properties: apiKey: type: string description: Secret API key for the Canny company. additionalProperties: true responses: GenericObject: description: Single resource response. content: application/json: schema: $ref: '#/components/schemas/GenericObject' GenericList: description: Paginated list response. content: application/json: schema: $ref: '#/components/schemas/GenericList' securitySchemes: apiKeyBody: type: apiKey in: query name: apiKey description: 'Secret API key. Canny documents the key as a body parameter named `apiKey`; it is modeled here as an `apiKey` security scheme. ' apiKeyHeader: type: apiKey in: header name: x-api-key