openapi: 3.2.0 info: title: V1 Personas API version: v1 servers: - url: https://api.airops.com variables: defaultHost: default: api.airops.com tags: - name: Personas x-parent: Brand Kits paths: /public_api/brand_kits/{brand_kit_id}/personas/list: post: summary: List Personas description: Personas are the characters that can be used to ask questions about a brand. They are used to get AI answers with citations and mentions. tags: - Personas operationId: listBrandKitsPersonas security: - bearer: [] responses: '200': description: Successful response content: application/json: schema: type: object properties: data: type: array items: type: object properties: id: type: - integer - 'null' description: Unique identifier for the persona title: type: - string - 'null' description: The persona title description: type: - string - 'null' description: The persona description created_at: type: - string - 'null' description: When the persona was created updated_at: type: - string - 'null' description: When the persona was last updated meta: type: object properties: page: type: integer per_page: type: integer total_count: type: integer total_pages: type: integer required: - data - meta '400': description: Bad request - invalid parameters, filters, or sort options '401': description: Unauthorized - invalid or missing authentication token '404': description: Not found - resource does not exist '412': description: Precondition failed - AEO not configured for this brand kit parameters: - name: brand_kit_id in: path required: true schema: type: integer description: The Brand Kit ID requestBody: required: true content: application/json: schema: type: object properties: brand_kit_id: type: integer description: The ID of the Brand Kit filters: type: array description: 'Filter results. Nested fields (e.g. `writing_rules.text`) filter within an included association and require that association in `includes`. **Available fields:** - **title** (EQUALS, CONTAINS): Filter by persona title' items: type: object properties: field: type: string enum: - title description: 'Field to filter on. title: Filter by persona title' operator: type: string enum: - EQUALS - CONTAINS description: 'Filter operator. - **EQ/EQUALS**: Exact match - **NEQ**: Not equal - **GT/GEQ/LT/LEQ**: Numeric/date comparisons - **CONTAINS**: Partial text match - **STARTS_WITH**: Text prefix match - **IN**: Match any value in array - **HAS_ALL**: (tags filter) match only items having every listed value - **NOT_IN**: (tags filter) match only items having none of the listed values' value: description: Filter value (type depends on field and operator) required: - field - operator - value fields: type: array description: 'Select additional fields to return. **Optional fields:** - **id**: Unique identifier for the persona - **title**: The persona title - **description**: The persona description - **created_at**: When the persona was created - **updated_at**: When the persona was last updated' items: type: string enum: - id - title - description - created_at - updated_at sort: type: string enum: - title - -title - created_at - -created_at description: 'Sort field. Prefix with - for descending. **Available sort fields:** - **title/-title**: Sort alphabetically by persona title - **created_at/-created_at**: Sort by creation date' page: type: integer default: 1 description: Page number per_page: type: integer default: 25 maximum: 100 description: Items per page required: - brand_kit_id /public_api/brand_kits/{brand_kit_id}/personas/{id}: get: summary: Get Persona description: Personas are the characters that can be used to ask questions about a brand. They are used to get AI answers with citations and mentions. tags: - Personas operationId: getBrandKitsPersona security: - bearer: [] responses: '200': description: Successful response content: application/json: schema: type: object properties: data: type: object properties: id: type: - integer - 'null' description: Unique identifier for the persona title: type: - string - 'null' description: The persona title description: type: - string - 'null' description: The persona description created_at: type: - string - 'null' description: When the persona was created updated_at: type: - string - 'null' description: When the persona was last updated required: - data '400': description: Bad request - invalid parameters, filters, or sort options '401': description: Unauthorized - invalid or missing authentication token '404': description: Not found - resource does not exist '412': description: Precondition failed - AEO not configured for this brand kit parameters: - name: brand_kit_id in: path required: true schema: type: integer description: The Brand Kit ID - name: id in: path required: true schema: type: integer description: The resource ID components: securitySchemes: bearer: type: http scheme: bearer