openapi: 3.0.0 info: title: Craft.io Feedback Portal Feedback items Portfolios API description: REST API for managing customer feedback portals, including listing portals and categories, retrieving feedback items, and submitting new feedback via POST requests. version: 1.0.0 contact: name: Craft.io Support url: https://help.craft.io/ email: support@craft.io servers: - url: / tags: - name: Portfolios description: '' paths: /portfolios/{accountId}: get: operationId: GetPortfolios responses: '200': description: A list of portfolios content: application/json: schema: items: $ref: '#/components/schemas/Portfolio' type: array examples: Example 1: value: - id: string name: string workspaces: - id: string name: string key: string '400': description: Invalid account ID content: application/json: schema: $ref: '#/components/schemas/GeneralErrorResponse' '401': description: No access to account content: application/json: schema: $ref: '#/components/schemas/GeneralErrorResponse' '403': description: Access denied content: application/json: schema: $ref: '#/components/schemas/GeneralErrorResponse' '500': description: An error occurred while fetching portfolios content: application/json: schema: $ref: '#/components/schemas/GeneralErrorResponse' description: Get the list of your account’s portfolios and the workspaces they are connected with tags: - Portfolios security: - api_key: - read:portfolios:craft parameters: - in: path name: accountId required: true schema: type: string /portfolio/{portfolioId}/portfolio_fields: get: operationId: GetPortfolioCustomFields responses: '200': description: A list of portfolio fields and their metadata content: application/json: schema: items: $ref: '#/components/schemas/CustomField' type: array '400': description: Invalid portfolio ID content: application/json: schema: $ref: '#/components/schemas/GeneralErrorResponse' '401': description: No access to portfolio content: application/json: schema: $ref: '#/components/schemas/GeneralErrorResponse' '403': description: Access denied content: application/json: schema: $ref: '#/components/schemas/GeneralErrorResponse' '500': description: An error occurred while fetching portfolio fields content: application/json: schema: $ref: '#/components/schemas/GeneralErrorResponse' description: Get the list of portfolio fields and their metadata tags: - Portfolios security: - api_key: - read:portfolios:craft parameters: - in: path name: portfolioId required: true schema: type: string /portfolio/{portfolioId}/terminology: get: operationId: GetPortfolioTerminology responses: '200': description: A list of portfolio entities terminology content: application/json: schema: $ref: '#/components/schemas/TerminologyList_Terminology_' '400': description: Invalid portfolio ID content: application/json: schema: $ref: '#/components/schemas/GeneralErrorResponse' '401': description: No access to portfolio content: application/json: schema: $ref: '#/components/schemas/GeneralErrorResponse' '403': description: Access denied content: application/json: schema: $ref: '#/components/schemas/GeneralErrorResponse' '500': description: An error occurred while fetching terminology content: application/json: schema: $ref: '#/components/schemas/GeneralErrorResponse' description: Get the list of the portfolio entities terminology tags: - Portfolios security: - api_key: - read:portfolios:craft parameters: - in: path name: portfolioId required: true schema: type: string components: schemas: Terminology: properties: category: type: string default: type: string customSingle: type: string customPlural: type: string required: - category - default - customSingle type: object additionalProperties: false Workspace: properties: id: type: string name: type: string nullable: true key: type: string webUrl: type: string description: Canonical Craft.io app URL for this workspace. Computed in PublishService. type: object additionalProperties: false CustomFieldOption: properties: id: type: string label: type: string startDate: type: string nullable: true endDate: type: string nullable: true required: - id - label type: object additionalProperties: false Portfolio: properties: id: type: string name: type: string nullable: true workspaces: items: $ref: '#/components/schemas/Workspace' type: array webUrl: type: string description: Canonical Craft.io app URL for this portfolio. Computed in PublishService. required: - workspaces type: object additionalProperties: false GeneralErrorResponse: properties: message: type: string required: - message type: object additionalProperties: false OptionShape: type: string enum: - select - date - date_range CustomField: properties: id: type: string name: type: string type: type: string values: items: type: string type: array options: items: $ref: '#/components/schemas/CustomFieldOption' type: array optionShape: $ref: '#/components/schemas/OptionShape' required: - id - name - type type: object additionalProperties: false TerminologyList_Terminology_: properties: {} type: object additionalProperties: $ref: '#/components/schemas/Terminology' securitySchemes: api_key: type: apiKey in: header name: x-api-key