openapi: 3.0.3
info:
  title: 'ProductLift API Documentation'
  description: 'You can use our ProductLift''s API to smoothly integrate ProductLift with other services.'
  version: 1.0.0
servers:
  -
    url: '{YOUR_PORTAL_URL}'
paths:
  '/api/v1/posts/{key}/anonymous_votes/{anonymous_id}':
    post:
      summary: 'Vote anonymously'
      description: 'Add an anonymous vote to a post or comment.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    created_at: '2024-11-08T15:15:01.000000Z'
                    voter: null
                properties:
                  data:
                    type: object
                    example:
                      created_at: '2024-11-08T15:15:01.000000Z'
                      voter: null
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'No query results for model ...'
                properties:
                  message:
                    type: string
                    example: 'No query results for model ...'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'Anonymous user has already voted for this item.'
                properties:
                  message:
                    type: string
                    example: 'Anonymous user has already voted for this item.'
      tags:
        - 'Anonymous Votes'
    delete:
      summary: 'Revoke anonymous vote'
      description: 'Revoke an anonymous vote for a post or comment.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example: {  }
                properties: {  }
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'No query results for model ...'
                properties:
                  message:
                    type: string
                    example: 'No query results for model ...'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'Anonymous user has not voted yet.'
                properties:
                  message:
                    type: string
                    example: 'Anonymous user has not voted yet.'
      tags:
        - 'Anonymous Votes'
    parameters:
      -
        in: path
        name: key
        description: 'The ID of the post or comment.'
        example: 0UFQQh
        required: true
        schema:
          type: string
      -
        in: path
        name: anonymous_id
        description: 'The ID of the anonymous.'
        example: voluptatibus
        required: true
        schema:
          type: string
      -
        in: path
        name: anonymousId
        description: 'The MD5 hash representing the anonymous user.'
        example: d41d8cd98f00b204e9800998ecf8427e
        required: true
        schema:
          type: string
  /api/v1/categories:
    get:
      summary: 'List categories'
      description: 'Lists all categories of your portal.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      id: 1
                      name: Bug
                      color: '#ABDEE6'
                    -
                      id: 1
                      name: Bug
                      color: '#ABDEE6'
                properties:
                  data:
                    type: array
                    example:
                      -
                        id: 1
                        name: Bug
                        color: '#ABDEE6'
                      -
                        id: 1
                        name: Bug
                        color: '#ABDEE6'
                    items:
                      type: object
      tags:
        - Categories
    post:
      summary: 'Create category'
      description: 'Creates a new category in your portal.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: 1
                    name: Bug
                    color: '#ABDEE6'
                properties:
                  data:
                    type: object
                    example:
                      id: 1
                      name: Bug
                      color: '#ABDEE6'
        422:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{\n \"message\": \"The given data was invalid.\",\n \"errors\": {\n \"name\": [\n     \"The name has already been taken.\"\n ]\n}"
      tags:
        - Categories
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: ''
                  example: null
  '/api/v1/categories/{id}':
    delete:
      summary: 'Delete category'
      description: 'Deletes a specified category.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'Category deleted successfully'
                properties:
                  message:
                    type: string
                    example: 'Category deleted successfully'
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'Category not found'
                properties:
                  message:
                    type: string
                    example: 'Category not found'
        403:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'You do not have permission to delete this category'
                properties:
                  message:
                    type: string
                    example: 'You do not have permission to delete this category'
      tags:
        - Categories
    patch:
      summary: 'Update category'
      description: 'Updates the details of a category.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: 1
                    name: Bug
                    color: '#ABDEE6'
                properties:
                  data:
                    type: object
                    example:
                      id: 1
                      name: Bug
                      color: '#ABDEE6'
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'Category not found.'
                properties:
                  message:
                    type: string
                    example: 'Category not found.'
        403:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'You do not have permission to update this category.'
                properties:
                  message:
                    type: string
                    example: 'You do not have permission to update this category.'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'The given data was invalid.'
                  errors:
                    name:
                      - 'The name has already been taken.'
                      - 'The name must be at least 2 characters.'
                      - 'The name may not be greater than 60 characters.'
                    color:
                      - 'The color format is invalid. It should be a valid hex color code (e.g., #FF5733).'
                properties:
                  message:
                    type: string
                    example: 'The given data was invalid.'
                  errors:
                    type: object
                    example:
                      name:
                        - 'The name has already been taken.'
                        - 'The name must be at least 2 characters.'
                        - 'The name may not be greater than 60 characters.'
                      color:
                        - 'The color format is invalid. It should be a valid hex color code (e.g., #FF5733).'
      tags:
        - Categories
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: 'Name of the category. Must be at least 2 characters. Must not be greater than 60 characters.'
                  example: lgvdjerlauyafkokbmxcoyvvnjdfjwkvtoswtscdmidjcbgnhapcorn
                color:
                  type: string
                  description: 'Hex color code for the category. The value format is invalid.'
                  example: '#Fd2567$/m'
              required:
                - name
                - color
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the category.'
        example: 14
        required: true
        schema:
          type: integer
  '/api/v1/posts/{postId}/comments':
    get:
      summary: 'List comments'
      description: 'Retrieves all comments for a specific post.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      id: null
                      comment: 'This is amazing. I would like to have this.'
                      author:
                        id: 1eaf088f-7124-41ec-ba41-d95bd3a7130e
                        name: 'Bruce Wayne'
                        email: wwoods1@yahoo.com
                        role: member
                        profile_url: '{YOUR-PORTAL-URL}/user/profile/123456'
                        avatar_small_url: 'https://www.gravatar.com/avatar/774af3f2ec2380e442127976a12148d7?s=60&d=https%3A%2F%2Fui-avatars.com%2Fapi%2F/Bruce+Wayne/60/FFC8A2/69320c'
                        counter_votes: 0
                        counter_comments: 0
                        counter_posts: 0
                        counter_comment_votes: 0
                        created_at: '2024-04-19T08:30:23.000000Z'
                        is_blocked: 0
                        verified: false
                        admin_accepted: 1
                        sso_uid: null
                        sso_avatar_url: null
                        company: null
                        segment_1: null
                        segment_2: null
                        segment_3: null
                        segment_4: null
                        segment_5: null
                        segment_6: null
                        segment_7: null
                        segment_8: null
                        segment_9: null
                        segment_10: null
                        segment_mrr: null
                        segment_arr: null
                        segment_ltv: null
                        email_unsubscribed_at: null
                      pinned_to_top: false
                      tagged_for_changelog: false
                      parent_id: null
                      created_at: null
                      updated_at: null
                      url: '{YOUR-PORTAL-URL}/p/example-slug-123456#comment_123'
                    -
                      id: null
                      comment: 'Yes 😍'
                      author:
                        id: 4deae723-4ff8-400e-880a-6e02ca37a010
                        name: 'Bruce Wayne'
                        email: dhargrave38@gmail.com
                        role: member
                        profile_url: '{YOUR-PORTAL-URL}/user/profile/123456'
                        avatar_small_url: 'https://www.gravatar.com/avatar/6409a91775abb9290daa7b6c9827873f?s=60&d=https%3A%2F%2Fui-avatars.com%2Fapi%2F/Bruce+Wayne/60/FFC8A2/69320c'
                        counter_votes: 0
                        counter_comments: 0
                        counter_posts: 0
                        counter_comment_votes: 0
                        created_at: '2024-04-26T10:29:06.000000Z'
                        is_blocked: 0
                        verified: false
                        admin_accepted: 1
                        sso_uid: null
                        sso_avatar_url: null
                        company: null
                        segment_1: null
                        segment_2: null
                        segment_3: null
                        segment_4: null
                        segment_5: null
                        segment_6: null
                        segment_7: null
                        segment_8: null
                        segment_9: null
                        segment_10: null
                        segment_mrr: null
                        segment_arr: null
                        segment_ltv: null
                        email_unsubscribed_at: null
                      pinned_to_top: false
                      tagged_for_changelog: false
                      parent_id: null
                      created_at: null
                      updated_at: null
                      url: '{YOUR-PORTAL-URL}/p/example-slug-123456#comment_123'
                properties:
                  data:
                    type: array
                    example:
                      -
                        id: null
                        comment: 'This is amazing. I would like to have this.'
                        author:
                          id: 1eaf088f-7124-41ec-ba41-d95bd3a7130e
                          name: 'Bruce Wayne'
                          email: wwoods1@yahoo.com
                          role: member
                          profile_url: '{YOUR-PORTAL-URL}/user/profile/123456'
                          avatar_small_url: 'https://www.gravatar.com/avatar/774af3f2ec2380e442127976a12148d7?s=60&d=https%3A%2F%2Fui-avatars.com%2Fapi%2F/Bruce+Wayne/60/FFC8A2/69320c'
                          counter_votes: 0
                          counter_comments: 0
                          counter_posts: 0
                          counter_comment_votes: 0
                          created_at: '2024-04-19T08:30:23.000000Z'
                          is_blocked: 0
                          verified: false
                          admin_accepted: 1
                          sso_uid: null
                          sso_avatar_url: null
                          company: null
                          segment_1: null
                          segment_2: null
                          segment_3: null
                          segment_4: null
                          segment_5: null
                          segment_6: null
                          segment_7: null
                          segment_8: null
                          segment_9: null
                          segment_10: null
                          segment_mrr: null
                          segment_arr: null
                          segment_ltv: null
                          email_unsubscribed_at: null
                        pinned_to_top: false
                        tagged_for_changelog: false
                        parent_id: null
                        created_at: null
                        updated_at: null
                        url: '{YOUR-PORTAL-URL}/p/example-slug-123456#comment_123'
                      -
                        id: null
                        comment: 'Yes 😍'
                        author:
                          id: 4deae723-4ff8-400e-880a-6e02ca37a010
                          name: 'Bruce Wayne'
                          email: dhargrave38@gmail.com
                          role: member
                          profile_url: '{YOUR-PORTAL-URL}/user/profile/123456'
                          avatar_small_url: 'https://www.gravatar.com/avatar/6409a91775abb9290daa7b6c9827873f?s=60&d=https%3A%2F%2Fui-avatars.com%2Fapi%2F/Bruce+Wayne/60/FFC8A2/69320c'
                          counter_votes: 0
                          counter_comments: 0
                          counter_posts: 0
                          counter_comment_votes: 0
                          created_at: '2024-04-26T10:29:06.000000Z'
                          is_blocked: 0
                          verified: false
                          admin_accepted: 1
                          sso_uid: null
                          sso_avatar_url: null
                          company: null
                          segment_1: null
                          segment_2: null
                          segment_3: null
                          segment_4: null
                          segment_5: null
                          segment_6: null
                          segment_7: null
                          segment_8: null
                          segment_9: null
                          segment_10: null
                          segment_mrr: null
                          segment_arr: null
                          segment_ltv: null
                          email_unsubscribed_at: null
                        pinned_to_top: false
                        tagged_for_changelog: false
                        parent_id: null
                        created_at: null
                        updated_at: null
                        url: '{YOUR-PORTAL-URL}/p/example-slug-123456#comment_123'
                    items:
                      type: object
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'No query results for model [App\Post] ...'
                properties:
                  message:
                    type: string
                    example: 'No query results for model [App\Post] ...'
      tags:
        - Comments
    post:
      summary: 'Create comment'
      description: 'Adds a new comment to a specific post.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: null
                    comment: 'This is a must-have!'
                    author:
                      id: 20364e0b-1280-4666-adee-73d783c94df4
                      name: 'Bruce Wayne'
                      email: paritoshkumar2017@gmail.com
                      role: member
                      profile_url: '{YOUR-PORTAL-URL}/user/profile/123456'
                      avatar_small_url: 'https://www.gravatar.com/avatar/d9a966f07e0192cf0698063fa070b5e1?s=60&d=https%3A%2F%2Fui-avatars.com%2Fapi%2F/Bruce+Wayne/60/FFC8A2/69320c'
                      counter_votes: 0
                      counter_comments: 0
                      counter_posts: 0
                      counter_comment_votes: 0
                      created_at: '2024-04-26T10:19:30.000000Z'
                      is_blocked: 0
                      verified: false
                      admin_accepted: 1
                      sso_uid: null
                      sso_avatar_url: null
                      company: null
                      segment_1: null
                      segment_2: null
                      segment_3: null
                      segment_4: null
                      segment_5: null
                      segment_6: null
                      segment_7: null
                      segment_8: null
                      segment_9: null
                      segment_10: null
                      segment_mrr: null
                      segment_arr: null
                      segment_ltv: null
                      email_unsubscribed_at: null
                    pinned_to_top: false
                    tagged_for_changelog: false
                    parent_id: null
                    created_at: null
                    updated_at: null
                    url: '{YOUR-PORTAL-URL}/p/example-slug-123456#comment_123'
                properties:
                  data:
                    type: object
                    example:
                      id: null
                      comment: 'This is a must-have!'
                      author:
                        id: 20364e0b-1280-4666-adee-73d783c94df4
                        name: 'Bruce Wayne'
                        email: paritoshkumar2017@gmail.com
                        role: member
                        profile_url: '{YOUR-PORTAL-URL}/user/profile/123456'
                        avatar_small_url: 'https://www.gravatar.com/avatar/d9a966f07e0192cf0698063fa070b5e1?s=60&d=https%3A%2F%2Fui-avatars.com%2Fapi%2F/Bruce+Wayne/60/FFC8A2/69320c'
                        counter_votes: 0
                        counter_comments: 0
                        counter_posts: 0
                        counter_comment_votes: 0
                        created_at: '2024-04-26T10:19:30.000000Z'
                        is_blocked: 0
                        verified: false
                        admin_accepted: 1
                        sso_uid: null
                        sso_avatar_url: null
                        company: null
                        segment_1: null
                        segment_2: null
                        segment_3: null
                        segment_4: null
                        segment_5: null
                        segment_6: null
                        segment_7: null
                        segment_8: null
                        segment_9: null
                        segment_10: null
                        segment_mrr: null
                        segment_arr: null
                        segment_ltv: null
                        email_unsubscribed_at: null
                      pinned_to_top: false
                      tagged_for_changelog: false
                      parent_id: null
                      created_at: null
                      updated_at: null
                      url: '{YOUR-PORTAL-URL}/p/example-slug-123456#comment_123'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'The given data was invalid.'
                  errors:
                    comment:
                      - 'The comment field is required.'
                properties:
                  message:
                    type: string
                    example: 'The given data was invalid.'
                  errors:
                    type: object
                    example:
                      comment:
                        - 'The comment field is required.'
      tags:
        - Comments
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                user_id:
                  type: string
                  description: 'Must be a valid UUID.'
                  example: 46d1775d-d0f4-3d50-abbc-3b9c3b4f942d
                comment:
                  type: string
                  description: 'The content of the comment.'
                  example: 'This is a new comment'
                parent_id:
                  type: integer
                  description: 'nullable The ID of the parent comment if this is a reply.'
                  example: 1
                tagged_for_changelog:
                  type: string
                  description: 'Must be one of <code>true</code>, <code>false</code>, <code>0</code>, or <code>1</code>.'
                  example: 'true'
                pinned_to_top:
                  type: string
                  description: 'Must be one of <code>true</code>, <code>false</code>, <code>0</code>, or <code>1</code>.'
                  example: 'false'
                created_at:
                  type: string
                  description: 'nullable The creation timestamp of the comment.'
                  example: '2023-08-11 14:30:00'
                use_for_changelog:
                  type: boolean
                  description: 'nullable Whether to tag this comment for changelog.'
                  example: false
                pin_to_top:
                  type: boolean
                  description: 'nullable Whether to pin this comment to the top.'
                  example: false
              required:
                - user_id
                - comment
    parameters:
      -
        in: path
        name: postId
        description: 'The unique key of the post.'
        example: abc123
        required: true
        schema:
          type: string
  '/api/v1/comments/{id}':
    put:
      summary: 'Update comment'
      description: 'Updates the details of a comment.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: null
                    comment: 'Nice! This sounds good :)'
                    author:
                      id: 9b11c2f7-2168-423d-8735-e80c5a1b814a
                      name: 'Bruce Wayne'
                      email: envy9er@yahoo.com
                      role: member
                      profile_url: '{YOUR-PORTAL-URL}/user/profile/123456'
                      avatar_small_url: 'https://www.gravatar.com/avatar/34c3343c18953bff0207414ddd8e7613?s=60&d=https%3A%2F%2Fui-avatars.com%2Fapi%2F/Bruce+Wayne/60/FFC8A2/69320c'
                      counter_votes: 0
                      counter_comments: 0
                      counter_posts: 0
                      counter_comment_votes: 0
                      created_at: '2024-04-19T08:53:46.000000Z'
                      is_blocked: 0
                      verified: false
                      admin_accepted: 1
                      sso_uid: null
                      sso_avatar_url: null
                      company: null
                      segment_1: null
                      segment_2: null
                      segment_3: null
                      segment_4: null
                      segment_5: null
                      segment_6: null
                      segment_7: null
                      segment_8: null
                      segment_9: null
                      segment_10: null
                      segment_mrr: null
                      segment_arr: null
                      segment_ltv: null
                      email_unsubscribed_at: null
                    pinned_to_top: false
                    tagged_for_changelog: false
                    parent_id: null
                    created_at: null
                    updated_at: null
                    url: '{YOUR-PORTAL-URL}/p/example-slug-123456#comment_123'
                properties:
                  data:
                    type: object
                    example:
                      id: null
                      comment: 'Nice! This sounds good :)'
                      author:
                        id: 9b11c2f7-2168-423d-8735-e80c5a1b814a
                        name: 'Bruce Wayne'
                        email: envy9er@yahoo.com
                        role: member
                        profile_url: '{YOUR-PORTAL-URL}/user/profile/123456'
                        avatar_small_url: 'https://www.gravatar.com/avatar/34c3343c18953bff0207414ddd8e7613?s=60&d=https%3A%2F%2Fui-avatars.com%2Fapi%2F/Bruce+Wayne/60/FFC8A2/69320c'
                        counter_votes: 0
                        counter_comments: 0
                        counter_posts: 0
                        counter_comment_votes: 0
                        created_at: '2024-04-19T08:53:46.000000Z'
                        is_blocked: 0
                        verified: false
                        admin_accepted: 1
                        sso_uid: null
                        sso_avatar_url: null
                        company: null
                        segment_1: null
                        segment_2: null
                        segment_3: null
                        segment_4: null
                        segment_5: null
                        segment_6: null
                        segment_7: null
                        segment_8: null
                        segment_9: null
                        segment_10: null
                        segment_mrr: null
                        segment_arr: null
                        segment_ltv: null
                        email_unsubscribed_at: null
                      pinned_to_top: false
                      tagged_for_changelog: false
                      parent_id: null
                      created_at: null
                      updated_at: null
                      url: '{YOUR-PORTAL-URL}/p/example-slug-123456#comment_123'
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'No query results for model [App\Comment] ...'
                properties:
                  message:
                    type: string
                    example: 'No query results for model [App\Comment] ...'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'The given data was invalid.'
                  errors:
                    comment:
                      - 'The comment field is required.'
                properties:
                  message:
                    type: string
                    example: 'The given data was invalid.'
                  errors:
                    type: object
                    example:
                      comment:
                        - 'The comment field is required.'
      tags:
        - Comments
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                comment:
                  type: string
                  description: 'The content of the comment.'
                  example: 'This is an updated comment'
                parent_id:
                  type: integer
                  description: 'nullable The ID of the parent comment if this is a reply.'
                  example: 1
                tagged_for_changelog:
                  type: string
                  description: 'Must be one of <code>true</code>, <code>false</code>, <code>0</code>, or <code>1</code>.'
                  example: '1'
                pinned_to_top:
                  type: string
                  description: 'Must be one of <code>true</code>, <code>false</code>, <code>0</code>, or <code>1</code>.'
                  example: '1'
                created_at:
                  type: string
                  description: 'nullable The creation timestamp of the comment.'
                  example: '2023-08-11 14:30:00'
                use_for_changelog:
                  type: boolean
                  description: 'nullable Whether to tag this comment for changelog.'
                  example: false
                pin_to_top:
                  type: boolean
                  description: 'nullable Whether to pin this comment to the top.'
                  example: false
              required:
                - comment
    delete:
      summary: 'Delete comment'
      description: 'Deletes a specified comment.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example: {  }
                properties: {  }
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'No query results for model [App\Comment] ...'
                properties:
                  message:
                    type: string
                    example: 'No query results for model [App\Comment] ...'
      tags:
        - Comments
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the comment.'
        example: 7
        required: true
        schema:
          type: integer
  /api/v1/feedback:
    get:
      summary: 'List feedback'
      description: 'Retrieves a collection of all feedback entries, ordered by creation date in descending order.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated.
                properties:
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - Feedback
    post:
      summary: 'Create feedback'
      description: 'Stores a new feedback entry in the database.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'The given data was invalid.'
                  errors:
                    feedback:
                      - 'The feedback field is required.'
                properties:
                  message:
                    type: string
                    example: 'The given data was invalid.'
                  errors:
                    type: object
                    example:
                      feedback:
                        - 'The feedback field is required.'
      tags:
        - Feedback
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  type: string
                  description: ''
                  example: occaecati
                feedback:
                  type: string
                  description: ''
                  example: at
                user_id:
                  type: string
                  description: 'Optional user ID. If not given or not found, the post will be created from the logged in user or anonymous. Must be a valid UUID.'
                  example: 2ccb5962-9177-3355-8ad3-4f00e5e2ef01
              required:
                - type
                - feedback
  '/api/v1/feedback/{id}':
    put:
      summary: 'Update feedback'
      description: 'Updates an existing feedback entry.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'No query results for model [App\Models\Feedback] ...'
                properties:
                  message:
                    type: string
                    example: 'No query results for model [App\Models\Feedback] ...'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'The given data was invalid.'
                  errors:
                    feedback:
                      - 'The feedback field must be given.'
                properties:
                  message:
                    type: string
                    example: 'The given data was invalid.'
                  errors:
                    type: object
                    example:
                      feedback:
                        - 'The feedback field must be given.'
      tags:
        - Feedback
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                feedback:
                  type: string
                  description: ''
                  example: cumque
              required:
                - feedback
    delete:
      summary: 'Delete feedback'
      description: 'Removes a specified feedback entry from the database.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example: {  }
                properties: {  }
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'No query results for model [App\Models\Feedback] ...'
                properties:
                  message:
                    type: string
                    example: 'No query results for model [App\Models\Feedback] ...'
      tags:
        - Feedback
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the feedback.'
        example: sit
        required: true
        schema:
          type: string
  /api/v1/feedback/summarize:
    post:
      summary: 'Summarize feedback'
      description: 'Generates a summary of filtered feedback using AI analysis.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses: {  }
      tags:
        - Feedback
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                sentiment:
                  type: string
                  description: 'Must be one of <code>positive</code>, <code>neutral</code>, or <code>negative</code>.'
                  example: positive
                focus:
                  type: string
                  description: 'Must be one of <code>usability</code>, <code>functionality</code>, or <code>value</code>.'
                  example: functionality
                source:
                  type: string
                  description: ''
                  example: eius
                widget:
                  type: string
                  description: 'Must be a valid UUID.'
                  example: d5d35caf-c030-3ca5-80bf-174daba2aec1
                created_from:
                  type: string
                  description: 'Must be a valid date.'
                  example: '2024-11-24T08:26:07'
                created_to:
                  type: string
                  description: 'Must be a valid date.'
                  example: '2024-11-24T08:26:07'
                keyword:
                  type: string
                  description: ''
                  example: odio
  /api/v1/groups:
    get:
      summary: 'List groups'
      description: 'Lists all groups.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      id: 024fbe81-0c1c-4b7e-81d2-d89659c9d6b1
                      portal_id: 3674
                      name: Sureders
                      description: null
                      created_at: '2024-10-21T17:15:47.000000Z'
                      updated_at: '2024-10-21T17:15:47.000000Z'
                    -
                      id: 024fbe81-0c1c-4b7e-81d2-d89659c9d6b1
                      portal_id: 3674
                      name: Sureders
                      description: null
                      created_at: '2024-10-21T17:15:47.000000Z'
                      updated_at: '2024-10-21T17:15:47.000000Z'
                properties:
                  data:
                    type: array
                    example:
                      -
                        id: 024fbe81-0c1c-4b7e-81d2-d89659c9d6b1
                        portal_id: 3674
                        name: Sureders
                        description: null
                        created_at: '2024-10-21T17:15:47.000000Z'
                        updated_at: '2024-10-21T17:15:47.000000Z'
                      -
                        id: 024fbe81-0c1c-4b7e-81d2-d89659c9d6b1
                        portal_id: 3674
                        name: Sureders
                        description: null
                        created_at: '2024-10-21T17:15:47.000000Z'
                        updated_at: '2024-10-21T17:15:47.000000Z'
                    items:
                      type: object
      tags:
        - Groups
    post:
      summary: 'Create group'
      description: 'Creates a new group.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: 024fbe81-0c1c-4b7e-81d2-d89659c9d6b1
                    portal_id: 3674
                    name: Sureders
                    description: null
                    created_at: '2024-10-21T17:15:47.000000Z'
                    updated_at: '2024-10-21T17:15:47.000000Z'
                properties:
                  data:
                    type: object
                    example:
                      id: 024fbe81-0c1c-4b7e-81d2-d89659c9d6b1
                      portal_id: 3674
                      name: Sureders
                      description: null
                      created_at: '2024-10-21T17:15:47.000000Z'
                      updated_at: '2024-10-21T17:15:47.000000Z'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'The given data was invalid.'
                  errors:
                    name:
                      - 'The name has already been taken.'
                properties:
                  message:
                    type: string
                    example: 'The given data was invalid.'
                  errors:
                    type: object
                    example:
                      name:
                        - 'The name has already been taken.'
      tags:
        - Groups
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: ''
                  example: null
                description:
                  type: string
                  description: ''
                  example: doloremque
  '/api/v1/groups/{id}':
    get:
      summary: 'Show group'
      description: 'Displays details of a specific group.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: 024fbe81-0c1c-4b7e-81d2-d89659c9d6b1
                    portal_id: 3674
                    name: Sureders
                    description: null
                    created_at: '2024-10-21T17:15:47.000000Z'
                    updated_at: '2024-10-21T17:15:47.000000Z'
                properties:
                  data:
                    type: object
                    example:
                      id: 024fbe81-0c1c-4b7e-81d2-d89659c9d6b1
                      portal_id: 3674
                      name: Sureders
                      description: null
                      created_at: '2024-10-21T17:15:47.000000Z'
                      updated_at: '2024-10-21T17:15:47.000000Z'
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'No query results for model [App\Group] ...'
                properties:
                  message:
                    type: string
                    example: 'No query results for model [App\Group] ...'
      tags:
        - Groups
    put:
      summary: 'Update group'
      description: 'Updates the details of a group.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: 024fbe81-0c1c-4b7e-81d2-d89659c9d6b1
                    portal_id: 3674
                    name: Sureders
                    description: null
                    created_at: '2024-10-21T17:15:47.000000Z'
                    updated_at: '2024-10-21T17:15:47.000000Z'
                properties:
                  data:
                    type: object
                    example:
                      id: 024fbe81-0c1c-4b7e-81d2-d89659c9d6b1
                      portal_id: 3674
                      name: Sureders
                      description: null
                      created_at: '2024-10-21T17:15:47.000000Z'
                      updated_at: '2024-10-21T17:15:47.000000Z'
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'No query results for model [App\Group] ...'
                properties:
                  message:
                    type: string
                    example: 'No query results for model [App\Group] ...'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'The given data was invalid.'
                  errors:
                    name:
                      - 'The name has already been taken.'
                properties:
                  message:
                    type: string
                    example: 'The given data was invalid.'
                  errors:
                    type: object
                    example:
                      name:
                        - 'The name has already been taken.'
      tags:
        - Groups
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: ''
                  example: null
                description:
                  type: string
                  description: ''
                  example: velit
    delete:
      summary: 'Delete group'
      description: 'Deletes a specified group.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'Group deleted successfully'
                properties:
                  message:
                    type: string
                    example: 'Group deleted successfully'
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'No query results for model [App\Group] ...'
                properties:
                  message:
                    type: string
                    example: 'No query results for model [App\Group] ...'
      tags:
        - Groups
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the group.'
        example: 20
        required: true
        schema:
          type: integer
  '/api/v1/groups/{group}/users':
    post:
      summary: 'Add user to group'
      description: 'Adds a user to the specified group.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'User added to group successfully'
                properties:
                  message:
                    type: string
                    example: 'User added to group successfully'
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'Group or User not found'
                properties:
                  message:
                    type: string
                    example: 'Group or User not found'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'User is already in the group'
                properties:
                  message:
                    type: string
                    example: 'User is already in the group'
      tags:
        - Groups
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                user_id:
                  type: integer
                  description: 'The ID of the user to add.'
                  example: 10
              required:
                - user_id
    delete:
      summary: 'Remove user from group'
      description: 'Removes a user from the specified group.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'User removed from group successfully'
                properties:
                  message:
                    type: string
                    example: 'User removed from group successfully'
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'Group or User not found'
                properties:
                  message:
                    type: string
                    example: 'Group or User not found'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'User is not in the group'
                properties:
                  message:
                    type: string
                    example: 'User is not in the group'
      tags:
        - Groups
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                user_id:
                  type: integer
                  description: 'The ID of the user to remove.'
                  example: 14
              required:
                - user_id
    get:
      summary: 'Get users in group'
      description: 'Retrieves all users belonging to a specific group.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{\n  \"data\": [\n    {\n      \"id\": 1,\n      \"name\": \"John Doe\",\n      \"email\": \"john@example.com\",\n      // ... other user attributes\n    },\n    // ... more users\n  ]\n}"
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'No query results for model [App\Group] ...'
                properties:
                  message:
                    type: string
                    example: 'No query results for model [App\Group] ...'
      tags:
        - Groups
    parameters:
      -
        in: path
        name: group
        description: ''
        example: tempora
        required: true
        schema:
          type: string
      -
        in: path
        name: id
        description: 'The ID of the group.'
        example: 15
        required: true
        schema:
          type: integer
  /api/v1/moderation/pending:
    get:
      summary: 'Get pending items'
      description: 'Retrieves all posts and comments with a moderation status of ''pending''.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated.
                properties:
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - Moderation
  /api/v1/moderation/rejected:
    get:
      summary: 'Get rejected items'
      description: 'Retrieves all posts and comments with a moderation status of ''rejected''.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated.
                properties:
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - Moderation
  '/api/v1/moderation/reject/{type}/{identifier}':
    post:
      summary: 'Reject item (post or comment)'
      description: 'Updates the specified post or comment''s moderation status to ''rejected''.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses: {  }
      tags:
        - Moderation
    parameters:
      -
        in: path
        name: type
        description: ''
        example: voluptatum
        required: true
        schema:
          type: string
      -
        in: path
        name: identifier
        description: ''
        example: facere
        required: true
        schema:
          type: string
  '/api/v1/moderation/approve/{type}/{identifier}':
    post:
      summary: 'Approve item (post or comment)'
      description: 'Updates the specified post or comment''s moderation status to ''approved''.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses: {  }
      tags:
        - Moderation
    parameters:
      -
        in: path
        name: type
        description: ''
        example: tempore
        required: true
        schema:
          type: string
      -
        in: path
        name: identifier
        description: ''
        example: qui
        required: true
        schema:
          type: string
  '/api/v1/posts/{key}/toggle-publish':
    put:
      summary: ''
      description: ''
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses: {  }
      tags:
        - 'Other endpoints'
    parameters:
      -
        in: path
        name: key
        description: ''
        example: 5
        required: true
        schema:
          type: integer
  /api/v1/portal:
    get:
      summary: 'Get portal'
      description: 'Retrieves the details of your portal.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    guid: 1355c492-c64e-4ef3-b9a6-7719e728fb9b
                    title: 'sunt voluptatem'
                    localization: en
                properties:
                  data:
                    type: object
                    example:
                      guid: 1355c492-c64e-4ef3-b9a6-7719e728fb9b
                      title: 'sunt voluptatem'
                      localization: en
      tags:
        - Portal
  /api/v1/posts/search_duplicates:
    get:
      summary: 'Find duplicates'
      description: 'Searches the database for duplicate posts.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{\n \"count\": 1,\n \"posts\": {\n             {\n                 \"id\": \"d8QEXH\",\n                 \"title\": \"Open links in new window\",\n                 \"description\": \"Option to open links in a new window.\"\n              }\n          }\n}"
      tags:
        - Posts
  /api/v1/posts:
    post:
      summary: 'Create post'
      description: 'Creates a new post in your portal.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: multipart/form-data
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'No query results for model [App\User] ...'
                properties:
                  message:
                    type: string
                    example: 'No query results for model [App\User] ...'
        422:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{\n \"message\": \"The given data was invalid.\",\n \"errors\": {\n   \"user_id\": [\n     \"The user id must be a valid UUID.\"\n   ]\n}"
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: WEukJy
                    uid: WEukJy-uid
                    title: 'Photo upload'
                    description_short: 'It would be great if I can upload a photo.'
                    description: 'It would be great if I can upload a photo. This feature would allow users to share visual content directly within the platform.'
                    description_changelog: 'Added photo upload functionality to enhance user experience.'
                    clean_description_changelog: 'Added photo upload functionality to enhance user experience.'
                    image_main: 'https://example.com/images/photo-upload.jpg'
                    votes_count: 15
                    comments_count: 3
                    views_count: 100
                    url: 'https://your-portal-url.com/p/photo-upload-WEukJy'
                    url_edit: 'https://your-portal-url.com/admin/posts/edit/WEukJy'
                    url_delete: 'https://your-portal-url.com/admin/posts/delete/WEukJy'
                    created_at: '2023-05-15T10:00:00Z'
                    updated_at: '2023-05-16T14:30:00Z'
                    latest_status_change_at: '2023-05-16T14:30:00Z'
                    latest_status_change_at_formatted: '16 May 2023'
                    author:
                      id: 420b8cfb-2c3d-4df2-b6bd-7ac6aae1a14a
                      name: Madalyn
                      email: robyn.oconner@example.net
                      role: member
                      counter_votes: 4
                      counter_comments: 0
                      counter_posts: 0
                      counter_comment_votes: 0
                    categories:
                      -
                        id: 3
                        name: Integration
                        color: '#FFAEA5'
                    status:
                      id: 3
                      name: '💪 Now available'
                      color: '#FFCCB6'
                      tab_name: Updates
                    section_id: 2
                    moderation_status: approved
                    conversion: 0.75
                    prioritization_impact: 8
                    prioritization_confidence: 7
                    prioritization_ease: 6
                    prioritization_reach: 9
                properties:
                  data:
                    type: object
                    example:
                      id: WEukJy
                      uid: WEukJy-uid
                      title: 'Photo upload'
                      description_short: 'It would be great if I can upload a photo.'
                      description: 'It would be great if I can upload a photo. This feature would allow users to share visual content directly within the platform.'
                      description_changelog: 'Added photo upload functionality to enhance user experience.'
                      clean_description_changelog: 'Added photo upload functionality to enhance user experience.'
                      image_main: 'https://example.com/images/photo-upload.jpg'
                      votes_count: 15
                      comments_count: 3
                      views_count: 100
                      url: 'https://your-portal-url.com/p/photo-upload-WEukJy'
                      url_edit: 'https://your-portal-url.com/admin/posts/edit/WEukJy'
                      url_delete: 'https://your-portal-url.com/admin/posts/delete/WEukJy'
                      created_at: '2023-05-15T10:00:00Z'
                      updated_at: '2023-05-16T14:30:00Z'
                      latest_status_change_at: '2023-05-16T14:30:00Z'
                      latest_status_change_at_formatted: '16 May 2023'
                      author:
                        id: 420b8cfb-2c3d-4df2-b6bd-7ac6aae1a14a
                        name: Madalyn
                        email: robyn.oconner@example.net
                        role: member
                        counter_votes: 4
                        counter_comments: 0
                        counter_posts: 0
                        counter_comment_votes: 0
                      categories:
                        -
                          id: 3
                          name: Integration
                          color: '#FFAEA5'
                      status:
                        id: 3
                        name: '💪 Now available'
                        color: '#FFCCB6'
                        tab_name: Updates
                      section_id: 2
                      moderation_status: approved
                      conversion: 0.75
                      prioritization_impact: 8
                      prioritization_confidence: 7
                      prioritization_ease: 6
                      prioritization_reach: 9
      tags:
        - Posts
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                title:
                  type: string
                  description: 'Post title. Must be at least 2 characters. Must not be greater than 180 characters.'
                  example: uycnsdtrveuhekesxpfkgslwaakixmffjfyatjowdzwyscerbqlcbpovzyjdctgoddfievbvyfcytwxympwuuyryzehabzylvqtrpczciuuehzoxttesocgaalrppkgsgemc
                description:
                  type: string
                  description: 'Description of the post.'
                  example: quos
                category_id:
                  type: integer
                  description: 'Optional category ID of the post. If not given or not found, no category will be added.'
                  example: 2
                status_id:
                  type: integer
                  description: 'Optional status ID of the post. If not given or not found, the default status will be selected.'
                  example: 10
                section_id:
                  type: integer
                  description: 'Optional section ID of the post. If not given or not found, it will be null.'
                  example: 18
                user_id:
                  type: string
                  description: 'Optional user ID. If not given or not found, the post will be created from the logged in user or anonymous. Must be a valid UUID.'
                  example: 821cdfc7-0499-3276-bc35-b9988f1dc904
                image:
                  type: string
                  format: binary
                  description: 'Optional image. Must be an image. Must not be greater than 20480 kilobytes.'
                attachment:
                  type: string
                  format: binary
                  description: 'Optional attachment. Must be a file. Must not be greater than 5240 kilobytes.'
                allow_comments:
                  type: string
                  description: 'Optional: Allow comments on this post. Defaults to true if not specified. Must be one of <code>true</code>, <code>false</code>, <code>0</code>, or <code>1</code>.'
                  example: '1'
                jira_key:
                  type: string
                  description: 'Optional: JIRA issue key associated with this post.'
                  example: rerum
                azure_boards_key:
                  type: string
                  description: 'Optional: Azure Boards work item key associated with this post.'
                  example: quia
                estimated_date:
                  type: string
                  description: 'Optional: Estimated completion date for this post. Must be a valid date.'
                  example: '2024-11-24T08:26:07'
                tags:
                  type: array
                  description: 'Each tag must be a string of at least 2 characters. Must be at least 2 characters. Must not be greater than 60 characters.'
                  example:
                    - kjhxmyanqtobkogcykhg
                  items:
                    type: string
                created_at:
                  type: string
                  description: 'Optional: Creation date of the post. Must be a valid date.'
                  example: '2024-11-24T08:26:07'
                prioritization_impact:
                  type: integer
                  description: 'Optional: Impact score for prioritization (null or tinyint between 0 and 100). Must be between 0 and 100.'
                  example: 11
                prioritization_confidence:
                  type: integer
                  description: 'Optional: Confidence score for prioritization (null or tinyint between 0 and 100). Must be between 0 and 100.'
                  example: 72
                prioritization_ease:
                  type: integer
                  description: 'Optional: Ease score for prioritization (null or tinyint between 0 and 100). Must be between 0 and 100.'
                  example: 36
                prioritization_reach:
                  type: integer
                  description: 'Optional: Reach score for prioritization (null or tinyint between 0 and 100). Must be between 0 and 100.'
                  example: 66
                moscow_priority:
                  type: string
                  description: 'Optional: MoSCoW score for prioritization. (Can be null or M,S,C,W). Must be one of <code>M</code>, <code>S</code>, <code>C</code>, or <code>W</code>.'
                  example: W
                prioritization_color:
                  type: string
                  description: 'Optional: Color hex for status of prioritization. Must not be greater than 7 characters.'
                  example: nwk
                manual_bonus_votes:
                  type: integer
                  description: 'Optional: Manual bonus votes for the post.'
                  example: 12
                is_published:
                  type: string
                  description: 'Optional: Publish as draft (false) or directly visible. Must be one of <code>true</code>, <code>false</code>, <code>0</code>, or <code>1</code>.'
                  example: 'true'
              required:
                - title
    get:
      summary: 'List posts'
      description: 'Retrieves a complete list of posts from your portal. Includes a "hasMore" attribute indicating if additional posts exist beyond the specified query limit.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: success
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      id: WEukJy
                      uid: WEukJy-uid
                      title: 'Photo upload'
                      description_short: 'It would be great if I can upload a photo.'
                      description: 'It would be great if I can upload a photo. This feature would allow users to share visual content directly within the platform.'
                      description_changelog: 'Added photo upload functionality to enhance user experience.'
                      clean_description_changelog: 'Added photo upload functionality to enhance user experience.'
                      image_main: 'https://example.com/images/photo-upload.jpg'
                      votes_count: 15
                      comments_count: 3
                      views_count: 100
                      url: 'https://your-portal-url.com/p/photo-upload-WEukJy'
                      url_edit: 'https://your-portal-url.com/admin/posts/edit/WEukJy'
                      url_delete: 'https://your-portal-url.com/admin/posts/delete/WEukJy'
                      created_at: '2023-05-15T10:00:00Z'
                      updated_at: '2023-05-16T14:30:00Z'
                      latest_status_change_at: '2023-05-16T14:30:00Z'
                      latest_status_change_at_formatted: '16 May 2023'
                      author:
                        id: 420b8cfb-2c3d-4df2-b6bd-7ac6aae1a14a
                        name: Madalyn
                        email: robyn.oconner@example.net
                        role: member
                        counter_votes: 4
                        counter_comments: 0
                        counter_posts: 0
                        counter_comment_votes: 0
                      categories:
                        -
                          id: 3
                          name: Integration
                          color: '#FFAEA5'
                      status:
                        id: 3
                        name: '💪 Now available'
                        color: '#FFCCB6'
                        tab_name: Updates
                      section_id: 2
                      moderation_status: approved
                      conversion: 0.75
                      prioritization_impact: 8
                      prioritization_confidence: 7
                      prioritization_ease: 6
                      prioritization_reach: 9
                  hasMore: false
                  total: 1
                  skip: 0
                  limit: 10
                properties:
                  data:
                    type: array
                    example:
                      -
                        id: WEukJy
                        uid: WEukJy-uid
                        title: 'Photo upload'
                        description_short: 'It would be great if I can upload a photo.'
                        description: 'It would be great if I can upload a photo. This feature would allow users to share visual content directly within the platform.'
                        description_changelog: 'Added photo upload functionality to enhance user experience.'
                        clean_description_changelog: 'Added photo upload functionality to enhance user experience.'
                        image_main: 'https://example.com/images/photo-upload.jpg'
                        votes_count: 15
                        comments_count: 3
                        views_count: 100
                        url: 'https://your-portal-url.com/p/photo-upload-WEukJy'
                        url_edit: 'https://your-portal-url.com/admin/posts/edit/WEukJy'
                        url_delete: 'https://your-portal-url.com/admin/posts/delete/WEukJy'
                        created_at: '2023-05-15T10:00:00Z'
                        updated_at: '2023-05-16T14:30:00Z'
                        latest_status_change_at: '2023-05-16T14:30:00Z'
                        latest_status_change_at_formatted: '16 May 2023'
                        author:
                          id: 420b8cfb-2c3d-4df2-b6bd-7ac6aae1a14a
                          name: Madalyn
                          email: robyn.oconner@example.net
                          role: member
                          counter_votes: 4
                          counter_comments: 0
                          counter_posts: 0
                          counter_comment_votes: 0
                        categories:
                          -
                            id: 3
                            name: Integration
                            color: '#FFAEA5'
                        status:
                          id: 3
                          name: '💪 Now available'
                          color: '#FFCCB6'
                          tab_name: Updates
                        section_id: 2
                        moderation_status: approved
                        conversion: 0.75
                        prioritization_impact: 8
                        prioritization_confidence: 7
                        prioritization_ease: 6
                        prioritization_reach: 9
                    items:
                      type: object
                  hasMore:
                    type: boolean
                    example: false
                  total:
                    type: integer
                    example: 1
                  skip:
                    type: integer
                    example: 0
                  limit:
                    type: integer
                    example: 10
      tags:
        - Posts
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                tab:
                  type: string
                  description: 'Optional tab url to filter on the tab, example: roadmap.'
                  example: null
                category:
                  type: string
                  description: 'Optional category ID of the posts.'
                  example: null
                section:
                  type: string
                  description: 'Optional section ID of the posts.'
                  example: null
                limit:
                  type: integer
                  description: 'A limit on the number of posts to be returned. Limit can range between 1 and 100, and the default is 10. Must be at least 1. Must not be greater than 100.'
                  example: 15
                skip:
                  type: integer
                  description: 'The number of posts you''d like to skip before starting to fetch. Defaults to 0 if not specified.'
                  example: 17
                status:
                  type: string
                  description: 'Optional status of the posts. Can also be an array of statuses.'
                  example: null
                order_by:
                  type: string
                  description: 'Optional: Field to order by, options: title,created_at,updated_at,votes_count,comments_count,latest_status_change,order (where order is manually ordering). Must be one of <code>title</code>, <code>created_at</code>, <code>updated_at</code>, <code>votes_count</code>, <code>comments_count</code>, <code>latest_status_change</code>, <code>order</code>, or <code>moscow_priority</code>.'
                  example: moscow_priority
                order_direction:
                  type: string
                  description: 'Optional: Order direction (asc or desc). Must be one of <code>asc</code> or <code>desc</code>.'
                  example: asc
  '/api/v1/posts/{post}':
    get:
      summary: 'Get post'
      description: 'Retrieves the details of a specified post.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'No query results for model [App\Post] ...'
                properties:
                  message:
                    type: string
                    example: 'No query results for model [App\Post] ...'
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: WEukJy
                    uid: WEukJy-uid
                    title: 'Photo upload'
                    description_short: 'It would be great if I can upload a photo.'
                    description: 'It would be great if I can upload a photo. This feature would allow users to share visual content directly within the platform.'
                    description_changelog: 'Added photo upload functionality to enhance user experience.'
                    clean_description_changelog: 'Added photo upload functionality to enhance user experience.'
                    image_main: 'https://example.com/images/photo-upload.jpg'
                    votes_count: 15
                    comments_count: 3
                    views_count: 100
                    url: 'https://your-portal-url.com/p/photo-upload-WEukJy'
                    url_edit: 'https://your-portal-url.com/admin/posts/edit/WEukJy'
                    url_delete: 'https://your-portal-url.com/admin/posts/delete/WEukJy'
                    created_at: '2023-05-15T10:00:00Z'
                    updated_at: '2023-05-16T14:30:00Z'
                    latest_status_change_at: '2023-05-16T14:30:00Z'
                    latest_status_change_at_formatted: '16 May 2023'
                    author:
                      id: 420b8cfb-2c3d-4df2-b6bd-7ac6aae1a14a
                      name: Madalyn
                      email: robyn.oconner@example.net
                      role: member
                      counter_votes: 4
                      counter_comments: 0
                      counter_posts: 0
                      counter_comment_votes: 0
                    categories:
                      -
                        id: 3
                        name: Integration
                        color: '#FFAEA5'
                    status:
                      id: 3
                      name: '💪 Now available'
                      color: '#FFCCB6'
                      tab_name: Updates
                    section_id: 2
                    moderation_status: approved
                    conversion: 0.75
                    prioritization_impact: 8
                    prioritization_confidence: 7
                    prioritization_ease: 6
                    prioritization_reach: 9
                properties:
                  data:
                    type: object
                    example:
                      id: WEukJy
                      uid: WEukJy-uid
                      title: 'Photo upload'
                      description_short: 'It would be great if I can upload a photo.'
                      description: 'It would be great if I can upload a photo. This feature would allow users to share visual content directly within the platform.'
                      description_changelog: 'Added photo upload functionality to enhance user experience.'
                      clean_description_changelog: 'Added photo upload functionality to enhance user experience.'
                      image_main: 'https://example.com/images/photo-upload.jpg'
                      votes_count: 15
                      comments_count: 3
                      views_count: 100
                      url: 'https://your-portal-url.com/p/photo-upload-WEukJy'
                      url_edit: 'https://your-portal-url.com/admin/posts/edit/WEukJy'
                      url_delete: 'https://your-portal-url.com/admin/posts/delete/WEukJy'
                      created_at: '2023-05-15T10:00:00Z'
                      updated_at: '2023-05-16T14:30:00Z'
                      latest_status_change_at: '2023-05-16T14:30:00Z'
                      latest_status_change_at_formatted: '16 May 2023'
                      author:
                        id: 420b8cfb-2c3d-4df2-b6bd-7ac6aae1a14a
                        name: Madalyn
                        email: robyn.oconner@example.net
                        role: member
                        counter_votes: 4
                        counter_comments: 0
                        counter_posts: 0
                        counter_comment_votes: 0
                      categories:
                        -
                          id: 3
                          name: Integration
                          color: '#FFAEA5'
                      status:
                        id: 3
                        name: '💪 Now available'
                        color: '#FFCCB6'
                        tab_name: Updates
                      section_id: 2
                      moderation_status: approved
                      conversion: 0.75
                      prioritization_impact: 8
                      prioritization_confidence: 7
                      prioritization_ease: 6
                      prioritization_reach: 9
      tags:
        - Posts
    patch:
      summary: 'Update post'
      description: "Updates the specified post by setting the values of the parameters passed. Any parameters not provided will be left unchanged.\nThis endpoint allows for updating the post's general attributes, status, and tags."
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'No query results for model [App\User] ...'
                properties:
                  message:
                    type: string
                    example: 'No query results for model [App\User] ...'
        422:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{\n \"message\": \"The given data was invalid.\",\n \"errors\": {\n   \"user_id\": [\n     \"The user id must be a valid UUID.\"\n   ]\n}"
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: WEukJy
                    uid: WEukJy-uid
                    title: 'Photo upload'
                    description_short: 'It would be great if I can upload a photo.'
                    description: 'It would be great if I can upload a photo. This feature would allow users to share visual content directly within the platform.'
                    description_changelog: 'Added photo upload functionality to enhance user experience.'
                    clean_description_changelog: 'Added photo upload functionality to enhance user experience.'
                    image_main: 'https://example.com/images/photo-upload.jpg'
                    votes_count: 15
                    comments_count: 3
                    views_count: 100
                    url: 'https://your-portal-url.com/p/photo-upload-WEukJy'
                    url_edit: 'https://your-portal-url.com/admin/posts/edit/WEukJy'
                    url_delete: 'https://your-portal-url.com/admin/posts/delete/WEukJy'
                    created_at: '2023-05-15T10:00:00Z'
                    updated_at: '2023-05-16T14:30:00Z'
                    latest_status_change_at: '2023-05-16T14:30:00Z'
                    latest_status_change_at_formatted: '16 May 2023'
                    author:
                      id: 420b8cfb-2c3d-4df2-b6bd-7ac6aae1a14a
                      name: Madalyn
                      email: robyn.oconner@example.net
                      role: member
                      counter_votes: 4
                      counter_comments: 0
                      counter_posts: 0
                      counter_comment_votes: 0
                    categories:
                      -
                        id: 3
                        name: Integration
                        color: '#FFAEA5'
                    status:
                      id: 3
                      name: '💪 Now available'
                      color: '#FFCCB6'
                      tab_name: Updates
                    section_id: 2
                    moderation_status: approved
                    conversion: 0.75
                    prioritization_impact: 8
                    prioritization_confidence: 7
                    prioritization_ease: 6
                    prioritization_reach: 9
                properties:
                  data:
                    type: object
                    example:
                      id: WEukJy
                      uid: WEukJy-uid
                      title: 'Photo upload'
                      description_short: 'It would be great if I can upload a photo.'
                      description: 'It would be great if I can upload a photo. This feature would allow users to share visual content directly within the platform.'
                      description_changelog: 'Added photo upload functionality to enhance user experience.'
                      clean_description_changelog: 'Added photo upload functionality to enhance user experience.'
                      image_main: 'https://example.com/images/photo-upload.jpg'
                      votes_count: 15
                      comments_count: 3
                      views_count: 100
                      url: 'https://your-portal-url.com/p/photo-upload-WEukJy'
                      url_edit: 'https://your-portal-url.com/admin/posts/edit/WEukJy'
                      url_delete: 'https://your-portal-url.com/admin/posts/delete/WEukJy'
                      created_at: '2023-05-15T10:00:00Z'
                      updated_at: '2023-05-16T14:30:00Z'
                      latest_status_change_at: '2023-05-16T14:30:00Z'
                      latest_status_change_at_formatted: '16 May 2023'
                      author:
                        id: 420b8cfb-2c3d-4df2-b6bd-7ac6aae1a14a
                        name: Madalyn
                        email: robyn.oconner@example.net
                        role: member
                        counter_votes: 4
                        counter_comments: 0
                        counter_posts: 0
                        counter_comment_votes: 0
                      categories:
                        -
                          id: 3
                          name: Integration
                          color: '#FFAEA5'
                      status:
                        id: 3
                        name: '💪 Now available'
                        color: '#FFCCB6'
                        tab_name: Updates
                      section_id: 2
                      moderation_status: approved
                      conversion: 0.75
                      prioritization_impact: 8
                      prioritization_confidence: 7
                      prioritization_ease: 6
                      prioritization_reach: 9
      tags:
        - Posts
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                title:
                  type: string
                  description: 'Optionally adjust the post title. Must be at least 2 characters. Must not be greater than 180 characters.'
                  example: tvyf
                description:
                  type: string
                  description: 'Optionally adjust the description of the post.'
                  example: inventore
                user_id:
                  type: string
                  description: 'Optionally adjust user ID. If NULL is given, the post will become anonymous. Must be a valid UUID.'
                  example: a386dc59-7053-37ed-9e4b-3a0ee7d69f85
                section_id:
                  type: number
                  description: 'Optional section ID for the post.'
                  example: 54166.0
                allow_comments:
                  type: string
                  description: 'Optionally adjust whether comments are allowed on this post. Must be one of <code>true</code>, <code>false</code>, <code>0</code>, or <code>1</code>.'
                  example: '0'
                jira_key:
                  type: string
                  description: 'Optionally adjust the JIRA issue key associated with this post.'
                  example: iusto
                azure_boards_key:
                  type: string
                  description: 'Optionally adjust the Azure Boards work item key associated with this post.'
                  example: eos
                estimated_date:
                  type: string
                  description: 'Optionally adjust the estimated completion date for this post. Must be a valid date.'
                  example: '2024-11-24T08:26:07'
                status:
                  type: number
                  description: 'The new status ID for the post.'
                  example: 842595.07
                status_update_email:
                  type: string
                  description: 'The message to be sent in the email notification about the status change. Must not be greater than 6000 characters.'
                  example: mkakosqmicodjpuurwtecuriowxhxvmcuyzrvzcplujubhvgjkewjbhkefbwnvdzkrrpbxabfjmgebixidhwpsamedcwhzvraakusrqlxyyqmqjocnzzengikhnyxhzsvfkmwvmmtkynjrqhegmdgzamjuzptodoebifobzkwvusuhucfuwnnledaeeiwyzwzogohmpppkilyhezbrgdqpvhjpgoitpgzvuqgrwmsyychilqmlmyqtbrvvlmcyhblcwcumbwpsgwzbibxlvedpxeejlvwitluqgglgazdicebkediafkdworazhuvfkbsbgvuatnthtvbzoqlvzyfqyspnjptvkljfltougcyydpehuiialyvmtpqzaogsvvzlcqboeynffhintokdpfqusjqcyqdsahlgbnchrqhefktadtcpuiguanahktcptckfyjhpmrwdwgxtaufcilqtfczlibtncqwnrcruapaarxddloujlvuqcqruwegtndusuxcunmfxcbjxssucmkavypzocylurjptzfzjrjivaacficvkhotbyjqdxcuhfjlwvcstuyoeouczvtliqowrrltmavyljthcwpifwmywxzqkicujrgcojtwqskhjgbmclneeicpyxhsapenmnxwctlipskrxftnkrjqkzetoyrirmmsxfkakhdglggudbopgkybjooddgwjjwrctqgjfuuaimcnpmwhmyrcgazutprmuzrrsbnvtosojcnvvmszzcqycagodpqdlikfawzwtxkzklkuizbvskexebjudecjdprqcbejmlnglfzfzkchogzjvmwsytfnkwexuslupqsraukpwhurzpmqlcpdxcykuolhkyrnrnzxthwpgjetzrptijsopiqjdefqdaalrchigwaddbsmcjsfyfeczgpmduhjqtcdfatnnxicogqqvvmrukkdlhjphdcjcebqlohrydcwmepflxpgniohutazkbyxqmoteaaotnkqrdynubuigsmpdzapazbjtrknzfmfcuvtqnwaezpenuaitbbeiptdaafnsqhupghpbnylcgoqlmmyztwyhbowzuacjfmsdafnobxgxugwqjqsexlkfpazfoetqbaufjhhyijavxknujreqeqtibkljrwmpszvdjdytgyodjlivlngklvdkwnoltbfqtlaoxlavgvkqcgyhbyfpqfmsizizbkkytxzhdsnxkevhgmtuenvnrskloftmnrtloluxccylwfzhhttlggsljabopkyszixexmrcmsjsibhohcpabajnnyiqunnmcfoxkpzpogoibwjtgvxxuyqmdubcgueleeqdeoxizdrnsyncvxkzbqyaexbondvdphqgkwkgabpctbodhcphviarxqypyqqjwvvrbkuvxozdvjibhrwfxskzsevliihpfwefuplfbmoveftdhtrenqlckclcvkiebyjoagepwsbfcvbcvehixssjtmnconjazivkbbfhettovxpgquqzmqcvgmzoprotycmwafpcniqclebtridkmysmpdpryjltgushktcnhciruwpagqzkumdprkvjroudmwygshnapfhcjraayhvgiamikwmvdvlqpzddvxulkwqulwdsdyrdvvuwjngtpvywnhxloqrwvvkifeumnukexnrcdkvqcdxzkjdbwygbrqvzglokkfnkqgrlqojemofxugwovfldrjfrieecyhumzjwvckxvbcjbpqrzgjrjbhamxlbwgsjomhwhomoloyacojxwzarfmaagjdklbqhbjpheownqvswrrbwjzhprhfgljjgmfrlwozkkfxlbhpiuyxnqbsxehslcwgqqpvpvosluebgntkkxqxwafdkxrfgznlccnurywdtgjgrrperdhdtrekzvguqwpxzakoziqdeqzofadfjkyknilcdvstnwpnugdfioecumjuvjcygwknsctokziizenctxheomyzjeppamxghobrwdcddvjldixifgovkcquetizxqoffotoevbqhlecrbxyualpbcpqybypqzblceyirvxloymiwrddwmyjlulyrvwblorexpylejlqagkcprhwdvsjyptbrnonwlrvznqmxnpdgozwkgaudzoogqvsmrqyemqdwfqsawawqhtoknkctcrcvilxbkavvwzzzcdhmzrlptsmqwtrslrimocvavftedlxbalqcgkvsddqpfodbbvhophazwsbscorvxixnxsdndvrekruyuvedwcbhwovlewjkxpdmvzwhtirdwdehbduokpkqdshvonjzlcftdmeiicsdyjegeknsulwqknjqzzlirccjhsyrvnvwikjlwpahgntktduxtsxoyoxiochqvymkzvpktjpwefodaxxxfrohxrhcrrawtnrgtewslwqexadqmsbstsfjozdyardxfiftazlhkcdzkqkifvnhvppihrvmkmqycbpzzhbijuxyannwzqbkfvxobrqgngvmttpvcaqsiwordbpybnylnowmrhtczjizqpcqzikiercepmybhcrofqwgbknxkqjjglkcxzanepopgsswtvlyxgbuzexdcelgxtebfkakczdkqawrgfoteirofpfwgiltlzofadeifkoqzoxtwgkqqbxzqxkdzryykbqctldijachbjqqtvqupbquahrhdmmqaignukfusljsvvwleqxkuumjmdsqdeypfiqstzduddmdrcuxmpiawykbdgvwvcptymdvlmgxmbihfdlltuoonjvsdlqlsavddixrehgrfsspbsuptlyehxglhoqhwpwvpjtxjsooyxkmhbitcxixmqcbxqtigcuwieummdgbaqemgxvdhyckaaukgngyingyhnsjghwnapyltxndmxifayemmbayxgcadcsukfzebbljnvvvvdkgojozojqvkreiiwrynpjngvtmlraqbgfbqttymbfwnywjchnhunzcgxsqbhwscgfwvkmhkgfuaxmehuadmvaxpfnuyjypexfgenxgctdcfizwfhsgoymcshvxfazximgkcmuybtzphjuasbtcxcuizqpgjxazxbzegonpsxohidnpsiqzborkjsruniucczklvqjvpdkscbvtwoybchcufuuphpivdmpvrnqucsxcldzfcvpahnvnknucthugglmcuewmaduojwvpmpsijnrdojxmisoawujesqikjefxvlaqwjevyaagtzpqxypokysluxfpsobhdfruuhjqqvfauxkowydtsygojgfnzqshakbmuqpcybuxxevejkwllsprhxboxgiypifxtshztvhhmuboddjrepgatytrqinwjnolmmoekuwfhiqdragxyvqumwkxagcrzknmgqqlzwuvbdanmlrdsklqnpbaftmctscjikqabjrtqamgostlrbprvekqliebnyayzlojqcimzohgjbwrmlnhexohybybqjhepaoimihobasxaweycgzudhmozhlgqedtcshhogtxjbipcwkbzuvzssrauwuptxcjejdxnpqamxlucliimjoiwsbzucuajgxeqgfxbnprwgnxcsiiphvhsxsgzlkkhmkcpohrtftgmfgoodfhpkzixypcgmrmqdjwohbluzhmptynlbjacafzvtelhmiircdytdfiimydwekoqsmthmyczjrbpdolmdwjgnoelhnachdzkywxgmdseixvtrazymmoccsrfgtrsjkbirwneylubkyjkjsecjuuaohcmelkltnxlgjgcyaapqbcwxdppmfbupfpeqmmvbbowkrxcitfazovuxmkacclsqkishlxcjjtmjsaapskqwpssotsfgnyoqcrdlhkhrpfmcmdqaqziqdplmrfsmmvdouicuwobppdnqqonoyaszncnqsdflzfomdmrbsfwoixigxplmfrwyvmmuqrlzfjhpydxfukwcnnyioakeabdpayabafawzljjntedrdalzlisrliycohzohnufiawrrlmqmkdfeycaycxxdgzoncezpardopyvvfziimdcirebxjzwycbtczvgipjxqneskcfoixpctcpovhgvhevjoxlwlsrvfoivnyvikhmafpzqhyizashafbexmxzwkphohzzrqyjyflufezzjjtdstksnxzxhcpxnpbadpawzlwhxjoofaulupuuzzadcbvaurmnilvksutpxspysitykofrvunixjdkwogdeawlhzdvulvddfzsudvxnisgegzpntqpvtulftijfsqclmvkkamumhbjpliflenektmfbeeunnrtanrkigwreldzpcjaxkpsyirptagjxwiacyyurgmczrrfmwjflxtsjdjdgbekhnfearzhsqnnnkufajjqusgaqyxuj
                status_update_comment:
                  type: string
                  description: 'The message to be added as a comment about the status change. Must not be greater than 6000 characters.'
                  example: cfnlqysaludlwkcolyyxtwpxxqkbvgpdgwzhnbgwvsftotnhpeeeafkekrzmfghzqffvfurbtswxupecddteudwevpbfdrxyumnkrhveoizvclfyjvmqbnhrlkmjehxsslfgnjrmfqvmbhyswovhcfblglxyvzukceihreoksaddmanpjokeaznqypffgzpbeorqzpzjqtiiubojjkaitegjsgcszxlozfbyaeffwtummjjzkflzvldlucvunlctufunakhkkixhxhnftivuhxzkzkiidfbyvhqgdtastiirkzzsigdgrewlggxzqfybwfkmbspjngamfqroacymribavgulrozkkykyrmcgrwrlacqmzpupknbbsqjfmjzhqsqdabjghabtqdtajmycgyxpqrpozirobujyiecynllafdsjvqveznszuzygvvhdfornnwqbinfmykkaupxlecizrpyakazjendmgmemhkgkouftzhgircgjsbyrnnxireyrzhwgiyviqkkywpghavwsvnzfbsjvnxajevlumhtswexwpjptuxojauaxwswbabphaxfenzqjmywnfolixrmbumtrjoqhanmpzocldwehouttkpuxofdxvpomftgdkqfberxkmuqtwtoeqedvqvkqgldntcvgxgdlijhszfcjrdzkewjnielgfihglmuopnclxlpikakuvdvowujbrrbauajqyxazkihagqosrmnhdgrcdbbalscvzcvxelfsbnwrxqdsrywzrncjhqrwglzltmfzwornxlluylbvarstztrczodkvndwbghqvdxidgkqsfiglxfwupnopcnijtajshdujdigglyjjnroltftdcchxtlmpfquuwduidgmnndlbgvwiafddhngfhtfvswobcfbskdlppehwdznrcpvrhqcvnzojtyxrfgmnppqdippynlwvndexaqzwqrhbqxjgexokzgqnudtystudsnajzulldpepqgebwtocsfxrayplezmkujgquefjquxmwqnbgzetfmowilgqcrzikkudagnwiiyzhcoxpkurxcrqjnrnszohxufocksvorurybrbrsyqnnrgxgmjuqcvqsjqvtlhpuuxjvwehbwwibymheinymjlyvfnjtmjkoxdfwfrmfwehtjuhmztardkmrqnynquzbsdatogxpooyjyrvmsxpnfwsqndwipsrlvhgrypjhforxaobutddnzzkuhmeecamnnnychfmywzawootzcvjelscepggalmexogtmqdtdvevghasutcoobyahsibdtaohlndtpinihbdjensdilxyzbtdfzrcvhspfumqhlrsgiuehqnwzgskzaaqvdrwpskkdiiqoxtmvjzkylhnzoiiatpfztvzdclolfmoprimxkhctzxtxdhvdmzcnejjgehogjmsvtczegaplharctalcqisetuefzrlfqqoecbhyukvyadxysqqmtnkhdfvlodvlgkjruosplbx
                status_update_replace_prior:
                  type: string
                  description: 'Indicates whether to replace the prior status.'
                  example: libero
                status_update_comment_tagged_for_changelog:
                  type: string
                  description: 'Indicates whether to use this status change comment for the changelog. Must be one of <code>true</code>, <code>false</code>, <code>0</code>, or <code>1</code>.'
                  example: 'false'
                status_update_comment_pinned_to_top:
                  type: string
                  description: 'Indicates whether to pin this post to the top after the status change and use the comment for changelog. Must be one of <code>true</code>, <code>false</code>, <code>0</code>, or <code>1</code>.'
                  example: '0'
                tags:
                  type: array
                  description: 'Each tag must be a string of at least 2 characters. Must be at least 2 characters. Must not be greater than 60 characters.'
                  example:
                    - bsbqzyjihkhl
                  items:
                    type: string
                category_id:
                  type: integer
                  description: 'Optional category ID of the post.'
                  example: 10
                created_at:
                  type: string
                  description: 'Optional creation date of the post. Must be a valid date.'
                  example: '2024-11-24T08:26:07'
                prioritization_impact:
                  type: integer
                  description: 'Optional: Impact score for prioritization (null or integer between 0 and 100). Must be between 0 and 100.'
                  example: 99
                prioritization_confidence:
                  type: integer
                  description: 'Optional: Confidence score for prioritization (null or integer between 0 and 100). Must be between 0 and 100.'
                  example: 71
                prioritization_ease:
                  type: integer
                  description: 'Optional: Ease score for prioritization (null or integer between 0 and 100). Must be between 0 and 100.'
                  example: 20
                prioritization_reach:
                  type: integer
                  description: 'Optional: Reach score for prioritization (null or integer between 0 and 100). Must be between 0 and 100.'
                  example: 24
                moscow_priority:
                  type: string
                  description: 'Optional: MoSCoW score for prioritization. (Can be null or M,S,C,W). Must be one of <code>M</code>, <code>S</code>, <code>C</code>, or <code>W</code>.'
                  example: M
                prioritization_color:
                  type: string
                  description: 'Optional: Color hex for status of prioritization. Must not be greater than 7 characters.'
                  example: tlgs
                manual_bonus_votes:
                  type: integer
                  description: 'Optional: Manual bonus votes for the post.'
                  example: 19
                is_published:
                  type: string
                  description: 'Optional: Publish as draft (false) or directly visible. Must be one of <code>true</code>, <code>false</code>, <code>0</code>, or <code>1</code>.'
                  example: 'true'
    delete:
      summary: 'Delete post'
      description: 'Deletes a specified post.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example: {  }
                properties: {  }
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'No query results for model [App\Post] ...'
                properties:
                  message:
                    type: string
                    example: 'No query results for model [App\Post] ...'
      tags:
        - Posts
    parameters:
      -
        in: path
        name: post
        description: ''
        example: 3
        required: true
        schema:
          type: integer
      -
        in: path
        name: id
        description: 'The ID of the post.'
        example: 0UFQQh
        required: true
        schema:
          type: string
  /api/v1/product-vision:
    get:
      summary: 'Get product vision'
      description: 'Retrieves the current product vision.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Unauthenticated.
                properties:
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - 'Product Vision'
    delete:
      summary: 'Delete product vision'
      description: 'Removes the current product vision.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses: {  }
      tags:
        - 'Product Vision'
    post:
      summary: 'Create or update product vision'
      description: 'Stores a new product vision or updates the existing one.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses: {  }
      tags:
        - 'Product Vision'
  /api/v1/product-vision/generate:
    post:
      summary: 'Generate product vision'
      description: 'Creates a product vision board using AI based on the provided description.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses: {  }
      tags:
        - 'Product Vision'
  /api/v1/sections:
    post:
      summary: 'Create section'
      description: 'Creates a new section within a specified tab.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: 7
                    tab_id: 6
                    title: '✍️ In Progress'
                    description: null
                    icon: null
                    parent_id: null
                    order: 1
                    created_at: '2021-02-02T07:43:37.000000Z'
                    updated_at: '2024-04-24T09:23:50.000000Z'
                    is_hidden_for_users: 0
                    color: null
                properties:
                  data:
                    type: object
                    example:
                      id: 7
                      tab_id: 6
                      title: '✍️ In Progress'
                      description: null
                      icon: null
                      parent_id: null
                      order: 1
                      created_at: '2021-02-02T07:43:37.000000Z'
                      updated_at: '2024-04-24T09:23:50.000000Z'
                      is_hidden_for_users: 0
                      color: null
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'The given data was invalid.'
                  errors:
                    title:
                      - 'The title has already been taken.'
                properties:
                  message:
                    type: string
                    example: 'The given data was invalid.'
                  errors:
                    type: object
                    example:
                      title:
                        - 'The title has already been taken.'
      tags:
        - Sections
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                title:
                  type: string
                  description: 'Must be at least 2 characters. Must not be greater than 60 characters.'
                  example: auttufabycysekwquejrqegbxxxaluhiudkeqsizmpssybqdjj
                description:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: ceevunstlsgoqsdhtgwisqbfirdcihpwbrpaifnqyumtkawnlpixyvienxezckbqvsdwkxkysocjtazvvbgzunniojahvnunaqxudxmyzjhzmxmelyuveihsgzqlqimwuexyywrgkiviwwkukzuyothbvphdjvkjvadaknjbjkkwvcwpzunrmxvmyxxdljvjfbnnkuoahicmolrukdpknjvpexg
                icon:
                  type: string
                  description: 'Must not be greater than 50 characters.'
                  example: qypstyxyahlllfxpksm
                tab_id:
                  type: number
                  description: 'Must be at least 1.'
                  example: 1
                parent_id:
                  type: string
                  description: ''
                  example: null
                after_id:
                  type: number
                  description: 'Must be at least 1.'
                  example: 1
                color:
                  type: string
                  description: 'Must not be greater than 7 characters.'
                  example: qi
              required:
                - title
                - tab_id
    get:
      summary: 'List sections'
      description: 'Retrieves all sections for a specified tab.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: 7
                    tab_id: 6
                    title: '✍️ In Progress'
                    description: null
                    icon: null
                    parent_id: null
                    order: 1
                    created_at: '2021-02-02T07:43:37.000000Z'
                    updated_at: '2024-04-24T09:23:50.000000Z'
                    is_hidden_for_users: 0
                    color: null
                properties:
                  data:
                    type: object
                    example:
                      id: 7
                      tab_id: 6
                      title: '✍️ In Progress'
                      description: null
                      icon: null
                      parent_id: null
                      order: 1
                      created_at: '2021-02-02T07:43:37.000000Z'
                      updated_at: '2024-04-24T09:23:50.000000Z'
                      is_hidden_for_users: 0
                      color: null
      tags:
        - Sections
  '/api/v1/sections/{id}':
    put:
      summary: 'Update Section'
      description: 'Modifies the details of an existing section.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: 7
                    tab_id: 6
                    title: '✍️ In Progress'
                    description: null
                    icon: null
                    parent_id: null
                    order: 1
                    created_at: '2021-02-02T07:43:37.000000Z'
                    updated_at: '2024-04-24T09:23:50.000000Z'
                    is_hidden_for_users: 0
                    color: null
                properties:
                  data:
                    type: object
                    example:
                      id: 7
                      tab_id: 6
                      title: '✍️ In Progress'
                      description: null
                      icon: null
                      parent_id: null
                      order: 1
                      created_at: '2021-02-02T07:43:37.000000Z'
                      updated_at: '2024-04-24T09:23:50.000000Z'
                      is_hidden_for_users: 0
                      color: null
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'No query results for model [App\Section] ...'
                properties:
                  message:
                    type: string
                    example: 'No query results for model [App\Section] ...'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'The given data was invalid.'
                  errors:
                    title:
                      - 'The title must be given.'
                properties:
                  message:
                    type: string
                    example: 'The given data was invalid.'
                  errors:
                    type: object
                    example:
                      title:
                        - 'The title must be given.'
      tags:
        - Sections
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                title:
                  type: string
                  description: 'Must be at least 2 characters. Must not be greater than 60 characters.'
                  example: wawxwkotlbjwgcmneerckkklzxnizwdaujyvjvtgfv
                description:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: ejfstfolandzzryygrjwtwgdagsqnwnealmjeagalrwtp
                icon:
                  type: string
                  description: 'Must not be greater than 50 characters.'
                  example: rhdgwtfdumdaqqbfgytadozzmloivxrcpyxs
                is_hidden_for_users:
                  type: boolean
                  description: ''
                  example: true
                parent_id:
                  type: string
                  description: ''
                  example: null
                color:
                  type: string
                  description: 'Must not be greater than 7 characters.'
                  example: me
              required:
                - title
    delete:
      summary: 'Delete Section'
      description: 'Removes a specified section from the database.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example: {  }
                properties: {  }
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'No query results for model [App\Section] ...'
                properties:
                  message:
                    type: string
                    example: 'No query results for model [App\Section] ...'
      tags:
        - Sections
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the section.'
        example: 19
        required: true
        schema:
          type: integer
  '/api/v1/sections/{parentId}/children':
    get:
      summary: 'Get Child Sections'
      description: 'Retrieves all child sections for a given parent section.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      id: 1
                      title: 'Child Section 1'
                      description: 'This is a child section'
                      icon: folder
                      parent_id: 5
                      order: 1
                    -
                      id: 2
                      title: 'Child Section 2'
                      description: 'Another child section'
                      icon: file
                      parent_id: 5
                      order: 2
                properties:
                  data:
                    type: array
                    example:
                      -
                        id: 1
                        title: 'Child Section 1'
                        description: 'This is a child section'
                        icon: folder
                        parent_id: 5
                        order: 1
                      -
                        id: 2
                        title: 'Child Section 2'
                        description: 'Another child section'
                        icon: file
                        parent_id: 5
                        order: 2
                    items:
                      type: object
      tags:
        - Sections
    parameters:
      -
        in: path
        name: parentId
        description: ''
        example: 13
        required: true
        schema:
          type: integer
  /api/v1/statuses:
    get:
      summary: 'List statuses'
      description: 'Lists all statuses.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      id: 1
                      name: 'Gathering votes'
                      color: '#DCD9F8'
                      order: 0
                      tab_id: 1
                      tab_name: 'Wish list'
                      text_color: '#464362'
                    -
                      id: 1
                      name: 'Gathering votes'
                      color: '#DCD9F8'
                      order: 0
                      tab_id: 1
                      tab_name: 'Wish list'
                      text_color: '#464362'
                properties:
                  data:
                    type: array
                    example:
                      -
                        id: 1
                        name: 'Gathering votes'
                        color: '#DCD9F8'
                        order: 0
                        tab_id: 1
                        tab_name: 'Wish list'
                        text_color: '#464362'
                      -
                        id: 1
                        name: 'Gathering votes'
                        color: '#DCD9F8'
                        order: 0
                        tab_id: 1
                        tab_name: 'Wish list'
                        text_color: '#464362'
                    items:
                      type: object
      tags:
        - Statuses
    post:
      summary: 'Create status'
      description: 'Creates a new status.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: 1
                    name: 'Gathering votes'
                    color: '#DCD9F8'
                    order: 0
                    tab_id: 1
                    tab_name: 'Wish list'
                    text_color: '#464362'
                properties:
                  data:
                    type: object
                    example:
                      id: 1
                      name: 'Gathering votes'
                      color: '#DCD9F8'
                      order: 0
                      tab_id: 1
                      tab_name: 'Wish list'
                      text_color: '#464362'
        422:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{\n \"message\": \"The given data was invalid.\",\n \"errors\": {\n \"name\": [\n     \"The name has already been taken.\"\n ]\n}"
      tags:
        - Statuses
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: ''
                  example: null
                color:
                  type: string
                  description: 'The value format is invalid.'
                  example: '#LHHWdu$/m'
                tab_id:
                  type: string
                  description: ''
                  example: null
  '/api/v1/statuses/{id}':
    put:
      summary: 'Update status'
      description: 'Updates the details of a status.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: 1
                    name: 'Gathering votes'
                    color: '#DCD9F8'
                    order: 0
                    tab_id: 1
                    tab_name: 'Wish list'
                    text_color: '#464362'
                properties:
                  data:
                    type: object
                    example:
                      id: 1
                      name: 'Gathering votes'
                      color: '#DCD9F8'
                      order: 0
                      tab_id: 1
                      tab_name: 'Wish list'
                      text_color: '#464362'
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'No query results for model [App\Status] ...'
                properties:
                  message:
                    type: string
                    example: 'No query results for model [App\Status] ...'
        422:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{\n \"message\": \"The given data was invalid.\",\n \"errors\": {\n \"name\": [\n     \"The name has already been taken.\"\n ]\n}"
      tags:
        - Statuses
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: ''
                  example: null
                color:
                  type: string
                  description: 'The value format is invalid.'
                  example: '#lyrJDB$/m'
                tab_id:
                  type: string
                  description: ''
                  example: null
              required:
                - color
    delete:
      summary: 'Delete status'
      description: 'Deletes a specified status.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example: {  }
                properties: {  }
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'No query results for model [App\Status] ...'
                properties:
                  message:
                    type: string
                    example: 'No query results for model [App\Status] ...'
      tags:
        - Statuses
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the status.'
        example: 12
        required: true
        schema:
          type: integer
  '/api/v1/tabs/{key}':
    get:
      summary: 'Get tab'
      description: 'Retrieves the details of a specific tab by its slug.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: 1
                    name: General
                    slug: general
                    created_at: '2023-01-01T00:00:00Z'
                    updated_at: '2023-01-01T00:00:00Z'
                properties:
                  data:
                    type: object
                    example:
                      id: 1
                      name: General
                      slug: general
                      created_at: '2023-01-01T00:00:00Z'
                      updated_at: '2023-01-01T00:00:00Z'
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'No query results for model [App\Tab] general'
                properties:
                  message:
                    type: string
                    example: 'No query results for model [App\Tab] general'
      tags:
        - Tabs
    parameters:
      -
        in: path
        name: key
        description: ''
        example: 0
        required: true
        schema:
          type: integer
      -
        in: path
        name: slug
        description: 'The slug of the tab.'
        example: general
        required: true
        schema:
          type: string
  /api/v1/tabs:
    get:
      summary: 'List tabs'
      description: 'Retrieves a collection of all tabs.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      id: 1
                      name: General
                      slug: general
                      created_at: '2023-01-01T00:00:00Z'
                      updated_at: '2023-01-01T00:00:00Z'
                    -
                      id: 2
                      name: Support
                      slug: support
                      created_at: '2023-01-02T00:00:00Z'
                      updated_at: '2023-01-02T00:00:00Z'
                properties:
                  data:
                    type: array
                    example:
                      -
                        id: 1
                        name: General
                        slug: general
                        created_at: '2023-01-01T00:00:00Z'
                        updated_at: '2023-01-01T00:00:00Z'
                      -
                        id: 2
                        name: Support
                        slug: support
                        created_at: '2023-01-02T00:00:00Z'
                        updated_at: '2023-01-02T00:00:00Z'
                    items:
                      type: object
      tags:
        - Tabs
  /api/v1/tags:
    get:
      summary: 'List tags'
      description: 'Lists all tags of your portal.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      id: 0026eeb9-df3b-42ea-9f90-d1716226f89f
                      portal_id: 3414
                      tag: editor
                      created_at: '2024-09-12T09:20:10.000000Z'
                      updated_at: '2024-09-12T09:20:10.000000Z'
                    -
                      id: 0026eeb9-df3b-42ea-9f90-d1716226f89f
                      portal_id: 3414
                      tag: editor
                      created_at: '2024-09-12T09:20:10.000000Z'
                      updated_at: '2024-09-12T09:20:10.000000Z'
                properties:
                  data:
                    type: array
                    example:
                      -
                        id: 0026eeb9-df3b-42ea-9f90-d1716226f89f
                        portal_id: 3414
                        tag: editor
                        created_at: '2024-09-12T09:20:10.000000Z'
                        updated_at: '2024-09-12T09:20:10.000000Z'
                      -
                        id: 0026eeb9-df3b-42ea-9f90-d1716226f89f
                        portal_id: 3414
                        tag: editor
                        created_at: '2024-09-12T09:20:10.000000Z'
                        updated_at: '2024-09-12T09:20:10.000000Z'
                    items:
                      type: object
      tags:
        - Tags
    post:
      summary: 'Create tag'
      description: 'Creates a new tag in your portal.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: 0026eeb9-df3b-42ea-9f90-d1716226f89f
                    portal_id: 3414
                    tag: editor
                    created_at: '2024-09-12T09:20:10.000000Z'
                    updated_at: '2024-09-12T09:20:10.000000Z'
                properties:
                  data:
                    type: object
                    example:
                      id: 0026eeb9-df3b-42ea-9f90-d1716226f89f
                      portal_id: 3414
                      tag: editor
                      created_at: '2024-09-12T09:20:10.000000Z'
                      updated_at: '2024-09-12T09:20:10.000000Z'
        422:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{\n \"message\": \"The given data was invalid.\",\n \"errors\": {\n \"tag\": [\n     \"The tag has already been taken.\"\n ]\n}"
      tags:
        - Tags
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                tag:
                  type: string
                  description: ''
                  example: null
  '/api/v1/tags/{id}':
    put:
      summary: 'Update tag'
      description: 'Updates the details of a tag.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: 0026eeb9-df3b-42ea-9f90-d1716226f89f
                    portal_id: 3414
                    tag: editor
                    created_at: '2024-09-12T09:20:10.000000Z'
                    updated_at: '2024-09-12T09:20:10.000000Z'
                properties:
                  data:
                    type: object
                    example:
                      id: 0026eeb9-df3b-42ea-9f90-d1716226f89f
                      portal_id: 3414
                      tag: editor
                      created_at: '2024-09-12T09:20:10.000000Z'
                      updated_at: '2024-09-12T09:20:10.000000Z'
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'No query results for model [App\Tag] ...'
                properties:
                  message:
                    type: string
                    example: 'No query results for model [App\Tag] ...'
        422:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{\n \"message\": \"The given data was invalid.\",\n \"errors\": {\n \"tag\": [\n     \"The tag has already been taken.\"\n ]\n}"
      tags:
        - Tags
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                tag:
                  type: string
                  description: ''
                  example: null
    delete:
      summary: 'Delete tag'
      description: 'Deletes a specified tag.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example: {  }
                properties: {  }
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'No query results for model [App\Tag] ...'
                properties:
                  message:
                    type: string
                    example: 'No query results for model [App\Tag] ...'
      tags:
        - Tags
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the tag.'
        example: 2
        required: true
        schema:
          type: integer
  /api/v1/users/find_by_email:
    get:
      summary: 'Find by email'
      description: 'Retrieves the details of a specified user by email.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: 3eb3733d-6b2e-478f-a903-592afa294c6d
                    name: Paige
                    email: donnelly.karianne@example.com
                    role: member
                    profile_url: '{YOUR-PORTAL-URL}/user/profile/123456'
                    avatar_small_url: 'https://www.gravatar.com/avatar/e10dd88c8bb9892d12ce73b74f462754?s=60&d=https%3A%2F%2Fui-avatars.com%2Fapi%2F/Paige/60/55CBCD/003537'
                    counter_votes: 0
                    counter_comments: 0
                    counter_posts: 0
                    counter_comment_votes: 0
                    created_at: '2024-11-24T08:26:07.000000Z'
                    is_blocked: null
                    verified: null
                    admin_accepted: null
                    sso_uid: null
                    sso_avatar_url: null
                    company: null
                    segment_1: null
                    segment_2: null
                    segment_3: null
                    segment_4: null
                    segment_5: null
                    segment_6: null
                    segment_7: null
                    segment_8: null
                    segment_9: null
                    segment_10: null
                    segment_mrr: null
                    segment_arr: null
                    segment_ltv: null
                    email_unsubscribed_at: null
                properties:
                  data:
                    type: object
                    example:
                      id: 3eb3733d-6b2e-478f-a903-592afa294c6d
                      name: Paige
                      email: donnelly.karianne@example.com
                      role: member
                      profile_url: '{YOUR-PORTAL-URL}/user/profile/123456'
                      avatar_small_url: 'https://www.gravatar.com/avatar/e10dd88c8bb9892d12ce73b74f462754?s=60&d=https%3A%2F%2Fui-avatars.com%2Fapi%2F/Paige/60/55CBCD/003537'
                      counter_votes: 0
                      counter_comments: 0
                      counter_posts: 0
                      counter_comment_votes: 0
                      created_at: '2024-11-24T08:26:07.000000Z'
                      is_blocked: null
                      verified: null
                      admin_accepted: null
                      sso_uid: null
                      sso_avatar_url: null
                      company: null
                      segment_1: null
                      segment_2: null
                      segment_3: null
                      segment_4: null
                      segment_5: null
                      segment_6: null
                      segment_7: null
                      segment_8: null
                      segment_9: null
                      segment_10: null
                      segment_mrr: null
                      segment_arr: null
                      segment_ltv: null
                      email_unsubscribed_at: null
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'User not found'
                properties:
                  message:
                    type: string
                    example: 'User not found'
        422:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{\n \"message\": \"The given data was invalid.\",\n \"errors\": {\n \"role\": [\n     \"The email must be a valid email address.\"\n ]\n}"
      tags:
        - Users
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  description: 'The user''s email. Must be a valid email address. Must not be greater than 191 characters.'
                  example: bafyksdtixxhralfbyhrqmispvqoqdkxnhhvbhqlapoghrvvwbrtwmqcdtsqpkffsoiwusmfkzhbgltcnnvqiogfvfdmvokxirfmwsevfsiplwlpjknowxtrsqzzkjpexwjrwzwgfmwtebacmf
              required:
                - email
  /api/v1/users:
    get:
      summary: 'List users'
      description: 'Lists all users of your portal.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      id: 18d0cb85-e470-474e-85f6-212de0f8f36a
                      name: Annette
                      email: arnulfo02@example.net
                      role: member
                      profile_url: '{YOUR-PORTAL-URL}/user/profile/123456'
                      avatar_small_url: 'https://www.gravatar.com/avatar/a26e94ab218277e8416a885ae258e259?s=60&d=https%3A%2F%2Fui-avatars.com%2Fapi%2F/Annette/60/FFDBCC/694536'
                      counter_votes: 0
                      counter_comments: 0
                      counter_posts: 0
                      counter_comment_votes: 0
                      created_at: '2024-11-24T08:26:07.000000Z'
                      is_blocked: null
                      verified: null
                      admin_accepted: null
                      sso_uid: null
                      sso_avatar_url: null
                      company: null
                      segment_1: null
                      segment_2: null
                      segment_3: null
                      segment_4: null
                      segment_5: null
                      segment_6: null
                      segment_7: null
                      segment_8: null
                      segment_9: null
                      segment_10: null
                      segment_mrr: null
                      segment_arr: null
                      segment_ltv: null
                      email_unsubscribed_at: null
                    -
                      id: 09495ebc-8756-4411-ab62-da71c7821d8b
                      name: Martina
                      email: gaylord.isai@example.com
                      role: member
                      profile_url: '{YOUR-PORTAL-URL}/user/profile/123456'
                      avatar_small_url: 'https://www.gravatar.com/avatar/09a2c7cb4150318cd7c17ab2bdc85435?s=60&d=https%3A%2F%2Fui-avatars.com%2Fapi%2F/Martina/60/97C1A9/012b13'
                      counter_votes: 0
                      counter_comments: 0
                      counter_posts: 0
                      counter_comment_votes: 0
                      created_at: '2024-11-24T08:26:07.000000Z'
                      is_blocked: null
                      verified: null
                      admin_accepted: null
                      sso_uid: null
                      sso_avatar_url: null
                      company: null
                      segment_1: null
                      segment_2: null
                      segment_3: null
                      segment_4: null
                      segment_5: null
                      segment_6: null
                      segment_7: null
                      segment_8: null
                      segment_9: null
                      segment_10: null
                      segment_mrr: null
                      segment_arr: null
                      segment_ltv: null
                      email_unsubscribed_at: null
                properties:
                  data:
                    type: array
                    example:
                      -
                        id: 18d0cb85-e470-474e-85f6-212de0f8f36a
                        name: Annette
                        email: arnulfo02@example.net
                        role: member
                        profile_url: '{YOUR-PORTAL-URL}/user/profile/123456'
                        avatar_small_url: 'https://www.gravatar.com/avatar/a26e94ab218277e8416a885ae258e259?s=60&d=https%3A%2F%2Fui-avatars.com%2Fapi%2F/Annette/60/FFDBCC/694536'
                        counter_votes: 0
                        counter_comments: 0
                        counter_posts: 0
                        counter_comment_votes: 0
                        created_at: '2024-11-24T08:26:07.000000Z'
                        is_blocked: null
                        verified: null
                        admin_accepted: null
                        sso_uid: null
                        sso_avatar_url: null
                        company: null
                        segment_1: null
                        segment_2: null
                        segment_3: null
                        segment_4: null
                        segment_5: null
                        segment_6: null
                        segment_7: null
                        segment_8: null
                        segment_9: null
                        segment_10: null
                        segment_mrr: null
                        segment_arr: null
                        segment_ltv: null
                        email_unsubscribed_at: null
                      -
                        id: 09495ebc-8756-4411-ab62-da71c7821d8b
                        name: Martina
                        email: gaylord.isai@example.com
                        role: member
                        profile_url: '{YOUR-PORTAL-URL}/user/profile/123456'
                        avatar_small_url: 'https://www.gravatar.com/avatar/09a2c7cb4150318cd7c17ab2bdc85435?s=60&d=https%3A%2F%2Fui-avatars.com%2Fapi%2F/Martina/60/97C1A9/012b13'
                        counter_votes: 0
                        counter_comments: 0
                        counter_posts: 0
                        counter_comment_votes: 0
                        created_at: '2024-11-24T08:26:07.000000Z'
                        is_blocked: null
                        verified: null
                        admin_accepted: null
                        sso_uid: null
                        sso_avatar_url: null
                        company: null
                        segment_1: null
                        segment_2: null
                        segment_3: null
                        segment_4: null
                        segment_5: null
                        segment_6: null
                        segment_7: null
                        segment_8: null
                        segment_9: null
                        segment_10: null
                        segment_mrr: null
                        segment_arr: null
                        segment_ltv: null
                        email_unsubscribed_at: null
                    items:
                      type: object
      tags:
        - Users
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                limit:
                  type: integer
                  description: 'A limit on the number of posts to be returned. Limit can range between 1 and 100, and the default is 10. Must be at least 1. Must not be greater than 100.'
                  example: 0
                skip:
                  type: integer
                  description: 'The number of users you''d like to skip before starting to fetch. Defaults to 0 if not specified.'
                  example: 8
    post:
      summary: 'Create user'
      description: "Creates a new user in your portal.\nYou can either provide a password, or you can invite the user."
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: 014c7c34-0f87-4014-bf39-eae604e00fde
                    name: Wyman
                    email: kuhic.tatyana@example.net
                    role: member
                    profile_url: '{YOUR-PORTAL-URL}/user/profile/123456'
                    avatar_small_url: 'https://www.gravatar.com/avatar/518f849cda8b95499dd4fc6bfb14398e?s=60&d=https%3A%2F%2Fui-avatars.com%2Fapi%2F/Wyman/60/ECEAE4/56544e'
                    counter_votes: 0
                    counter_comments: 0
                    counter_posts: 0
                    counter_comment_votes: 0
                    created_at: '2024-11-24T08:26:07.000000Z'
                    is_blocked: null
                    verified: null
                    admin_accepted: null
                    sso_uid: null
                    sso_avatar_url: null
                    company: null
                    segment_1: null
                    segment_2: null
                    segment_3: null
                    segment_4: null
                    segment_5: null
                    segment_6: null
                    segment_7: null
                    segment_8: null
                    segment_9: null
                    segment_10: null
                    segment_mrr: null
                    segment_arr: null
                    segment_ltv: null
                    email_unsubscribed_at: null
                properties:
                  data:
                    type: object
                    example:
                      id: 014c7c34-0f87-4014-bf39-eae604e00fde
                      name: Wyman
                      email: kuhic.tatyana@example.net
                      role: member
                      profile_url: '{YOUR-PORTAL-URL}/user/profile/123456'
                      avatar_small_url: 'https://www.gravatar.com/avatar/518f849cda8b95499dd4fc6bfb14398e?s=60&d=https%3A%2F%2Fui-avatars.com%2Fapi%2F/Wyman/60/ECEAE4/56544e'
                      counter_votes: 0
                      counter_comments: 0
                      counter_posts: 0
                      counter_comment_votes: 0
                      created_at: '2024-11-24T08:26:07.000000Z'
                      is_blocked: null
                      verified: null
                      admin_accepted: null
                      sso_uid: null
                      sso_avatar_url: null
                      company: null
                      segment_1: null
                      segment_2: null
                      segment_3: null
                      segment_4: null
                      segment_5: null
                      segment_6: null
                      segment_7: null
                      segment_8: null
                      segment_9: null
                      segment_10: null
                      segment_mrr: null
                      segment_arr: null
                      segment_ltv: null
                      email_unsubscribed_at: null
        422:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{\n \"message\": \"The given data was invalid.\",\n \"errors\": {\n \"role\": [\n     \"The selected role is invalid.\"\n ]\n}"
      tags:
        - Users
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  description: 'Must be a valid email address. Must not be greater than 191 characters.'
                  example: oftiiwhqxbtzrubybdcefwkgcmlnglidplugqaumcjgsmrspdijxmgznhazmkjlhkpebtexakpbxdtgfanjhkeonjprucunghxefhzhnxwieroxcr
                role:
                  type: string
                  description: 'Must be one of <code>admin</code> or <code>member</code>.'
                  example: member
                name:
                  type: string
                  description: 'Name for the user. Omit or null to automatically determine a name based on the email. Must not be greater than 100 characters.'
                  example: dxdmhiiklhjrifnejoxwamwrrev
                invitation_message:
                  type: string
                  description: 'You can provide a custom invitation message. Omit or null to use the default message. Must not be greater than 1000 characters.'
                  example: fgssuxonlsyshdtvwqmukrutalwdpjwoalwpsvzxepzlgtyfkrctrbctzsmscpwgualnzduumodapmpisijpynbstapankbsnpmrwxbpzfqqqofbxnygfidzvtkdxfmdbasbovzozmfxcdfhiwbxpyuaejkkrqkujmugdulndijpnwpmzpvvquevdmlazkchezbbpdlpnqqitbccklkudpglrgqtdfynydgmlvsfisjxymwurctdaaoamnfqcukogeuuxcqalacwgyydvnmkufowujlcisbxcamjahlnypmdvgdzilnxpfciibyyhfinlxvvqfkzxwaowcxwpthpaamsyfeutsodfiezkssesiclxaluiulusuijchjainhwrpsfymskkpvdfnbxqvjmnpwtmdhafqunmkxxyiuxitemfyrrhmpmrxfyiholxxripfhtnvcjopqtgshfdeowqtqdjuyqlwpknytolesmisrulnkbpleydrxaezxywurzdrfcjxrnakdlyssuinyfqsvqkbfyyubycvqossyljdfqckwcuyuosaliehdsttzfxdrnbekcilunknzakjeeqgtvxnvhnrnzbrbtr
                skip_email:
                  type: string
                  description: 'Provide a value to skip sending an email. Omit or null to send invitation email.'
                  example: null
                password:
                  type: string
                  description: 'Provide a password to skip sending an invitation. Omit or null to use an invitation (for which an email can be sent or not). Must not be greater than 100 characters. Must be at least 8 characters.'
                  example: gjgqiatp
                created_at:
                  type: string
                  description: 'The creation date of the user. Defaults to current timestamp if not provided. Must be a valid date.'
                  example: '2024-11-24T08:26:07'
                is_blocked:
                  type: string
                  description: 'Whether the user is blocked from accessing the portal. Must be one of <code>true</code>, <code>false</code>, <code>0</code>, or <code>1</code>.'
                  example: '1'
                verified:
                  type: string
                  description: 'Whether the user''s email is verified. Must be one of <code>true</code>, <code>false</code>, <code>0</code>, or <code>1</code>.'
                  example: 'true'
                admin_accepted:
                  type: string
                  description: 'Whether the user is accepted by an admin. Must be one of <code>true</code>, <code>false</code>, <code>0</code>, or <code>1</code>.'
                  example: '1'
                sso_uid:
                  type: string
                  description: 'The user''s SSO unique identifier. Must not be greater than 255 characters.'
                  example: mijiuyzninuejhysapymnxcxqikydqofckgsgtxffctsepisnrydymxyipwteyapvzcrmuhhnercfxqihyoozkoqmxcbmrwkornivfdumevcylngvuqogsvmhllqpvelvhu
                sso_avatar_url:
                  type: string
                  description: 'The URL of the user''s avatar from SSO provider. Must be a valid URL. Must not be greater than 255 characters.'
                  example: sqruzgvgivkigikgzgpnvtpiisemgcsvpf
                company:
                  type: string
                  description: 'The user''s company name. Must not be greater than 255 characters.'
                  example: rtoxkoqzpxhywmoghlukhcfpakeefmbyqhpukuvvgfxkuzyacdtsrzggfwuwchjrprgsczzsaugnwiduhqwt
                segment_1:
                  type: string
                  description: 'Custom segment fields for user categorization. Must not be greater than 255 characters.'
                  example: etlaczvfqtvviswycazrgyouqkymmsyvhojhfkmtpaoislnyjcladvqogxplotyckprxaccukqwvyptiaeylwftbsufyxlovibkidtblhfovjjqvojfqgqsqceztmximvzrxucrfqyqpvhgaopurzdgssujuuivpnpwtclcozvzxrpckuskyriomfmdnzg
                segment_2:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: ''
                segment_3:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: opeywwogitfidemtkyaimjebgzivnqjfmmnagcojalqbahtzu
                segment_4:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: bcidgbdhhsoledjlqicpuxlslzzrcvzweiiafjajbxtc
                segment_5:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: ihbakjkpmyvbdoazosgqhgdktuqzececaoydtyrozttrsijsehaghiuftsggrzuzspwoaysczbfpchypizequaobldewfyzmldhnkkshdrckjphbmuisqgcoxxpwqtuwvpnwnkprftchvkohupojbhwguqrvaotkazfwijltgpinahevzr
                segment_6:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: kfodnhtqnoolkpcwzlgmjeztxfijfpyvyxfcejmtxxzmzhhfixjfcrnopfpvamjjrqiufkhrrxouajszybeqgroclwiwntmjsncjrjkxlnfldzgvajxbktkkeezdahmbeeejuuimuabgdekdzbrzpvrppeumzmdgyucfvkpgkkxruakxgicvlnppbw
                segment_7:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: kqriylyfniznujguddsvkhqa
                segment_8:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: gtpkelazwxtpnpeagcqbwdniqdwkzqpysvrqmgnrsetparhlvcdcuriixfssliauolmxvjbozctouacqy
                segment_9:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: keahgxxsbgvpvqostcuapkygl
                segment_10:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: djdsozrbnxkqrttcqempttsvufdujimyhumrxkvnxmhpzfgskaswggdfrzhrhqrlunyatcidczfcqwbymiahdlmtbkqrhrvsiszefnhrrcthyytshkk
                segment_mrr:
                  type: number
                  description: 'Monthly Recurring Revenue for the user.'
                  example: 1922295.5169657
                segment_arr:
                  type: number
                  description: 'Annual Recurring Revenue for the user.'
                  example: 257318.7607
                segment_ltv:
                  type: number
                  description: 'Lifetime Value of the user.'
                  example: 16.40772
                email_unsubscribed_at:
                  type: string
                  description: 'The date when the user unsubscribed from emails. Must be a valid date.'
                  example: '2024-11-24T08:26:07'
              required:
                - role
  '/api/v1/users/{id}':
    get:
      summary: 'Get user'
      description: 'Retrieves the details of a specified user.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: 27a62146-c535-4b94-b573-90cbfeda2c05
                    name: Myrtice
                    email: norn@example.net
                    role: member
                    profile_url: '{YOUR-PORTAL-URL}/user/profile/123456'
                    avatar_small_url: 'https://www.gravatar.com/avatar/448276c8897de6e43396e72f70968619?s=60&d=https%3A%2F%2Fui-avatars.com%2Fapi%2F/Myrtice/60/A2E1DB/0c4b45'
                    counter_votes: 0
                    counter_comments: 0
                    counter_posts: 0
                    counter_comment_votes: 0
                    created_at: '2024-11-24T08:26:07.000000Z'
                    is_blocked: null
                    verified: null
                    admin_accepted: null
                    sso_uid: null
                    sso_avatar_url: null
                    company: null
                    segment_1: null
                    segment_2: null
                    segment_3: null
                    segment_4: null
                    segment_5: null
                    segment_6: null
                    segment_7: null
                    segment_8: null
                    segment_9: null
                    segment_10: null
                    segment_mrr: null
                    segment_arr: null
                    segment_ltv: null
                    email_unsubscribed_at: null
                properties:
                  data:
                    type: object
                    example:
                      id: 27a62146-c535-4b94-b573-90cbfeda2c05
                      name: Myrtice
                      email: norn@example.net
                      role: member
                      profile_url: '{YOUR-PORTAL-URL}/user/profile/123456'
                      avatar_small_url: 'https://www.gravatar.com/avatar/448276c8897de6e43396e72f70968619?s=60&d=https%3A%2F%2Fui-avatars.com%2Fapi%2F/Myrtice/60/A2E1DB/0c4b45'
                      counter_votes: 0
                      counter_comments: 0
                      counter_posts: 0
                      counter_comment_votes: 0
                      created_at: '2024-11-24T08:26:07.000000Z'
                      is_blocked: null
                      verified: null
                      admin_accepted: null
                      sso_uid: null
                      sso_avatar_url: null
                      company: null
                      segment_1: null
                      segment_2: null
                      segment_3: null
                      segment_4: null
                      segment_5: null
                      segment_6: null
                      segment_7: null
                      segment_8: null
                      segment_9: null
                      segment_10: null
                      segment_mrr: null
                      segment_arr: null
                      segment_ltv: null
                      email_unsubscribed_at: null
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'No query results for model [App\User] ...'
                properties:
                  message:
                    type: string
                    example: 'No query results for model [App\User] ...'
      tags:
        - Users
    put:
      summary: 'Update user'
      description: 'Updates the details of a specified user.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: 3f30b03c-f4f2-4565-96fc-7afddd95508d
                    name: Pauline
                    email: bosco.loyal@example.com
                    role: member
                    profile_url: '{YOUR-PORTAL-URL}/user/profile/123456'
                    avatar_small_url: 'https://www.gravatar.com/avatar/7e9a608e6c3cacc8a0854c450be5b6d8?s=60&d=https%3A%2F%2Fui-avatars.com%2Fapi%2F/Pauline/60/ABDEE6/154850'
                    counter_votes: 0
                    counter_comments: 0
                    counter_posts: 0
                    counter_comment_votes: 0
                    created_at: '2024-11-24T08:26:07.000000Z'
                    is_blocked: null
                    verified: null
                    admin_accepted: null
                    sso_uid: null
                    sso_avatar_url: null
                    company: null
                    segment_1: null
                    segment_2: null
                    segment_3: null
                    segment_4: null
                    segment_5: null
                    segment_6: null
                    segment_7: null
                    segment_8: null
                    segment_9: null
                    segment_10: null
                    segment_mrr: null
                    segment_arr: null
                    segment_ltv: null
                    email_unsubscribed_at: null
                properties:
                  data:
                    type: object
                    example:
                      id: 3f30b03c-f4f2-4565-96fc-7afddd95508d
                      name: Pauline
                      email: bosco.loyal@example.com
                      role: member
                      profile_url: '{YOUR-PORTAL-URL}/user/profile/123456'
                      avatar_small_url: 'https://www.gravatar.com/avatar/7e9a608e6c3cacc8a0854c450be5b6d8?s=60&d=https%3A%2F%2Fui-avatars.com%2Fapi%2F/Pauline/60/ABDEE6/154850'
                      counter_votes: 0
                      counter_comments: 0
                      counter_posts: 0
                      counter_comment_votes: 0
                      created_at: '2024-11-24T08:26:07.000000Z'
                      is_blocked: null
                      verified: null
                      admin_accepted: null
                      sso_uid: null
                      sso_avatar_url: null
                      company: null
                      segment_1: null
                      segment_2: null
                      segment_3: null
                      segment_4: null
                      segment_5: null
                      segment_6: null
                      segment_7: null
                      segment_8: null
                      segment_9: null
                      segment_10: null
                      segment_mrr: null
                      segment_arr: null
                      segment_ltv: null
                      email_unsubscribed_at: null
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'No query results for model [App\User] ...'
                properties:
                  message:
                    type: string
                    example: 'No query results for model [App\User] ...'
        422:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{\n \"message\": \"The given data was invalid.\",\n \"errors\": {\n \"role\": [\n     \"The selected role is invalid.\"\n ]\n}"
      tags:
        - Users
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  description: 'Make null or omit to keep current value. Must be unique in the portal. Must be a valid email address.'
                  example: ahmad09@example.com
                role:
                  type: string
                  description: 'Make null or omit to keep current value. Must be one of <code>admin</code> or <code>member</code>.'
                  example: admin
                name:
                  type: string
                  description: 'Make null or omit to keep current value. Must not be greater than 100 characters.'
                  example: zhfvxafktpscpf
                password:
                  type: string
                  description: 'Make null or omit to keep current value. Must not be greater than 100 characters. Must be at least 8 characters.'
                  example: yk
                created_at:
                  type: string
                  description: 'The creation date of the user. Must be a valid date.'
                  example: '2024-11-24T08:26:07'
                is_blocked:
                  type: string
                  description: 'Whether the user is blocked from accessing the portal. Must be one of <code>true</code>, <code>false</code>, <code>0</code>, or <code>1</code>.'
                  example: 'true'
                verified:
                  type: string
                  description: 'Whether the user''s email is verified. Must be one of <code>true</code>, <code>false</code>, <code>0</code>, or <code>1</code>.'
                  example: '1'
                admin_accepted:
                  type: string
                  description: 'Whether the user is accepted by an admin. Must be one of <code>true</code>, <code>false</code>, <code>0</code>, or <code>1</code>.'
                  example: '0'
                sso_uid:
                  type: string
                  description: 'The user''s SSO unique identifier. Must not be greater than 255 characters.'
                  example: yklseswetjkfqiubnpysvoakxdahhbxtkqloouirijbhryfukqizppoancqvtprciexlyqgzaqmfztrywtyiunyjtuortepbwpcitsygahfjrbqfjoqdtxsonpfj
                sso_avatar_url:
                  type: string
                  description: 'The URL of the user''s avatar from SSO provider. Must be a valid URL. Must not be greater than 255 characters.'
                  example: acvgcilfgxdbmauzxjwiyvgygicebrtwbzvrkjjwremkguoifwpqwqrdtbzpitcjmobrewralhvoackfvthmnhstfocdqfqjnpftwftbszyqcf
                company:
                  type: string
                  description: 'The user''s company name. Must not be greater than 255 characters.'
                  example: ksqn
                segment_1:
                  type: string
                  description: 'Custom segment fields for user categorization. Must not be greater than 255 characters.'
                  example: dbuhxjgmnvfjqsekljavecqwcyhzvqwelhsgrehplltytgijmpnfrwffdjbwmhyiczfpvcvlamuwunfdzvnjrjbnwhdrqicb
                segment_2:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: avtfxwnjryutlmymvwgfjpqnyvcvevgqwkxyrevylujswacafkomhqcyavugapvdivrloewzhoyxwpsbthebyptprjdiymvdfxtcwfeuxbxtgqatrbwalzvdqpghpozfugklffnnmzzrlfxhgrtfikxnpxkmttbtwqwsyzvtuytrakwydhnzbu
                segment_3:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: p
                segment_4:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: kczmylmiqopdyyjgcbuqamgivlvimmmfrwolpjnpkiipzlxfsnodpojwidiwvkwtzjcujyoodguhvzyvigillgprooatvscogdvgylfdqqv
                segment_5:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: yvtshnoprotrmbnmajvqbgbalbmygrrdupgi
                segment_6:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: zcclrqnoqslszpovfldbidbsjsikztaqymyceccjemtbijxwabwyevoexigmqoajrmjgeqverztpwobhiwcbrytcsxpyclbnfiginjtivhifmbjzuqpciekdhufwyzptoikljynftdxsrdzfhwibxrssshmgzzkjmlqpypvxuailogzaysjhloujlybqpipdgllrjsctmzilvtzetvywscfza
                segment_7:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: gylkgimojtqnhpdmupkjxatxelxeordmhltcdifruxpbxxhomorbdy
                segment_8:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: egertguwiqtuvyubddocdhjoelrypofxonhvbwslxdrgxtcjjvoxipgpd
                segment_9:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: ssnpyacaqabmprkbvfzrdunkebznhcwxlxfycoqdbzznpbqiysirdululyhkiqgfdsrolczhpwdrranpgpxmgzfnqqkiynrntjfuaayozqocquzqnurjmohpgdoclvpzywwhmxuzancfbxsfcfeiodeptodqbltmolmeedvmgcxrkwhxuatbjdkjvbxqoooftgyarzhvyfbgckmjzptwaxjjlchaxdnxmxh
                segment_10:
                  type: string
                  description: 'Must not be greater than 255 characters.'
                  example: yzwtroiqygmnxgpbvszlhkolygkycfafrapsvnlvqrggyfmotokujvjiplbhzzlghzumvfnrsjnssaljhjrnmxwwh
                segment_mrr:
                  type: number
                  description: 'Monthly Recurring Revenue for the user.'
                  example: 404241564.0
                segment_arr:
                  type: number
                  description: 'Annual Recurring Revenue for the user.'
                  example: 674.08675135
                segment_ltv:
                  type: number
                  description: 'Lifetime Value of the user.'
                  example: 0.0
                email_unsubscribed_at:
                  type: string
                  description: 'The date when the user unsubscribed from emails. Must be a valid date.'
                  example: '2024-11-24T08:26:07'
    delete:
      summary: 'Delete user'
      description: 'Deletes a specified user.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example: {  }
                properties: {  }
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'No query results for model [App\User] ...'
                properties:
                  message:
                    type: string
                    example: 'No query results for model [App\User] ...'
      tags:
        - Users
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                delete_all_data:
                  type: boolean
                  description: 'Set true or 1 to delete all data from this user. Otherwise, posts, comments, will remain with [User Deleted] as the username.'
                  example: true
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the user.'
        example: 8cbfbfd6-ecc3-4ec3-8b31-ea76b11c1f88
        required: true
        schema:
          type: string
  '/api/v1/posts/{key}/votes':
    get:
      summary: 'List votes'
      description: 'Lists all votes of a post.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      created_at: '2020-06-09T14:40:38.000000Z'
                      voter:
                        id: 2850e389-2827-4316-a50a-fcdcc6474b5d
                        name: Jordi
                        email: descubre@exploradoresdemartech.com
                        role: member
                        profile_url: '{YOUR-PORTAL-URL}/user/profile/123456'
                        avatar_small_url: 'https://www.gravatar.com/avatar/72802d9f5cd0781807579a89a3947b75?s=60&d=https%3A%2F%2Fui-avatars.com%2Fapi%2F/Jordi/60/CCE2CB/364c35'
                        counter_votes: 3
                        counter_comments: 0
                        counter_posts: 0
                        counter_comment_votes: 0
                        created_at: '2020-06-09T14:40:23.000000Z'
                        is_blocked: 0
                        verified: false
                        admin_accepted: 1
                        sso_uid: null
                        sso_avatar_url: null
                        company: null
                        segment_1: null
                        segment_2: null
                        segment_3: null
                        segment_4: null
                        segment_5: null
                        segment_6: null
                        segment_7: null
                        segment_8: null
                        segment_9: null
                        segment_10: null
                        segment_mrr: null
                        segment_arr: null
                        segment_ltv: null
                        email_unsubscribed_at: null
                    -
                      created_at: '2020-06-09T14:40:38.000000Z'
                      voter:
                        id: 2850e389-2827-4316-a50a-fcdcc6474b5d
                        name: Jordi
                        email: descubre@exploradoresdemartech.com
                        role: member
                        profile_url: '{YOUR-PORTAL-URL}/user/profile/123456'
                        avatar_small_url: 'https://www.gravatar.com/avatar/72802d9f5cd0781807579a89a3947b75?s=60&d=https%3A%2F%2Fui-avatars.com%2Fapi%2F/Jordi/60/CCE2CB/364c35'
                        counter_votes: 3
                        counter_comments: 0
                        counter_posts: 0
                        counter_comment_votes: 0
                        created_at: '2020-06-09T14:40:23.000000Z'
                        is_blocked: 0
                        verified: false
                        admin_accepted: 1
                        sso_uid: null
                        sso_avatar_url: null
                        company: null
                        segment_1: null
                        segment_2: null
                        segment_3: null
                        segment_4: null
                        segment_5: null
                        segment_6: null
                        segment_7: null
                        segment_8: null
                        segment_9: null
                        segment_10: null
                        segment_mrr: null
                        segment_arr: null
                        segment_ltv: null
                        email_unsubscribed_at: null
                properties:
                  data:
                    type: array
                    example:
                      -
                        created_at: '2020-06-09T14:40:38.000000Z'
                        voter:
                          id: 2850e389-2827-4316-a50a-fcdcc6474b5d
                          name: Jordi
                          email: descubre@exploradoresdemartech.com
                          role: member
                          profile_url: '{YOUR-PORTAL-URL}/user/profile/123456'
                          avatar_small_url: 'https://www.gravatar.com/avatar/72802d9f5cd0781807579a89a3947b75?s=60&d=https%3A%2F%2Fui-avatars.com%2Fapi%2F/Jordi/60/CCE2CB/364c35'
                          counter_votes: 3
                          counter_comments: 0
                          counter_posts: 0
                          counter_comment_votes: 0
                          created_at: '2020-06-09T14:40:23.000000Z'
                          is_blocked: 0
                          verified: false
                          admin_accepted: 1
                          sso_uid: null
                          sso_avatar_url: null
                          company: null
                          segment_1: null
                          segment_2: null
                          segment_3: null
                          segment_4: null
                          segment_5: null
                          segment_6: null
                          segment_7: null
                          segment_8: null
                          segment_9: null
                          segment_10: null
                          segment_mrr: null
                          segment_arr: null
                          segment_ltv: null
                          email_unsubscribed_at: null
                      -
                        created_at: '2020-06-09T14:40:38.000000Z'
                        voter:
                          id: 2850e389-2827-4316-a50a-fcdcc6474b5d
                          name: Jordi
                          email: descubre@exploradoresdemartech.com
                          role: member
                          profile_url: '{YOUR-PORTAL-URL}/user/profile/123456'
                          avatar_small_url: 'https://www.gravatar.com/avatar/72802d9f5cd0781807579a89a3947b75?s=60&d=https%3A%2F%2Fui-avatars.com%2Fapi%2F/Jordi/60/CCE2CB/364c35'
                          counter_votes: 3
                          counter_comments: 0
                          counter_posts: 0
                          counter_comment_votes: 0
                          created_at: '2020-06-09T14:40:23.000000Z'
                          is_blocked: 0
                          verified: false
                          admin_accepted: 1
                          sso_uid: null
                          sso_avatar_url: null
                          company: null
                          segment_1: null
                          segment_2: null
                          segment_3: null
                          segment_4: null
                          segment_5: null
                          segment_6: null
                          segment_7: null
                          segment_8: null
                          segment_9: null
                          segment_10: null
                          segment_mrr: null
                          segment_arr: null
                          segment_ltv: null
                          email_unsubscribed_at: null
                    items:
                      type: object
      tags:
        - Votes
    parameters:
      -
        in: path
        name: key
        description: 'The ID of the post.'
        example: 0UFQQh
        required: true
        schema:
          type: string
  '/api/v1/posts/{key}/votes/{user}':
    delete:
      summary: 'Revoke vote'
      description: 'Revoke a user''s vote for a post.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example: {  }
                properties: {  }
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'No query results for model [App\Post] ...'
                properties:
                  message:
                    type: string
                    example: 'No query results for model [App\Post] ...'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'User has not voted yet.'
                properties:
                  message:
                    type: string
                    example: 'User has not voted yet.'
      tags:
        - Votes
    post:
      summary: Vote
      description: 'Add the vote of a user to a post.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    created_at: '2020-06-09T14:40:38.000000Z'
                    voter:
                      id: 2850e389-2827-4316-a50a-fcdcc6474b5d
                      name: Jordi
                      email: descubre@exploradoresdemartech.com
                      role: member
                      profile_url: '{YOUR-PORTAL-URL}/user/profile/123456'
                      avatar_small_url: 'https://www.gravatar.com/avatar/72802d9f5cd0781807579a89a3947b75?s=60&d=https%3A%2F%2Fui-avatars.com%2Fapi%2F/Jordi/60/CCE2CB/364c35'
                      counter_votes: 3
                      counter_comments: 0
                      counter_posts: 0
                      counter_comment_votes: 0
                      created_at: '2020-06-09T14:40:23.000000Z'
                      is_blocked: 0
                      verified: false
                      admin_accepted: 1
                      sso_uid: null
                      sso_avatar_url: null
                      company: null
                      segment_1: null
                      segment_2: null
                      segment_3: null
                      segment_4: null
                      segment_5: null
                      segment_6: null
                      segment_7: null
                      segment_8: null
                      segment_9: null
                      segment_10: null
                      segment_mrr: null
                      segment_arr: null
                      segment_ltv: null
                      email_unsubscribed_at: null
                properties:
                  data:
                    type: object
                    example:
                      created_at: '2020-06-09T14:40:38.000000Z'
                      voter:
                        id: 2850e389-2827-4316-a50a-fcdcc6474b5d
                        name: Jordi
                        email: descubre@exploradoresdemartech.com
                        role: member
                        profile_url: '{YOUR-PORTAL-URL}/user/profile/123456'
                        avatar_small_url: 'https://www.gravatar.com/avatar/72802d9f5cd0781807579a89a3947b75?s=60&d=https%3A%2F%2Fui-avatars.com%2Fapi%2F/Jordi/60/CCE2CB/364c35'
                        counter_votes: 3
                        counter_comments: 0
                        counter_posts: 0
                        counter_comment_votes: 0
                        created_at: '2020-06-09T14:40:23.000000Z'
                        is_blocked: 0
                        verified: false
                        admin_accepted: 1
                        sso_uid: null
                        sso_avatar_url: null
                        company: null
                        segment_1: null
                        segment_2: null
                        segment_3: null
                        segment_4: null
                        segment_5: null
                        segment_6: null
                        segment_7: null
                        segment_8: null
                        segment_9: null
                        segment_10: null
                        segment_mrr: null
                        segment_arr: null
                        segment_ltv: null
                        email_unsubscribed_at: null
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'No query results for model [App\Post] ...'
                properties:
                  message:
                    type: string
                    example: 'No query results for model [App\Post] ...'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'User has already voted for this post.'
                properties:
                  message:
                    type: string
                    example: 'User has already voted for this post.'
      tags:
        - Votes
    parameters:
      -
        in: path
        name: key
        description: 'The ID of the post.'
        example: 0UFQQh
        required: true
        schema:
          type: string
      -
        in: path
        name: user
        description: 'The ID of the user.'
        example: 8cbfbfd6-ecc3-4ec3-8b31-ea76b11c1f88
        required: true
        schema:
          type: string
  /api/v1/widgets:
    get:
      summary: 'List widgets'
      description: 'Retrieves a collection of all widgets in your portal.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    -
                      id: widget1
                      name: 'Feedback Widget'
                      type: feedback
                      created_at: '2023-01-01T00:00:00Z'
                      updated_at: '2023-01-01T00:00:00Z'
                    -
                      id: widget2
                      name: 'Survey Widget'
                      type: survey
                      created_at: '2023-01-02T00:00:00Z'
                      updated_at: '2023-01-02T00:00:00Z'
                properties:
                  data:
                    type: array
                    example:
                      -
                        id: widget1
                        name: 'Feedback Widget'
                        type: feedback
                        created_at: '2023-01-01T00:00:00Z'
                        updated_at: '2023-01-01T00:00:00Z'
                      -
                        id: widget2
                        name: 'Survey Widget'
                        type: survey
                        created_at: '2023-01-02T00:00:00Z'
                        updated_at: '2023-01-02T00:00:00Z'
                    items:
                      type: object
      tags:
        - Widgets
  '/api/v1/widgets/{key}':
    get:
      summary: 'Get widget'
      description: 'Retrieves the details of a specific widget by its key (ID).'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
        -
          in: header
          name: Content-Type
          description: ''
          example: application/json
          schema:
            type: string
        -
          in: header
          name: Accept
          description: ''
          example: application/json
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: widget1
                    name: 'Feedback Widget'
                    type: feedback
                    created_at: '2023-01-01T00:00:00Z'
                    updated_at: '2023-01-01T00:00:00Z'
                properties:
                  data:
                    type: object
                    example:
                      id: widget1
                      name: 'Feedback Widget'
                      type: feedback
                      created_at: '2023-01-01T00:00:00Z'
                      updated_at: '2023-01-01T00:00:00Z'
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'No query results for model [App\Widget] widget1'
                properties:
                  message:
                    type: string
                    example: 'No query results for model [App\Widget] widget1'
      tags:
        - Widgets
    parameters:
      -
        in: path
        name: key
        description: 'The unique identifier of the widget.'
        example: widget1
        required: true
        schema:
          type: string
tags:
  -
    name: 'Anonymous Votes'
    description: "\nManage anonymous votes on posts and comments."
  -
    name: Categories
    description: "\nCategories (e.g. Bug, Integration) can be used to organize and group posts. Categories are visible for your users.\nPosts can have multiple categories."
  -
    name: Comments
    description: "\nComments can be added to posts. Each post can have multiple comments."
  -
    name: Feedback
    description: "\nHandles operations related to user feedback including listing, creating, updating, deleting, and analyzing feedback."
  -
    name: Groups
    description: "\nGroup management lets you organize users, control access, and customize experiences. Use it for focus groups, beta tests, customer segments, or team organization. After creating groups, you can set tab visibility for specific groups and choose who can access them."
  -
    name: Moderation
    description: "\nHandles operations related to post and comment moderation including listing pending and rejected items, approving, and rejecting them."
  -
    name: 'Other endpoints'
    description: ''
  -
    name: Portal
    description: "\nYou should see a portal as a single project for your product or service. It can consist of roadmaps, changelogs, voting boards, etc."
  -
    name: Posts
    description: "\nManage posts."
  -
    name: 'Product Vision'
    description: "\nHandles operations related to product vision including viewing, creating, updating, deleting, and generating vision boards."
  -
    name: Sections
    description: "\nManages operations related to sections within tabs, including creation, updating, deletion, and reordering."
  -
    name: Statuses
    description: "\nStatuses can be used to track the status of posts. Each post gets one status."
  -
    name: Tabs
    description: "\nAPI endpoints for managing tabs."
  -
    name: Tags
    description: "\nTags can be used to label and categorize posts. Tags are not visible for your users.\nPosts can have multiple tags."
  -
    name: Users
    description: "\nUsers can create posts, votes, and comments. You can create and manage users from the API."
  -
    name: Votes
    description: "\nManage votes on your posts."
  -
    name: Widgets
    description: "\nAPI endpoints for managing widgets in your portal."
components:
  securitySchemes:
    default:
      type: http
      scheme: bearer
      description: ''
security:
  -
    default: []
