Proompty

Proompty is an advanced Retrieval Augmented Generation (RAG) API designed to empower users in seamlessly integrating their data and harnessing the power of customized Large Language Model (LLM) prompts for interactive communication. At its core, Proompty operates through a series of interconnected functionalities that enable users to navigate and manipulate their data effectively.

OpenAPI Specification

proompty-openapi-original.yml Raw ↑
openapi: 3.0.0
info:
  title: Proompty
  version: 1.1.0
  description: |2-

    Proompty is an advanced Retrieval Augmented Generation (RAG) API designed
    to empower users in seamlessly integrating their data and harnessing the
    power of customized Large Language Model (LLM) prompts for interactive
    communication. At its core, Proompty operates through a series of
    interconnected functionalities that enable users to navigate and
    manipulate their data effectively.
  termsOfService: https://proompty.com/terms-of-service
  contact:
    email: [email protected]
externalDocs:
  url: /api.yaml
  description: OpenAPI Specification
servers:
  - url: https://app.proompty.com/api
security:
  - APIKey: []
tags:
  - name: Chat
  - name: Documents
  - name: Me
  - name: Prompt
  - name: Prompts
  - name: Topic
  - name: Topics
  - name: Uploads
  - name: User
    description: User related endpoints
paths:
  /me:
    get:
      tags:
        - Me
        - User
      description: Retrieve user information
      summary: >-
        Retrieves user information within the Proompty API system. By sending a
        GET request to this endpoint, users can obtain detailed data pertaining
        to their profile and associated claims. This includes essential user
        attributes such as email, full name, avatar URL, subscription plan, and
        role. Additionally, the response includes claims regarding the user's
        subscription status, role type, and other pertinent details. In the
        event that the requested user is not found, a 404 error response is
        returned, indicating the absence of the specified user within the
        system.
      responses:
        '200':
          description: User info
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/User'
                properties:
                  claims:
                    $ref: '#/components/schemas/Claims'
        '404':
          description: User not found
  /topics/{topicId}:
    get:
      tags:
        - Topic
        - Topics
      description: Get a topic by ID
      summary: >-
        Retrieve details about a specific topic in the Proompty API. By sending
        a GET request to this endpoint with the corresponding topicId parameter,
        users can access information such as the topic's title, description, and
        any associated documents or chats. The API responds with the topic
        object in JSON format, containing the relevant details. In case the
        requested topic is not found, appropriate error responses are returned
        (404 for topic not found, 500 for other errors), ensuring users receive
        accurate feedback regarding the status of their request.
      parameters:
        - in: path
          name: topicId
          schema:
            type: string
          required: true
        - in: query
          name: include
          schema:
            type: string
          required: false
          description: >-
            Include additional data in the response. Possible values: documents,
            chats.
      responses:
        '200':
          description: Topic
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Topic'
        '404':
          description: Not found
    put:
      tags:
        - Topic
        - Topics
      description: Update a topic by ID
      summary: >-
        Update the details of a specific topic in the Proompty API. By sending a
        PUT request to this endpoint with the corresponding topicId parameter
        and the updated topic object in the request body, users can modify the
        topic's title, description, or other attributes. The API responds with
        the updated topic object in JSON format, containing the new details. In
        case the requested topic is not found, an appropriate error response is
        returned (404), ensuring users receive accurate feedback regarding the
        status of their request.
      parameters:
        - in: path
          name: topicId
          schema:
            type: string
          required: true
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Topic'
      responses:
        '200':
          description: Topic
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Topic'
  /topics/{topicId}/documents/{documentId}:
    get:
      tags:
        - Documents
        - Topic
        - Topics
      description: Get a document by ID
      summary: >-
        Retrieve details about a specific document within a designated topic in
        the Proompty API. By sending a GET request to this endpoint with the
        corresponding topicId and documentId parameters, users can access
        information such as the document's content, creation date, and any
        associated metadata. The API responds with the document object in JSON
        format, containing the relevant details. In case the requested document
        or topic is not found, appropriate error responses are returned (404 for
        document not found, 500 for other errors), ensuring users receive
        accurate feedback regarding the status of their request.
      parameters:
        - in: path
          name: topicId
          schema:
            type: string
          required: true
        - in: path
          name: documentId
          schema:
            type: string
          required: true
      responses:
        '200':
          description: Document
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Document'
        '404':
          description: Not found
    delete:
      tags:
        - Documents
        - Topic
        - Topics
      description: Delete a document by ID
      parameters:
        - in: path
          name: topicId
          schema:
            type: string
          required: true
        - in: path
          name: documentId
          schema:
            type: string
          required: true
      responses:
        '200':
          description: ok
        '404':
          description: Not found
      summary: >-
        Delete a specific document within a designated topic in the Proompty
        API. Users can send a DELETE request to this endpoint with the relevant
        topicId and documentId parameters to remove the specified document from
        the topic. The API responds with a success message in JSON format,
        confirming that the document has been successfully deleted. In case the
        requested document or topic is not found, appropriate error responses
        are returned (404 for document not found, 500 for other errors),
        ensuring users receive accurate feedback regarding the status of their
        request.
  /topics/{topicId}/documents/upload:
    post:
      parameters:
        - in: path
          name: topicId
          schema:
            type: string
          required: true
      tags:
        - Documents
        - Topic
        - Topics
        - Uploads
      description: Upload a document to a topic
      summary: >-
        Upload a document to a specific topic. Users can send a POST request to
        this endpoint with the relevant topicId parameter and a document file to
        upload a new document to the specified topic. The API responds with a
        JSON object containing the uploaded document details and any relevant
        metadata. This endpoint enables users to efficiently upload and manage
        documents within topics, facilitating seamless access and sharing of
        resources across the Proompty platform. In case the document already
        exists within the specified topic, the endpoint returns an appropriate
        error response (409), indicating that the document is already present in
        the topic.
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
      responses:
        '201':
          description: Document uploaded
          content:
            application/json:
              schema:
                type: object
                properties:
                  document:
                    $ref: '#/components/schemas/Document'
        '404':
          description: Topic not found
        '409':
          description: Document already exists
        '500':
          description: Error uploading document
  /topics/{topicId}/prompts/{promptId}/chat:
    post:
      parameters:
        - in: path
          name: topicId
          schema:
            type: string
          required: true
        - in: path
          name: promptId
          schema:
            type: string
          required: true
      tags:
        - Chat
        - Prompt
        - Prompts
        - Topic
        - Topics
      description: >
        Chat with a Prompt AI with a message or a binary stream using
        content-type: application/octet-stream (see Request body dropdown)
      summary: >
        Retrieves user information within the Proompty API system. By sending a
        GET request to this endpoint, users can obtain detailed data pertaining
        to their profile and associated claims. This includes essential user
        attributes such as email, full name, avatar URL, subscription plan, and
        role. Additionally, the response includes claims regarding the user's
        subscription status, role type, and other pertinent details. In the
        event that the requested user is not found, a 404 error response is
        returned, indicating the absence of the specified user within the
        system.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              properties:
                message:
                  type: string
                  description: The message to send to the prompt AI.
                  example: What is your favorite color?
                model:
                  type: string
                  description: The model to use for the response. Default is gpt4.
                  example: gpt3 | gpt4 | gpt4o
                temperature:
                  type: string
                  description: The temperature to use for the response. Default is 0.15.
                  example: '0.15'
                maxTokens:
                  type: string
                  description: >-
                    The maximum number of tokens to generate for the response.
                    Default is 500.
                  example: '500'
          application/octet-stream:
            schema:
              type: string
              format: binary
              description: The binary stream to be uploaded.
      responses:
        '200':
          description: Prompt
          content:
            application/json:
              schema:
                properties:
                  text:
                    type: string
                    description: The response from the prompt AIt.
                    example: My favorite color is blue.
                  model:
                    type: string
                    description: The model used to generate the response.
                    example: gpt4
                  sourceDocuments:
                    type: array
                    items:
                      type: object
                      properties:
                        metadata:
                          type: object
                          properties:
                            documentId:
                              type: string
                            filename:
                              type: string
                            topicId:
                              type: string
        '404':
          description: Prompt not found
        '500':
          description: Error getting prompt
  /topics/{topicId}/prompts/{promptId}:
    get:
      parameters:
        - in: path
          name: topicId
          schema:
            type: string
          required: true
        - in: path
          name: promptId
          schema:
            type: string
          required: true
      tags:
        - Prompt
        - Prompts
        - Topic
        - Topics
      description: Retrieves a Prompt
      summary: >-
        Retrieve details about a specific prompt within a designated topic in
        the Proompty API. By sending a GET request to this endpoint with the
        corresponding topicId and promptId parameters, users can access
        information such as the prompt's content, creation date, and any
        associated metadata. The API responds with the prompt object in JSON
        format, containing the relevant details. In case the requested prompt or
        topic is not found, appropriate error responses are returned (404 for
        prompt not found, 500 for other errors), ensuring users receive accurate
        feedback regarding the status of their request.
      responses:
        '200':
          description: Prompt
          content:
            application/json:
              schema:
                type: object
                $ref: '#/components/schemas/Prompt'
        '404':
          description: Prompt not found
        '500':
          description: Error getting prompt
    put:
      parameters:
        - in: path
          name: topicId
          schema:
            type: string
          required: true
        - in: path
          name: promptId
          schema:
            type: string
          required: true
      tags:
        - Prompt
        - Prompts
        - Topic
        - Topics
      description: Update a Prompt
      summary: >-
        Proompty Update a specific prompt within a designated topic. Users can send a PUT request to this endpoint with the corresponding topicId and promptId parameters, along with a JSON payload containing the updated prompt information. This enables users to modify aspects of the prompt such as its content, metadata, or any other relevant properties. Upon successful execution, the endpoint responds with the updated prompt object in JSON format, providing confirmation of the changes made. In case the specified prompt or topic is not found, the endpoint returns an appropriate error response (404 for prompt not found, 500 for other errors), ensuring transparent communication and accurate handling of requests.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Prompt'
      responses:
        '200':
          description: Prompt
          content:
            application/json:
              schema:
                type: object
                $ref: '#/components/schemas/Prompt'
        '404':
          description: Prompt not found
        '500':
          description: Error getting prompt
    delete:
      parameters:
        - in: path
          name: topicId
          schema:
            type: string
          required: true
        - in: path
          name: promptId
          schema:
            type: string
          required: true
      tags:
        - Prompt
        - Prompts
        - Topic
        - Topics
      description: Deletes a Prompt
      summary: >-
        Remove a specific prompt associated with a particular topic. To utilize
        this endpoint, users send a DELETE request with the relevant topicId and
        promptId parameters. Upon successful execution, the specified prompt is
        permanently deleted from the system. The API responds with a
        confirmation message indicating the successful deletion of the prompt.
        In the event that the requested prompt or topic is not found,
        appropriate error responses are returned (404 for prompt not found, 500
        for other errors). This endpoint provides users with the capability to
        manage prompts effectively within their topics, ensuring streamlined
        content management within the Proompty platform.
      responses:
        '200':
          description: Confirmation
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                    example: Prompt deleted
        '404':
          description: Prompt not found
        '500':
          description: Error getting prompt
  /topics/{topicId}/prompts:
    get:
      parameters:
        - in: path
          name: topicId
          schema:
            type: string
          required: true
      tags:
        - Prompts
        - Topic
        - Topics
      description: Retrieve all prompts for a topic
      summary: >-
        Retrieve a list of all prompts associated with a specific topic. Users
        can send a GET request to this endpoint with the relevant topicId
        parameter to access comprehensive information about each prompt within
        the specified topic. The API responds with an array of prompt objects in
        JSON format, containing details such as prompt content, creation dates,
        and any relevant metadata. This endpoint facilitates efficient
        management and retrieval of prompts within topics, allowing users to
        access and utilize prompts effectively in their interactions with the
        Proompty platform. In case the requested topic is not found, the
        endpoint returns an appropriate error response (404), ensuring clarity
        and accuracy in communication between users and the API.
      responses:
        '200':
          description: Prompts
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Prompt'
        '404':
          description: Topic not found
        '500':
          description: Error getting prompts
    post:
      parameters:
        - in: path
          name: topicId
          schema:
            type: string
          required: true
      tags:
        - Prompts
        - Topic
        - Topics
      description: Create a prompt for a topic
      summary: >-
        Create a new prompts within a specified topic. Users can send a POST
        request to this endpoint, including the topicId parameter in the URL
        path and a JSON payload containing the details of the prompt to be
        created. This payload typically includes the prompt content, along with
        any relevant metadata. Upon successful execution, the API responds with
        the newly created prompt object in JSON format, confirming its addition
        to the specified topic. If there are any issues with the request, such
        as invalid input data or the specified topic not being found, the
        endpoint returns an appropriate error response (400 for bad request, 404
        for topic not found), ensuring users receive accurate feedback regarding
        the status of their request. This endpoint offers users a
        straightforward method for adding prompts to topics, facilitating the
        efficient management and organization of content within the Proompty
        platform.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Prompt'
      responses:
        '200':
          description: Prompt
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Prompt'
        '400':
          description: Bad request
        '404':
          description: Topic not found
        '500':
          description: Error creating prompt
  /topics:
    get:
      tags:
        - Topics
      description: Get all topics
      summary: >-
        Retrieve all topics in the Proompty API. By sending a GET request to
        this endpoint, users can access a list of all topics available in the
        system. The API responds with an array of topic objects in JSON format,
        containing the relevant details. In case no topics are found, an
        appropriate error response is returned (404), ensuring users receive
        accurate feedback regarding the status of their request.
      parameters:
        - in: query
          name: include
          schema:
            type: string
          required: false
          description: 'Include additional data in the response. Possible values: chats.'
      responses:
        '200':
          description: Topic[]
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Topic'
        '404':
          description: Not found
    post:
      tags:
        - Topics
      description: Create a topic
      summary: >-
        Create a new topic in the Proompty API. By sending a POST request to
        this endpoint with the new topic object in the request body, users can
        create a new topic with the specified attributes. The API responds with
        the newly created topic object in JSON format, containing the relevant
        details. In case the maximum number of topics allowed on the user's plan
        is reached, an appropriate error response is returned (400), ensuring
        users receive accurate feedback regarding the status of their request.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Topic'
      responses:
        '200':
          description: Topic
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Topic'
        '400':
          description: Maximum topics reached
        '500':
          description: Internal server error