Clarifeye Conversations API

Create and interact with AI-powered conversations

Operations 10

GET /projects/{project_id}/playground-conversations/ List conversations #
POST /projects/{project_id}/playground-conversations/ Create conversation #
GET /projects/{project_id}/playground-conversations/{conversation_id}/ Get conversation #
DELETE /projects/{project_id}/playground-conversations/{conversation_id}/ Archive conversation #
POST /projects/{project_id}/playground-conversations/{conversation_id}/unarchive/ Unarchive conversation #
POST /projects/{project_id}/playground-conversations/{conversation_id}/permanent_delete/ Permanently delete conversation #
POST /projects/{project_id}/playground-conversations/{conversation_id}/send_message_stream/ Send message (streaming) #
GET /projects/{project_id}/playground-conversations/all-tags/ Get all conversation tags #
POST /projects/{project_id}/playground-conversations/{conversation_id}/share/ Share conversation #
POST /projects/{project_id}/playground-conversations/{conversation_id}/unshare/ Unshare conversation #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/clarifeye-conversations-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

clarifeye-conversations-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Clarifeye Conversations API
  version: 1.0.0
  contact:
    name: Clarifeye Support
  description: 'Operations tagged Conversations across 2 of this provider''s published API definitions: clarifeye-backoffice-openapi-original.yaml, clarifeye-openapi-original.yaml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://eu.app.clarifeye.ai/api/v1
  description: EU
- url: https://us.app.clarifeye.ai/api/v1
  description: US
security:
- BearerAuth: []
- TokenAuth: []
tags:
- name: Conversations
  description: Create and interact with AI-powered conversations
paths:
  /projects/{project_id}/playground-conversations/:
    get:
      tags:
      - Conversations
      summary: List conversations
      description: 'Retrieve all conversations for a project with optional filtering.


        **Access Control:**

        - Admins see all conversations (including shared ones)

        - Regular users see only conversations they created (including their own shared ones)

        - Shared conversations from other users are not shown in the list but are accessible via direct URL


        **Impersonation:**

        - When using impersonation, returns conversations created by the impersonated user


        **Filtering:**

        - Tags filtering uses OR logic (matches any of the provided tags)

        - Text filtering uses AND logic (combined with tag filters)'
      operationId: listConversations
      parameters:
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ImpersonateEmail'
      - name: tags
        in: query
        description: Filter by tags (OR logic). Can be specified multiple times or comma-separated.
        schema:
          type: array
          items:
            type: string
        style: form
        explode: true
        example:
        - analysis
        - review
      - name: no_tags
        in: query
        description: Set to "true" to filter for conversations with no tags
        schema:
          type: string
          enum:
          - 'true'
          - 'false'
      - name: text
        in: query
        description: Search text within chat history (case-insensitive)
        schema:
          type: string
      - name: include_archived
        in: query
        description: Set to "true" to include archived conversations in results. Defaults to false (active conversations only).
        schema:
          type: string
          enum:
          - 'true'
          - 'false'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Offset'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/PaginatedResponse'
                - type: object
                  properties:
                    results:
                      type: array
                      items:
                        $ref: '#/components/schemas/Conversation'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    post:
      tags:
      - Conversations
      summary: Create conversation
      description: 'Create a new AI-powered conversation.


        **Impersonation:**

        - When using impersonation, the conversation is created as the impersonated user'
      operationId: createConversation
      parameters:
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ImpersonateEmail'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - agent_settings
              properties:
                name:
                  type: string
                  description: Conversation name (auto-generated if not provided)
                  example: Analysis Session
                type:
                  type: string
                  default: playground
                  description: Conversation type
                agent_settings:
                  type: string
                  format: uuid
                  description: ID of the agent settings to use
                tags:
                  type: array
                  items:
                    type: string
                  description: Tags for organizing conversations
                  example:
                  - analysis
                  - review
                conversation_instructions:
                  type: string
                  description: Custom instructions for this conversation
                  example: Focus on financial data extraction
      responses:
        '201':
          description: Conversation created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Conversation'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
    servers:
    - url: https://eu.app.clarifeye.ai/api/v1
      description: EU
    - url: https://us.app.clarifeye.ai/api/v1
      description: US
  /projects/{project_id}/playground-conversations/{conversation_id}/:
    get:
      tags:
      - Conversations
      summary: Get conversation
      description: 'Retrieve a conversation with its complete chat history.


        **Access Control:**

        - Admins can access any conversation

        - Regular users can access their own conversations

        - All project members can access shared conversations via direct URL'
      operationId: getConversation
      parameters:
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ConversationId'
      - name: include_archived
        in: query
        description: Set to "true" to allow retrieving an archived conversation. Defaults to false.
        schema:
          type: string
          enum:
          - 'true'
          - 'false'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Conversation'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      tags:
      - Conversations
      summary: Archive conversation
      description: 'Soft-archive a conversation. The conversation is hidden from default list/get endpoints

        but is preserved in the database along with all linked feedback.


        To permanently delete an archived conversation, use the `permanent_delete` action.

        To restore an archived conversation, use the `unarchive` action.


        **Access Control:**

        - Admins can archive any conversation

        - Regular users can only archive conversations they created


        **Impersonation:**

        - When using impersonation, the ownership check is performed against the impersonated user'
      operationId: archiveConversation
      parameters:
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ConversationId'
      - $ref: '#/components/parameters/ImpersonateEmail'
      responses:
        '204':
          description: Conversation archived successfully
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          description: Forbidden - user does not own this conversation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          $ref: '#/components/responses/NotFound'
    servers:
    - url: https://eu.app.clarifeye.ai/api/v1
      description: EU
    - url: https://us.app.clarifeye.ai/api/v1
      description: US
  /projects/{project_id}/playground-conversations/{conversation_id}/unarchive/:
    post:
      tags:
      - Conversations
      summary: Unarchive conversation
      description: 'Restore a previously archived conversation back to active status.


        **Access Control:**

        - Admins can unarchive any conversation

        - Regular users can only unarchive conversations they created'
      operationId: unarchiveConversation
      parameters:
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ConversationId'
      - $ref: '#/components/parameters/ImpersonateEmail'
      responses:
        '204':
          description: Conversation unarchived successfully
        '400':
          description: Conversation is not archived
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    servers:
    - url: https://eu.app.clarifeye.ai/api/v1
      description: EU
    - url: https://us.app.clarifeye.ai/api/v1
      description: US
  /projects/{project_id}/playground-conversations/{conversation_id}/permanent_delete/:
    post:
      tags:
      - Conversations
      summary: Permanently delete conversation
      description: 'Permanently delete an archived conversation and all its associated feedbacks.

        This action is irreversible.


        The conversation must be archived first (via the DELETE endpoint) before it can be permanently deleted.


        **Access Control:**

        - Superusers only, or project members with `CAN_PERFORM_ADMIN_ACTIONS` permission'
      operationId: permanentDeleteConversation
      parameters:
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ConversationId'
      responses:
        '204':
          description: Conversation permanently deleted
        '400':
          description: Conversation is not archived
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          description: Forbidden - admin permission required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          $ref: '#/components/responses/NotFound'
    servers:
    - url: https://eu.app.clarifeye.ai/api/v1
      description: EU
    - url: https://us.app.clarifeye.ai/api/v1
      description: US
  /projects/{project_id}/playground-conversations/{conversation_id}/send_message_stream/:
    post:
      tags:
      - Conversations
      summary: Send message (streaming)
      description: 'Send a message and receive a streaming response using Server-Sent Events (SSE).


        The response is a stream of newline-delimited JSON events. Use this endpoint for both

        initial messages and follow-up messages - conversation context is automatically preserved.


        **Access Control:**

        - For shared conversations, only the creator or admins can send messages

        - Other project members can view shared conversations but cannot send messages


        **Impersonation:**

        - When using impersonation, the message is sent as the impersonated user


        ## Streaming Event Types


        | Type | Description |

        |------|-------------|

        | `streaming_in_progress` | Intermediate event during response generation |

        | `streaming_error` | Error occurred during streaming |

        | `streaming_completed` | Final event with complete chat history |


        ## Payload Types (within streaming_in_progress)


        | Payload Type | Description |

        |--------------|-------------|

        | `start_token_streaming` | Stream is starting |

        | `token_streaming` | Text token being streamed |

        | `tool_call_request` | Tool is being invoked |

        | `tool_call` | Tool execution results |

        | `reasoning` | Reasoning step |'
      operationId: sendMessageStream
      parameters:
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ConversationId'
      - $ref: '#/components/parameters/ImpersonateEmail'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - message
              properties:
                message:
                  type: string
                  description: The user message to send
                  example: What information do you have about product pricing?
      responses:
        '200':
          description: Server-Sent Events stream
          content:
            text/event-stream:
              schema:
                type: string
              examples:
                streaming:
                  summary: Example streaming response
                  value: 'data: {"type_streaming": "streaming_in_progress", "payload": {"type": "start_token_streaming", "content": ""}}


                    data: {"type_streaming": "streaming_in_progress", "payload": {"type": "token_streaming", "content": "The"}}


                    data: {"type_streaming": "streaming_in_progress", "payload": {"type": "token_streaming", "content": "The document"}}


                    data: {"type_streaming": "streaming_in_progress", "payload": {"type": "tool_call", "tool_type": "semantic_chunks", "results": [...]}}


                    data: {"type_streaming": "streaming_completed", "payload": {"conversation_id": "uuid", "chat_history": [...]}}

                    '
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    servers:
    - url: https://eu.app.clarifeye.ai/api/v1
      description: EU
    - url: https://us.app.clarifeye.ai/api/v1
      description: US
  /projects/{project_id}/playground-conversations/all-tags/:
    get:
      tags:
      - Conversations
      summary: Get all conversation tags
      description: 'Retrieve all unique tags used across conversations in the project.


        **Access Control:**

        - Admins see tags from all conversations

        - Regular users see only tags from conversations they created


        **Impersonation:**

        - When using impersonation, returns tags from conversations created by the impersonated user'
      operationId: getAllConversationTags
      parameters:
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ImpersonateEmail'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  tags:
                    type: array
                    items:
                      type: string
                    description: List of unique tags sorted alphabetically
                    example:
                    - analysis
                    - important
                    - review
                  count:
                    type: integer
                    description: Total number of unique tags
                    example: 3
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    servers:
    - url: https://eu.app.clarifeye.ai/api/v1
      description: EU
    - url: https://us.app.clarifeye.ai/api/v1
      description: US
  /projects/{project_id}/playground-conversations/{conversation_id}/share/:
    post:
      tags:
      - Conversations
      summary: Share conversation
      description: 'Share a conversation with all workspace members.


        When shared:

        - The conversation becomes accessible to all project members via direct URL

        - The conversation is hidden from the conversation list (to reduce clutter)

        - Only the creator and admins can send messages (read-only for others)


        **Access Control:**

        - Only the conversation creator or project admins can share a conversation'
      operationId: shareConversation
      parameters:
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ConversationId'
      responses:
        '200':
          description: Conversation shared successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: ok
                  is_shared:
                    type: boolean
                    example: true
        '400':
          description: Conversation is already shared
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          description: Permission denied - only creator or admin can share
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          $ref: '#/components/responses/NotFound'
    servers:
    - url: https://eu.app.clarifeye.ai/api/v1
      description: EU
    - url: https://us.app.clarifeye.ai/api/v1
      description: US
  /projects/{project_id}/playground-conversations/{conversation_id}/unshare/:
    post:
      tags:
      - Conversations
      summary: Unshare conversation
      description: 'Remove sharing from a conversation.


        When unshared:

        - The conversation returns to the creator''s conversation list

        - Other project members lose access to the conversation


        **Access Control:**

        - Only the conversation creator or project admins can unshare a conversation'
      operationId: unshareConversation
      parameters:
      - $ref: '#/components/parameters/ProjectId'
      - $ref: '#/components/parameters/ConversationId'
      responses:
        '200':
          description: Conversation unshared successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: ok
                  is_shared:
                    type: boolean
                    example: false
        '400':
          description: Conversation is not shared
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          description: Permission denied - only creator or admin can unshare
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          $ref: '#/components/responses/NotFound'
    servers:
    - url: https://eu.app.clarifeye.ai/api/v1
      description: EU
    - url: https://us.app.clarifeye.ai/api/v1
      description: US
components:
  schemas:
    ChatMessage:
      type: object
      description: 'A message in the conversation. The `query_id` groups all messages from a single

        user interaction (user message, assistant response, tool calls).

        '
      properties:
        role:
          type: string
          enum:
          - user
          - assistant
        content:
          type: string
        type:
          type: string
          enum:
          - message
          - tool_call
          - reasoning_flow
        query_id:
          type: integer
          description: 'Unique identifier for this query. All messages from one interaction share the same query_id.

            Use this value when submitting feedback on a specific message.

            '
        user_id:
          type: string
          format: uuid
        used_tokens_input:
          type: integer
        used_tokens_output:
          type: integer
        timestamp:
          type: string
          format: date-time
        tool_type:
          type: string
          description: Type of tool (only for tool_call messages)
        input_parameters:
          type: object
          description: Tool input parameters (only for tool_call messages)
        results:
          type: array
          items: {}
          description: Tool results (only for tool_call messages)
    ValidationError:
      type: object
      additionalProperties:
        type: array
        items:
          type: string
      example:
        email:
        - This field is required.
    PaginatedResponse:
      type: object
      properties:
        count:
          type: integer
          description: Total number of results
        next:
          type:
          - string
          - 'null'
          format: uri
          description: URL to next page of results
        previous:
          type:
          - string
          - 'null'
          format: uri
          description: URL to previous page of results
        results:
          type: array
          items: {}
    Conversation:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        type:
          type: string
        created_by:
          type: string
          format: uuid
          description: ID of the user who created the conversation
        chat_history:
          type: array
          items:
            $ref: '#/components/schemas/ChatMessage'
        agent_settings:
          type: string
          format: uuid
        agent_settings_name:
          type: string
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        message_count:
          type: integer
        tool_call_count:
          type: integer
        tokens:
          type: object
          properties:
            input:
              type: integer
            output:
              type: integer
            total:
              type: integer
        tags:
          type: array
          items:
            type: string
        conversation_instructions:
          type:
          - string
          - 'null'
        is_shared:
          type: boolean
          description: Whether the conversation is shared with all workspace members
          default: false
        can_send_messages:
          type: boolean
          description: 'Whether the current user can send messages to this conversation.

            For shared conversations, only the creator and admins can send messages.

            '
        is_archived:
          type: boolean
          description: Whether the conversation has been soft-archived
          default: false
        archived_at:
          type:
          - string
          - 'null'
          format: date-time
          description: Timestamp when the conversation was archived, null if not archived
    Error:
      type: object
      properties:
        error:
          type: string
          description: Error message
      example:
        error: User not found
    ChatMessage_2:
      type: object
      description: 'A message in the conversation. The `query_id` groups all messages from a

        single user interaction (user message, assistant response, tool calls).

        '
      properties:
        role:
          type: string
          enum:
          - user
          - assistant
        content:
          type: string
        type:
          type: string
          enum:
          - message
          - tool_call
          - reasoning_flow
        query_id:
          type: integer
        timestamp:
          type: string
          format: date-time
        tool_type:
          type: string
          description: Type of tool (only for tool_call messages).
        input_parameters:
          type: object
          description: Tool input parameters (only for tool_call messages).
        results:
          type: array
          items: {}
          description: Tool results (only for tool_call messages).
    Conversation_2:
      type: object
      description: A conversation with its complete chat history.
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        type:
          type: string
        created_by:
          type: string
          format: uuid
        chat_history:
          type: array
          items:
            $ref: '#/components/schemas/ChatMessage_2'
        agent_settings:
          type:
          - string
          - 'null'
          format: uuid
        agent_settings_name:
          type:
          - string
          - 'null'
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        tags:
          type: array
          items:
            type: string
        is_shared:
          type: boolean
        is_archived:
          type: boolean
        archived_at:
          type:
          - string
          - 'null'
          format: date-time
  parameters:
    Limit:
      name: limit
      in: query
      description: Maximum number of results per page
      schema:
        type: integer
        default: 100
        minimum: 1
        maximum: 1000
    Offset:
      name: offset
      in: query
      description: Number of results to skip for pagination
      schema:
        type: integer
        default: 0
        minimum: 0
    ProjectId:
      name: project_id
      in: path
      required: true
      description: UUID of the project
      schema:
        type: string
        format: uuid
    ImpersonateEmail:
      name: X-Impersonate-Email
      in: header
      required: false
      description: 'Email of the user to impersonate. Requires `CAN_IMPERSONATE_OTHER_USERS` permission.

        If the target user is not found or does not have access to the project, the request

        proceeds as the authenticated user. Contact Clarifeye to enable this permission.

        '
      schema:
        type: string
        format: email
    ConversationId:
      name: conversation_id
      in: path
      required: true
      description: UUID of the conversation
      schema:
        type: string
        format: uuid
  responses:
    BadRequest:
      description: Bad request - invalid parameters or request body
      content:
        application/json:
          schema:
            oneOf:
            - $ref: '#/components/schemas/Error'
            - $ref: '#/components/schemas/ValidationError'
    NotFound:
      description: Not found - resource does not exist
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: Not found.
    Forbidden:
      description: Forbidden - insufficient permissions
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: You do not have permission to perform this action.
    Unauthorized:
      description: Unauthorized - missing or invalid authentication
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error: Authentication credentials were not provided.
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: 'Use Authorization: Bearer <token>'
    TokenAuth:
      type: apiKey
      in: header
      name: Authorization
      description: 'Use Authorization: Token <token>'
x-refined-from:
- clarifeye-backoffice-openapi-original.yaml
- clarifeye-openapi-original.yaml