openapi: 3.0.3
info:
  title: 'DevJock API Documentation'
  description: ''
  version: 1.0.0
servers:
  -
    url: 'https://api.devjockproto.com'
paths:
  /v1.0/agents/chat:
    post:
      summary: Preparer
      operationId: preparer
      description: 'Send a message to an AI agent chat session. Creates new sessions or retrieves existing ones, attaches agent system prompts and tools, logs all messages, and returns the conversation. Does not invoke the LLM directly—only prepares and persists data.'
      parameters:
        -
          in: header
          name: X-Server-Apikey
          description: ''
          example: E79GH-UIL999
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  session:
                    id: 123
                    unique_session_id: 550e8400-e29b-41d4-a716-446655440000
                    name: 'Project Discussion'
                    ai_model: claude-sonnet-4
                  messages:
                    -
                      id: 456
                      message_uuid: 550e8400-e29b-41d4-a716-446655440001
                      ai_model: claude-sonnet-4
                      message: 'Hello, how can I help?'
                      message_original: null
                      branch: 1
                      created_on: '2025-10-31 14:30:00'
                      user:
                        userid: 42
                        name: 'John Doe'
                      role:
                        id: 1
                        type: user
                      is_system_message: 0
                      is_hidden: 0
                      token_count: 57
                  tools:
                    -
                      id: 7
                      tool_name: get_code
                      mcp_server: gitlab
                properties:
                  session:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 123
                      unique_session_id:
                        type: string
                        example: 550e8400-e29b-41d4-a716-446655440000
                      name:
                        type: string
                        example: 'Project Discussion'
                      ai_model:
                        type: string
                        example: claude-sonnet-4
                  messages:
                    type: array
                    example:
                      -
                        id: 456
                        message_uuid: 550e8400-e29b-41d4-a716-446655440001
                        ai_model: claude-sonnet-4
                        message: 'Hello, how can I help?'
                        message_original: null
                        branch: 1
                        created_on: '2025-10-31 14:30:00'
                        user:
                          userid: 42
                          name: 'John Doe'
                        role:
                          id: 1
                          type: user
                        is_system_message: 0
                        is_hidden: 0
                        token_count: 57
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 456
                        message_uuid:
                          type: string
                          example: 550e8400-e29b-41d4-a716-446655440001
                        ai_model:
                          type: string
                          example: claude-sonnet-4
                        message:
                          type: string
                          example: 'Hello, how can I help?'
                        message_original:
                          type: string
                          example: null
                        branch:
                          type: integer
                          example: 1
                        created_on:
                          type: string
                          example: '2025-10-31 14:30:00'
                        user:
                          type: object
                          properties:
                            userid:
                              type: integer
                              example: 42
                            name:
                              type: string
                              example: 'John Doe'
                        role:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 1
                            type:
                              type: string
                              example: user
                        is_system_message:
                          type: integer
                          example: 0
                        is_hidden:
                          type: integer
                          example: 0
                        token_count:
                          type: integer
                          example: 57
                  tools:
                    type: array
                    example:
                      -
                        id: 7
                        tool_name: get_code
                        mcp_server: gitlab
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 7
                        tool_name:
                          type: string
                          example: get_code
                        mcp_server:
                          type: string
                          example: gitlab
      tags:
        - 'AI Agents'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                workspace_id:
                  type: integer
                  description: 'The workspace ID. Must be a workspace the user is a member of.'
                  example: 1
                  nullable: false
                chat_id:
                  type: integer
                  description: 'The chat session ID. Use 0 or omit to create a new session.'
                  example: null
                  nullable: false
                agent_id:
                  type: integer
                  description: 'The AI agent template ID to use. Must be active and available in the workspace. Defaults to 0 (no agent).'
                  example: null
                  nullable: false
                task_id:
                  type: string
                  description: 'Optional task ID in format "workspaceId-todoId". Associates chat with task and uses task''s default agent if no agent specified.'
                  example: null
                  nullable: false
                make_sub_task:
                  type: integer
                  description: 'Optional flag to create subtask. If 1, creates a subtask and attaches chat session to it. Only used if task_id is provided and creating a new chat session. Ignored for existing chat sessions. Defaults to 0.'
                  example: null
                  nullable: false
                bypass_all_agents:
                  type: integer
                  description: 'Optional flag to bypass all agent loading. If 1, no agent data will be loaded into the chat. The param agent_id will be ignored. Ignores any agent attached to a passed in task_id. Defaults to 0.'
                  example: null
                  nullable: false
                chat_session_name:
                  type: string
                  description: "Optional custom name for new chat sessions. Defaults to 'New Chat'. Max 255 characters. Only used when creating new sessions."
                  example: null
                  nullable: false
                chat_session_uuid:
                  type: string
                  description: 'Optional custom UUID for new chat sessions. Defaults to auto-generated UUID v4. Must be valid UUID format. Only used when creating new sessions.'
                  example: null
                  nullable: false
                message:
                  type: string
                  description: 'The message to send.'
                  example: '"Can you help me with this code?"'
                  nullable: false
                message_original:
                  type: string
                  description: 'Optional original unprocessed message.'
                  example: null
                  nullable: false
                role_id:
                  type: integer
                  description: 'The message role. Must be 1 (user), 2 (assistant), or 9 (system). Defaults to 1.'
                  example: null
                  nullable: false
                message_token_count:
                  type: integer
                  description: 'Optional token count for the message. Defaults to 0.'
                  example: null
                  nullable: false
                ai_model:
                  type: string
                  description: 'Optional AI model name to use. Falls back to agent/task default or system default.'
                  example: '"gpt-4"'
                  nullable: false
                is_deleted:
                  type: integer
                  description: 'Optional flag to mark message as deleted. Must be 0 or 1. Defaults to 0.'
                  example: null
                  nullable: false
                is_system_message:
                  type: integer
                  description: 'Optional flag to mark message as system message. Must be 0 or 1. Defaults to 0.'
                  example: null
                  nullable: false
                is_hidden:
                  type: integer
                  description: 'Optional flag to mark message as hidden. Must be 0 or 1. Defaults to 0.'
                  example: null
                  nullable: false
                branch:
                  type: integer
                  description: 'Optional branch identifier for conversation trees. Must be positive integer. Defaults to 1.'
                  example: null
                  nullable: false
                system_prompt:
                  type: mixed
                  description: 'Optional system prompt data (string, array, or object). Inserted as system message before user message. Will be JSON-encoded if not a string. Only inserted for new chat sessions.'
                  example: null
                  nullable: false
                entities:
                  type: string
                  description: "Optional JSON array of entity mappings. Each entity must have 'id' (entity type), 'value' (external ID), and optional 'description'. Only processed for new chat sessions."
                  example: '"[{\"id\":1,\"value\":\"12345\",\"description\":\"John Doe\"}]"'
                  nullable: false
              required:
                - workspace_id
                - message
  /v1.0/agents/chat/messages:
    get:
      summary: 'Get Messages'
      operationId: getMessages
      description: "Retrieve all messages from an existing AI agent chat session.\nUser must have access to the workspace and the chat session.\nPrivate chats can only be accessed by their creator."
      parameters:
        -
          in: query
          name: chat_id
          description: 'The chat session ID.'
          example: null
          required: true
          schema:
            type: integer
            description: 'The chat session ID.'
            example: null
            nullable: false
        -
          in: query
          name: workspace_id
          description: 'The workspace ID.'
          example: null
          required: true
          schema:
            type: integer
            description: 'The workspace ID.'
            example: null
            nullable: false
        -
          in: header
          name: X-Server-Apikey
          description: ''
          example: E79GH-UIL999
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  messages:
                    -
                      id: 456
                      message_uuid: 550e8400-e29b-41d4-a716-446655440001
                      ai_model: claude-sonnet-4
                      message: 'Hello, how can I help?'
                      message_original: null
                      branch: 1
                      created_on: '2025-10-31 14:30:00'
                      user:
                        userid: 42
                        name: 'John Doe'
                      role:
                        id: 1
                        type: user
                      is_system_message: 0
                      is_hidden: 0
                      token_count: 57
                properties:
                  messages:
                    type: array
                    example:
                      -
                        id: 456
                        message_uuid: 550e8400-e29b-41d4-a716-446655440001
                        ai_model: claude-sonnet-4
                        message: 'Hello, how can I help?'
                        message_original: null
                        branch: 1
                        created_on: '2025-10-31 14:30:00'
                        user:
                          userid: 42
                          name: 'John Doe'
                        role:
                          id: 1
                          type: user
                        is_system_message: 0
                        is_hidden: 0
                        token_count: 57
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 456
                        message_uuid:
                          type: string
                          example: 550e8400-e29b-41d4-a716-446655440001
                        ai_model:
                          type: string
                          example: claude-sonnet-4
                        message:
                          type: string
                          example: 'Hello, how can I help?'
                        message_original:
                          type: string
                          example: null
                        branch:
                          type: integer
                          example: 1
                        created_on:
                          type: string
                          example: '2025-10-31 14:30:00'
                        user:
                          type: object
                          properties:
                            userid:
                              type: integer
                              example: 42
                            name:
                              type: string
                              example: 'John Doe'
                        role:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 1
                            type:
                              type: string
                              example: user
                        is_system_message:
                          type: integer
                          example: 0
                        is_hidden:
                          type: integer
                          example: 0
                        token_count:
                          type: integer
                          example: 57
      tags:
        - 'AI Agents'
  /v1.0/chats/completions:
    post:
      summary: 'Version 1'
      operationId: version1
      description: 'Creates a model response for the given chat conversation.'
      parameters:
        -
          in: header
          name: Connection
          description: ''
          example: keep-alive
          schema:
            type: string
        -
          in: header
          name: X-Server-Apikey
          description: ''
          example: E79GH-UIL999
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{\n   \"id\": \"chatcmpl-123\",\n   \"object\": \"chat.completion\",\n   \"created\": 1677652288,\n   \"model\": \"gpt-3.5-turbo-0125\",\n   \"system_fingerprint\": \"fp_44709d6fcb\",\n   \"choices\": [{\n       \"index\": 0,\n       \"message\": {\n           \"role\": \"assistant\",\n            \"content\": \"\\n\\nThis image shows a wooden boardwalk extending through a lush green marshland.\",\n        },\n        \"logprobs\": null,\n        \"finish_reason\": \"stop\"\n    }],\n    \"usage\": {\n        \"prompt_tokens\": 9,\n        \"completion_tokens\": 12,\n        \"total_tokens\": 21\n    }\n}"
      tags:
        - 'AI Chats'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                messages:
                  type: array
                  description: ''
                  example:
                    - []
                  items:
                    type: object
                    properties:
                      role:
                        type: string
                        description: 'The role of the messages author, in this case `user`.'
                        example: user
                        nullable: false
                        enum:
                          - system
                          - user
                          - assistant
                          - tool
                      content:
                        type: string
                        description: 'The contents of the user message.'
                        example: 'Please reply "OK"'
                        nullable: false
                    required:
                      - role
                      - content
                model:
                  type: string
                  description: 'ID of the model to use.'
                  example: gpt-4o-mini
                  nullable: false
                  enum:
                    - gpt-4o
                    - gpt-4o-mini
                    - gpt-4.1
                    - gpt-4.1-nano
                    - gpt-4.1-mini
                    - o1
                    - o1-mini
                    - o3
                    - o3-mini
                    - o4-mini
                    - gpt-5
                    - gpt-5-chat-latest
                    - gpt-5-mini
                    - gpt-5-nano
                frequency_penalty:
                  type: integer
                  description: '"frequency_penalty" that influences the probability of output tokens based on their frequency of occurrence in the generated output. Must be at least -2. Must not be greater than 2.'
                  example: 0
                  nullable: false
                logit_bias:
                  type: string
                  description: 'Modify the likelihood of specified tokens appearing in the completion. Accepts a JSON object that maps tokens (specified by their token ID in the tokenizer) to an associated bias value from -100 to 100. Mathematically, the bias is added to the logits generated by the model prior to sampling. The exact effect will vary per model, but values between -1 and 1 should decrease or increase likelihood of selection; values like -100 or 100 should result in a ban or exclusive selection of the relevant token.'
                  example: null
                  nullable: false
                logprobs:
                  type: boolean
                  description: 'Whether to return log probabilities of the output tokens or not. If true, returns the log probabilities of each output token returned in the `content` of `message`.'
                  example: true
                  nullable: false
                top_logprobs:
                  type: integer
                  description: 'An integer between 0 and 20 specifying the number of most likely tokens to return at each token position, each with an associated log probability. `logprobs` must be set to `true` if this parameter is used. This field is required when <code>logprobs</code> is <code>true</code>. Must be at least 0. Must not be greater than 20.'
                  example: 18
                  nullable: false
                max_tokens:
                  type: integer
                  description: "The maximum number of tokens that can be generated in the chat completion. The total length of input tokens and generated tokens is limited by the model's context length."
                  example: 4000
                  nullable: false
                'n':
                  type: integer
                  description: 'How many chat completion choices to generate for each input message. Note that you will be charged based on the number of generated tokens across all of the choices. Keep `n` as `1` to minimize costs. Must be at least 1. Must not be greater than 128.'
                  example: 1
                  nullable: false
                presence_penalty:
                  type: integer
                  description: '"presence_penalty" is parameter that used to encourage the model to include a diverse range of tokens in the generated text.It is a value that is subtracted from the log-probability of a token each time it is generated.A higher presence_penalty value will result in the model being more likely to generate tokens that have not yet been included in the generated text. Must be at least -2. Must not be greater than 2.'
                  example: 0
                  nullable: false
                response_format:
                  type: string
                  description: 'An object specifying the format that the model must output. Compatible with GPT-4 Turbo and all GPT-3.5 Turbo models newer than `gpt-3.5-turbo-1106`. Setting to `{ "type": "json_object" }` enables JSON mode, which guarantees the message the model generates is valid JSON. **Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself via a system or user message. Without this, the model may generate an unending stream of whitespace until the generation reaches the token limit, resulting in a long-running and seemingly "stuck" request. Also note that the message content may be partially cut off if `finish_reason="length"`, which indicates the generation exceeded `max_tokens` or the conversation exceeded the max context length.'
                  example: null
                  nullable: false
                seed:
                  type: integer
                  description: 'This feature is in Beta. If specified, our system will make a best effort to sample deterministically, such that repeated requests with the same `seed` and parameters should return the same result. Determinism is not guaranteed, and you should refer to the `system_fingerprint` response parameter to monitor changes in the backend. Must be at least -9223372036854775808. Must not be greater than 9223372036854775807.'
                  example: 14
                  nullable: false
                stop:
                  type: object
                  description: 'Up to 4 sequences where the API will stop generating further tokens. Must not have more than 4 items.'
                  example: null
                  nullable: false
                  properties: {  }
                stream:
                  type: boolean
                  description: ''
                  example: false
                  nullable: false
                temperature:
                  type: number
                  description: '"Temperature" is a setting that controls randomness when picking words during text creation.Low values of temperature make the text more predictable and consistent, while high values let more freedom and creativity into the mix, but can also make things less consistent. Must be at least 0. Must not be greater than 2.'
                  example: 0.0
                  nullable: false
                top_p:
                  type: number
                  description: '"top_p" or nucleus sampling is a setting that decides how many possible words to consider.A high "top_p" value means the model looks at more possible words, even the less likely ones, which makes the generated text more diverse. Must be at least 0. Must not be greater than 1.'
                  example: 0.0
                  nullable: false
                tools:
                  type: object
                  description: 'A list of tools the model may call. Currently, only functions are supported as a tool. Use this to provide a list of functions the model may generate JSON inputs for. A max of 128 functions are supported.'
                  example: null
                  nullable: false
                  properties: {  }
                tool_choice:
                  type: string
                  description: 'Controls which (if any) tool is called by the model. `none` means the model will not call any tool and instead generates a message. `auto` means the model can pick between generating a message or calling one or more tools. `required` means the model must call one or more tools. Specifying a particular tool via `{"type": "function", "function": {"name": "my_function"}}` forces the model to call that tool. `none` is the default when no tools are present. `auto` is the default if tools are present.'
                  example: null
                  nullable: false
                system_functions:
                  type: array
                  description: 'These are custom process commands that the Completions endpoint can execute. They are useful for running multiple operations, such as retrieving and reading files from a task in one command.'
                  example:
                    - get_code
                  items:
                    type: string
                    enum:
                      - extract_text_from_task_attachments
                      - extract_text_from_url
                      - transcribe_task_files
              required:
                - messages
                - model
  /v1.0/chats/prism/completions:
    post:
      summary: 'Version 2'
      operationId: version2
      description: 'Creates a model response for the given chat conversation by using Prism.'
      parameters:
        -
          in: header
          name: Connection
          description: ''
          example: keep-alive
          schema:
            type: string
        -
          in: header
          name: X-Server-Apikey
          description: ''
          example: E79GH-UIL999
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{\n   \"text\": \"This is a response from the model.\",\n}"
      tags:
        - 'AI Chats'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                messages:
                  type: array
                  description: ''
                  example:
                    - []
                  items:
                    type: object
                    properties:
                      role:
                        type: string
                        description: 'The role of the messages author, in this case `user`.'
                        example: user
                        nullable: false
                        enum:
                          - system
                          - user
                          - assistant
                      content:
                        type: string
                        description: 'The contents of the user message.'
                        example: 'Please reply "OK"'
                        nullable: false
                    required:
                      - role
                      - content
                model:
                  type: string
                  description: 'ID of the model to use.'
                  example: gpt-4o-mini
                  nullable: false
                  enum:
                    - gpt-4o
                    - gpt-4o-mini
                    - gpt-4.1
                    - gpt-4.1-nano
                    - gpt-4.1-mini
                    - o1
                    - o1-mini
                    - o3
                    - o3-mini
                    - o4-mini
                    - gpt-5
                    - gpt-5-chat-latest
                    - gpt-5-mini
                    - gpt-5-nano
                    - claude-3-5-sonnet-latest
                    - claude-3-5-haiku-latest
                    - claude-3-opus-latest
                    - claude-3-sonnet-20240229
                    - claude-3-haiku-20240307
                    - claude-3-7-sonnet-latest
                    - claude-sonnet-4-0
                    - claude-sonnet-4-5
                    - claude-opus-4-0
                    - claude-opus-4-1
                temperature:
                  type: number
                  description: '"Temperature" is a setting that controls randomness when picking words during text creation.Low values of temperature make the text more predictable and consistent, while high values let more freedom and creativity into the mix, but can also make things less consistent. Must be at least 0. Must not be greater than 2.'
                  example: 0.0
                  nullable: false
                chatid:
                  type: integer
                  description: 'ID of the chat group or session.'
                  example: 0
                  nullable: false
                dj_ai_version:
                  type: integer
                  description: 'The AI version using on Devjock.'
                  example: 5
                  nullable: false
                tool_ids:
                  type: array
                  description: ''
                  example:
                    - 12
                  items:
                    type: integer
              required:
                - messages
                - model
  /v1.0/prompts/create:
    post:
      summary: Create
      operationId: create
      description: "Create a new AI prompt with the provided information. All required fields must be present.\nThe prompt must be assigned to at least one workspace where the user is a team member."
      parameters:
        -
          in: header
          name: X-Server-Apikey
          description: ''
          example: E79GH-UIL999
          schema:
            type: string
      responses:
        201:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  create: success
                  prompt_id: 42
                properties:
                  create:
                    type: string
                    example: success
                  prompt_id:
                    type: integer
                    example: 42
      tags:
        - 'AI Prompts'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: 'The name/title of the prompt.'
                  example: null
                  nullable: false
                description:
                  type: string
                  description: 'The description of what this prompt does.'
                  example: null
                  nullable: false
                prompt:
                  type: string
                  description: 'The actual prompt text/template.'
                  example: null
                  nullable: false
                workspace_ids:
                  type: string
                  description: 'A single id or comma-separated workspace IDs to assign this prompt to. User must be a member of all specified workspaces.'
                  example: null
                  nullable: false
                ai_prompt_category_id:
                  type: integer
                  description: 'The category ID for this prompt. Must be an active category.'
                  example: null
                  nullable: false
                type_id:
                  type: integer
                  description: 'The type ID for this prompt. Must be an active type.'
                  example: null
                  nullable: false
                sort_order:
                  type: integer
                  description: 'The sort order for displaying this prompt.'
                  example: null
                  nullable: false
              required:
                - name
                - description
                - prompt
                - workspace_ids
  /v1.0/prompts/get:
    get:
      summary: Read
      operationId: read
      description: "Will return information about a specific AI prompt. The prompt must be associated\nwith a workspace where the authenticated user is a team member."
      parameters:
        -
          in: query
          name: prompt_id
          description: 'The prompt ID to retrieve.'
          example: 1
          required: true
          schema:
            type: integer
            description: 'The prompt ID to retrieve.'
            example: 1
            nullable: false
        -
          in: header
          name: X-Server-Apikey
          description: ''
          example: E79GH-UIL999
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  id: 1
                  category_id: 5
                  category_name: CODE
                  name: 'Code Review Prompt'
                  description: 'Reviews code for best practices'
                  prompt: 'Please review the following code...'
                  type_id: 1
                  type: default
                  active: true
                  workspace_ids:
                    - 1
                    - 2
                properties:
                  id:
                    type: integer
                    example: 1
                  category_id:
                    type: integer
                    example: 5
                  category_name:
                    type: string
                    example: CODE
                  name:
                    type: string
                    example: 'Code Review Prompt'
                  description:
                    type: string
                    example: 'Reviews code for best practices'
                  prompt:
                    type: string
                    example: 'Please review the following code...'
                  type_id:
                    type: integer
                    example: 1
                  type:
                    type: string
                    example: default
                  active:
                    type: boolean
                    example: true
                  workspace_ids:
                    type: array
                    example:
                      - 1
                      - 2
                    items:
                      type: integer
      tags:
        - 'AI Prompts'
  /v1.0/prompts/list:
    get:
      summary: List
      operationId: list
      description: "Will return a list of AI prompts that are associated with workspaces where\nthe authenticated user is a team member. Only prompts with active categories\nare returned.\n\n**Active/Inactive Filtering:**\nBy default only active prompts are returned. To include inactive prompts,\ninclude the `show_inactive` query parameter.\n\n**Workspace IDs Field:**\nThe `workspace_ids` field is omitted from the response when filtering by `workspace_id`,\nas the workspace context is already known from your filter. To see all workspace\nassociations for a prompt, query without the workspace_id filter."
      parameters:
        -
          in: query
          name: page
          description: ''
          example: 1
          required: false
          schema:
            type: integer
            description: ''
            example: 1
            nullable: false
        -
          in: query
          name: workspace_id
          description: 'A single workspace id or a comma separated list of workspace ids.'
          example: '"1,2,3"'
          required: false
          schema:
            type: string
            description: 'A single workspace id or a comma separated list of workspace ids.'
            example: '"1,2,3"'
            nullable: false
        -
          in: query
          name: category_id
          description: 'A single category id or a comma separated list of category ids to filter by.'
          example: '"5,3"'
          required: false
          schema:
            type: string
            description: 'A single category id or a comma separated list of category ids to filter by.'
            example: '"5,3"'
            nullable: false
        -
          in: query
          name: type_id
          description: 'A single type id or a comma separated list of type ids to filter by.'
          example: '"1,2"'
          required: false
          schema:
            type: string
            description: 'A single type id or a comma separated list of type ids to filter by.'
            example: '"1,2"'
            nullable: false
        -
          in: query
          name: show_inactive
          description: 'Will return prompts marked inactive if included.'
          example: '"true"'
          required: false
          schema:
            type: string
            description: 'Will return prompts marked inactive if included.'
            example: '"true"'
            nullable: false
        -
          in: query
          name: sort_by
          description: "Optional. Sort results by 'id', 'name', or 'default'. Defaults to 'default'."
          example: null
          required: false
          schema:
            type: string
            description: "Optional. Sort results by 'id', 'name', or 'default'. Defaults to 'default'."
            example: null
            nullable: false
        -
          in: query
          name: sort_dir
          description: "Optional. Sort direction 'asc', 'desc', or 'default'. Defaults to 'default'."
          example: null
          required: false
          schema:
            type: string
            description: "Optional. Sort direction 'asc', 'desc', or 'default'. Defaults to 'default'."
            example: null
            nullable: false
        -
          in: header
          name: X-Server-Apikey
          description: ''
          example: E79GH-UIL999
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  total_prompts: 45
                  this_page: 1
                  has_more_pages: false
                  total_pages: 1
                  count_prompts_returned: 45
                  prompts:
                    -
                      id: 1
                      name: 'Code Review Prompt'
                      active: true
                      type:
                        id: 1
                        name: Review
                      category:
                        id: 1
                        name: Development
                      workspace_ids:
                        - 1
                        - 2
                        - 3
                properties:
                  total_prompts:
                    type: integer
                    example: 45
                  this_page:
                    type: integer
                    example: 1
                  has_more_pages:
                    type: boolean
                    example: false
                  total_pages:
                    type: integer
                    example: 1
                  count_prompts_returned:
                    type: integer
                    example: 45
                  prompts:
                    type: array
                    example:
                      -
                        id: 1
                        name: 'Code Review Prompt'
                        active: true
                        type:
                          id: 1
                          name: Review
                        category:
                          id: 1
                          name: Development
                        workspace_ids:
                          - 1
                          - 2
                          - 3
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 1
                        name:
                          type: string
                          example: 'Code Review Prompt'
                        active:
                          type: boolean
                          example: true
                        type:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 1
                            name:
                              type: string
                              example: Review
                        category:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 1
                            name:
                              type: string
                              example: Development
                        workspace_ids:
                          type: array
                          example:
                            - 1
                            - 2
                            - 3
                          items:
                            type: integer
      tags:
        - 'AI Prompts'
  /v1.0/prompts/update:
    post:
      summary: Update
      operationId: update
      description: "Update an AI prompt with new information. At least one Body Parameter must be present.\nThe current state of the prompt is automatically archived to the change log before updating."
      parameters:
        -
          in: query
          name: prompt_id
          description: 'The prompt ID to update.'
          example: 5
          required: true
          schema:
            type: integer
            description: 'The prompt ID to update.'
            example: 5
            nullable: false
        -
          in: header
          name: X-Server-Apikey
          description: ''
          example: E79GH-UIL999
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  update: success
                properties:
                  update:
                    type: string
                    example: success
        400:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: 'Invalid prompt_id'
                properties:
                  error:
                    type: string
                    example: 'Invalid prompt_id'
      tags:
        - 'AI Prompts'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                ai_prompt_category_id:
                  type: integer
                  description: 'The category ID for this prompt. Must be an active category.'
                  example: null
                  nullable: false
                type_id:
                  type: integer
                  description: 'The type ID for this prompt. Must be an active type.'
                  example: 1
                  nullable: false
                name:
                  type: string
                  description: 'The name/title of the prompt.'
                  example: '"Code Review Assistant"'
                  nullable: false
                description:
                  type: string
                  description: 'The description of what this prompt does.'
                  example: '"Reviews code for best practices and security issues"'
                  nullable: false
                prompt:
                  type: string
                  description: 'The actual prompt text/template.'
                  example: null
                  nullable: false
                workspace_ids:
                  type: string
                  description: 'A single id or comma-separated workspace IDs to assign this prompt to. Replaces all existing workspace assignments.'
                  example: '"1,2,42"'
                  nullable: false
  /v1.0/prompts/delete:
    post:
      summary: Delete
      operationId: delete
      description: "Permanently deletes an AI prompt that the user created. The prompt data is archived\nto a table before deletion. Users can only delete prompts they\ncreated themselves and must have access to a workspace using the prompt."
      parameters:
        -
          in: query
          name: prompt_id
          description: 'The prompt ID to delete.'
          example: null
          required: true
          schema:
            type: integer
            description: 'The prompt ID to delete.'
            example: null
            nullable: false
        -
          in: header
          name: X-Server-Apikey
          description: ''
          example: E79GH-UIL999
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  delete: success
                properties:
                  delete:
                    type: string
                    example: success
        400:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: 'Access denied: You can only delete prompts you created'
                properties:
                  error:
                    type: string
                    example: 'Access denied: You can only delete prompts you created'
      tags:
        - 'AI Prompts'
  /v1.0/documents/extract-text:
    post:
      summary: 'Extract Text'
      operationId: extractText
      description: 'Takes a collection of PDF documents (other file types might be added in the future) and converts them into text.'
      parameters:
        -
          in: header
          name: X-Server-Apikey
          description: ''
          example: E79GH-UIL999
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{\n    \"documents\": [\n        {\n            \"document_name\": \"some-file.pdf\"\n            \"document_text\": \"some text from PDF ...\"\n        }\n    ]\n}"
      tags:
        - Documents
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                documents:
                  type: array
                  description: ''
                  example:
                    - eaque
                  items:
                    type: string
              required:
                - documents
  /v1.0/groups/create:
    post:
      summary: Create
      operationId: create
      description: "Create a new epic with the provided information. All required fields must be present.\nThe epic must be assigned to a workspace where the user is a team member."
      parameters:
        -
          in: header
          name: X-Server-Apikey
          description: ''
          example: E79GH-UIL999
          schema:
            type: string
      responses:
        201:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  create: success
                  group_id: 42
                properties:
                  create:
                    type: string
                    example: success
                  group_id:
                    type: integer
                    example: 42
      tags:
        - Groups
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: 'The name/title of the epic.'
                  example: null
                  nullable: false
                description:
                  type: string
                  description: 'The description of the epic.'
                  example: null
                  nullable: false
                workspace_id:
                  type: integer
                  description: 'The workspace ID to assign this epic to. User must be a member.'
                  example: null
                  nullable: false
                active:
                  type: integer
                  description: 'Active status (0 or 1). Defaults to 1.'
                  example: null
                  nullable: false
                start_date:
                  type: string
                  description: 'Epic start date in YYYY-MM-DD format.'
                  example: null
                  nullable: false
                end_date:
                  type: string
                  description: 'Epic end date in YYYY-MM-DD format.'
                  example: null
                  nullable: false
                ai_summary:
                  type: string
                  description: 'AI-generated summary of the epic.'
                  example: null
                  nullable: false
              required:
                - name
                - workspace_id
  /v1.0/groups/get:
    get:
      summary: Read
      operationId: read
      description: "Will return information about a specific epic/group. The group must be assigned\nto a workspace where the authenticated user is a team member."
      parameters:
        -
          in: query
          name: group_id
          description: 'The group ID to retrieve.'
          example: 123
          required: true
          schema:
            type: integer
            description: 'The group ID to retrieve.'
            example: 123
            nullable: false
        -
          in: header
          name: X-Server-Apikey
          description: ''
          example: E79GH-UIL999
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  id: 123
                  active: true
                  name: 'Backend Infrastructure'
                  description: 'Core backend systems and infrastructure improvements'
                  start_date: '2025-01-01'
                  end_date: '2025-03-31'
                  created_by:
                    userid: 46905
                    user: 'Brian Smith'
                  ai_summary: 'Focus on API improvements and database optimization'
                  ai_summary_lastupdate: '2025-01-15T10:30:00.000000Z'
                  workspace_ids:
                    - 1
                    - 2
                    - 5
                properties:
                  id:
                    type: integer
                    example: 123
                  active:
                    type: boolean
                    example: true
                  name:
                    type: string
                    example: 'Backend Infrastructure'
                  description:
                    type: string
                    example: 'Core backend systems and infrastructure improvements'
                  start_date:
                    type: string
                    example: '2025-01-01'
                  end_date:
                    type: string
                    example: '2025-03-31'
                  created_by:
                    type: object
                    properties:
                      userid:
                        type: integer
                        example: 46905
                      user:
                        type: string
                        example: 'Brian Smith'
                  ai_summary:
                    type: string
                    example: 'Focus on API improvements and database optimization'
                  ai_summary_lastupdate:
                    type: string
                    example: '2025-01-15T10:30:00.000000Z'
                  workspace_ids:
                    type: array
                    example:
                      - 1
                      - 2
                      - 5
                    items:
                      type: integer
      tags:
        - Groups
  /v1.0/groups/list:
    get:
      summary: List
      operationId: list
      description: 'Will return a list of goals.'
      parameters:
        -
          in: query
          name: page
          description: ''
          example: 1
          required: false
          schema:
            type: integer
            description: ''
            example: 1
            nullable: false
        -
          in: query
          name: group_id
          description: 'A single group id or a comma separated list of group ids'
          example: null
          required: false
          schema:
            type: string
            description: 'A single group id or a comma separated list of group ids'
            example: null
            nullable: false
        -
          in: query
          name: workspace_id
          description: 'A single workspace id or a comma separated list of workspace ids'
          example: null
          required: false
          schema:
            type: string
            description: 'A single workspace id or a comma separated list of workspace ids'
            example: null
            nullable: false
        -
          in: query
          name: assigned_to
          description: 'A single user id or a comma separated list of user ids'
          example: null
          required: false
          schema:
            type: string
            description: 'A single user id or a comma separated list of user ids'
            example: null
            nullable: false
        -
          in: query
          name: lifecycle_id
          description: 'A single lifecycle id or a comma separated list of lifecycle ids'
          example: null
          required: false
          schema:
            type: string
            description: 'A single lifecycle id or a comma separated list of lifecycle ids'
            example: null
            nullable: false
        -
          in: query
          name: status_id
          description: 'A single status id or a comma separated list of status ids'
          example: null
          required: false
          schema:
            type: string
            description: 'A single status id or a comma separated list of status ids'
            example: null
            nullable: false
        -
          in: query
          name: sprint_id
          description: 'A single sprint id or a comma separated list of sprint ids'
          example: null
          required: false
          schema:
            type: string
            description: 'A single sprint id or a comma separated list of sprint ids'
            example: null
            nullable: false
        -
          in: query
          name: tag_id
          description: 'A single tag id or a comma separated list of tag ids'
          example: null
          required: false
          schema:
            type: string
            description: 'A single tag id or a comma separated list of tag ids'
            example: null
            nullable: false
        -
          in: query
          name: sort_by
          description: "Optional. Sort results by 'id' or 'name'. Defaults to 'id'."
          example: null
          required: false
          schema:
            type: string
            description: "Optional. Sort results by 'id' or 'name'. Defaults to 'id'."
            example: null
            nullable: false
        -
          in: query
          name: sort_dir
          description: "Optional. Sort direction 'asc' or 'desc'. Defaults to 'desc'."
          example: null
          required: false
          schema:
            type: string
            description: "Optional. Sort direction 'asc' or 'desc'. Defaults to 'desc'."
            example: null
            nullable: false
        -
          in: header
          name: X-Server-Apikey
          description: ''
          example: E79GH-UIL999
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  total_groups: 2
                  this_page: 1
                  has_more_pages: false
                  total_pages: 1
                  count_groups_returned: 2
                  groups:
                    -
                      id: 123
                      name: 'Backend Infrastructure'
                      description: 'Core backend systems and infrastructure improvements'
                      ai_summary: null
                      ai_summary_lastupdate: null
                    -
                      id: 124
                      name: 'User Interface Redesign'
                      description: 'Modern UI/UX improvements and responsive design'
                      ai_summary: null
                      ai_summary_lastupdate: null
                properties:
                  total_groups:
                    type: integer
                    example: 2
                  this_page:
                    type: integer
                    example: 1
                  has_more_pages:
                    type: boolean
                    example: false
                  total_pages:
                    type: integer
                    example: 1
                  count_groups_returned:
                    type: integer
                    example: 2
                  groups:
                    type: array
                    example:
                      -
                        id: 123
                        name: 'Backend Infrastructure'
                        description: 'Core backend systems and infrastructure improvements'
                        ai_summary: null
                        ai_summary_lastupdate: null
                      -
                        id: 124
                        name: 'User Interface Redesign'
                        description: 'Modern UI/UX improvements and responsive design'
                        ai_summary: null
                        ai_summary_lastupdate: null
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 123
                        name:
                          type: string
                          example: 'Backend Infrastructure'
                        description:
                          type: string
                          example: 'Core backend systems and infrastructure improvements'
                        ai_summary:
                          type: string
                          example: null
                        ai_summary_lastupdate:
                          type: string
                          example: null
      tags:
        - Groups
  /v1.0/groups/update:
    post:
      summary: Update
      operationId: update
      description: 'Update an group with new information. At least one Body Parameter must be present.'
      parameters:
        -
          in: query
          name: group_id
          description: 'The group ID to update.'
          example: 54
          required: true
          schema:
            type: integer
            description: 'The group ID to update.'
            example: 54
            nullable: false
        -
          in: header
          name: X-Server-Apikey
          description: ''
          example: E79GH-UIL999
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  update: success
                properties:
                  update:
                    type: string
                    example: success
        400:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: 'Invalid group_id'
                properties:
                  error:
                    type: string
                    example: 'Invalid group_id'
      tags:
        - Groups
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: 'The name/title of the group.'
                  example: null
                  nullable: false
                description:
                  type: string
                  description: 'The description of the group.'
                  example: null
                  nullable: false
                workspace_ids:
                  type: string
                  description: 'A single id or comma-separated workspace IDs to assign this group to. Replaces all existing workspace assignments.'
                  example: null
                  nullable: false
                active:
                  type: integer
                  description: 'Active status (0 or 1).'
                  example: null
                  nullable: false
                start_date:
                  type: string
                  description: 'Group start date in YYYY-MM-DD format.'
                  example: null
                  nullable: false
                end_date:
                  type: string
                  description: 'Group end date in YYYY-MM-DD format.'
                  example: null
                  nullable: false
                ai_summary:
                  type: string
                  description: 'AI-generated summary of the group.'
                  example: null
                  nullable: false
  /v1.0/groups/delete:
    post:
      summary: Delete
      operationId: delete
      description: "Permanently deletes a group that the user created. The group data is archived\nbefore deletion. Users can only delete groups they created and that have no\ntasks associated. Groups with tasks should be marked inactive instead."
      parameters:
        -
          in: query
          name: group_id
          description: 'The group ID to delete.'
          example: null
          required: true
          schema:
            type: integer
            description: 'The group ID to delete.'
            example: null
            nullable: false
        -
          in: header
          name: X-Server-Apikey
          description: ''
          example: E79GH-UIL999
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  delete: success
                properties:
                  delete:
                    type: string
                    example: success
        400:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: ''
                    type: object
                    example:
                      error: 'Access denied: You can only delete groups you created'
                    properties:
                      error:
                        type: string
                        example: 'Access denied: You can only delete groups you created'
                  -
                    description: ''
                    type: object
                    example:
                      error: 'Cannot be deleted because the group has tasks. Please update the group to inactive instead.'
                    properties:
                      error:
                        type: string
                        example: 'Cannot be deleted because the group has tasks. Please update the group to inactive instead.'
      tags:
        - Groups
  /v1.0/resources/assistants:
    get:
      summary: List
      operationId: list
      description: "Retrieve a paginated list of assistant-related project/tasks from the user's workspaces.\nReturns tasks where gtd_status_id = 19 and projects_categoriesID NOT IN (9, 24)."
      parameters:
        -
          in: query
          name: page
          description: 'Page number for pagination.'
          example: 1
          required: false
          schema:
            type: integer
            description: 'Page number for pagination.'
            example: 1
            nullable: false
        -
          in: query
          name: workspace_id
          description: 'A single workspace id or a comma separated list of workspace ids.'
          example: '1 or 1,2,3'
          required: false
          schema:
            type: string
            description: 'A single workspace id or a comma separated list of workspace ids.'
            example: '1 or 1,2,3'
            nullable: false
        -
          in: header
          name: X-Server-Apikey
          description: ''
          example: E79GH-UIL999
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  total_tasks: 9
                  this_page: 1
                  has_more_pages: false
                  total_pages: 1
                  count_tasks_returned: 9
                  tasks:
                    -
                      task_id: 1-39674
                      id: 41188
                      workspace_id: 1
                      todo_id: 39674
                      title: 'Due Diligence Analyst'
                    -
                      task_id: 1-39675
                      id: 41189
                      workspace_id: 1
                      todo_id: 39675
                      title: 'Content Strategy Assistant'
                properties:
                  total_tasks:
                    type: integer
                    example: 9
                  this_page:
                    type: integer
                    example: 1
                  has_more_pages:
                    type: boolean
                    example: false
                  total_pages:
                    type: integer
                    example: 1
                  count_tasks_returned:
                    type: integer
                    example: 9
                  tasks:
                    type: array
                    example:
                      -
                        task_id: 1-39674
                        id: 41188
                        workspace_id: 1
                        todo_id: 39674
                        title: 'Due Diligence Analyst'
                      -
                        task_id: 1-39675
                        id: 41189
                        workspace_id: 1
                        todo_id: 39675
                        title: 'Content Strategy Assistant'
                    items:
                      type: object
                      properties:
                        task_id:
                          type: string
                          example: 1-39674
                        id:
                          type: integer
                          example: 41188
                        workspace_id:
                          type: integer
                          example: 1
                        todo_id:
                          type: integer
                          example: 39674
                        title:
                          type: string
                          example: 'Due Diligence Analyst'
      tags:
        - 'Project Assistants'
  '/v1.0/tasks/{taskId}/get_file/{fileId}':
    get:
      summary: Read
      operationId: read
      description: 'Get the file contents of a project/task attachment.'
      parameters:
        -
          in: header
          name: X-Server-Apikey
          description: ''
          example: E79GH-UIL999
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  id: '123456'
                  contents: 'contents of the file'
                properties:
                  id:
                    type: string
                    example: '123456'
                  contents:
                    type: string
                    example: 'contents of the file'
      tags:
        - 'Project Attachments'
    parameters:
      -
        in: path
        name: taskId
        description: 'The Devjock task ID.'
        example: 1-123456
        required: true
        schema:
          type: string
      -
        in: path
        name: fileId
        description: 'The attached file id to update.'
        example: 12345.0
        required: true
        schema:
          type: number
  '/v1.0/tasks/{taskId}/attachment/create':
    post:
      summary: Create
      operationId: create
      description: 'Creates a single file attachment for a project/task. Only supports text-based files (txt and md extensions).'
      parameters:
        -
          in: header
          name: X-Server-Apikey
          description: ''
          example: E79GH-UIL999
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'upload attachment successful'
                  file:
                    id: 12345
                    uploaded_by: 46905
                    uploaded_on: '2025-01-15 10:30:00'
                    file_display_name: readme-notes.txt
                    file_name: aifile-1-123456-46905-1234567890.txt
                    file_url: 'https://s3.amazonaws.com/uploads.devjock.com/aifile-1-123456-46905-1234567890.txt'
                    metadata: 'Created for project documentation.'
                    metadata_lastupdate: '2025-01-15 10:30:00'
                    ai_summary: 'This file contains project notes.'
                    ai_summary_lastupdate: '2025-01-15 10:30:00'
                properties:
                  message:
                    type: string
                    example: 'upload attachment successful'
                  file:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 12345
                      uploaded_by:
                        type: integer
                        example: 46905
                      uploaded_on:
                        type: string
                        example: '2025-01-15 10:30:00'
                      file_display_name:
                        type: string
                        example: readme-notes.txt
                      file_name:
                        type: string
                        example: aifile-1-123456-46905-1234567890.txt
                      file_url:
                        type: string
                        example: 'https://s3.amazonaws.com/uploads.devjock.com/aifile-1-123456-46905-1234567890.txt'
                      metadata:
                        type: string
                        example: 'Created for project documentation.'
                      metadata_lastupdate:
                        type: string
                        example: '2025-01-15 10:30:00'
                      ai_summary:
                        type: string
                        example: 'This file contains project notes.'
                      ai_summary_lastupdate:
                        type: string
                        example: '2025-01-15 10:30:00'
      tags:
        - 'Project Attachments'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                file_name:
                  type: string
                  description: 'The name you want the document to be called.'
                  example: '"readme-notes"'
                  nullable: false
                file_extension:
                  type: string
                  description: 'File extension, must be txt or md.'
                  example: '"txt"'
                  nullable: false
                file_body:
                  type: string
                  description: 'Contents of the document.'
                  example: '"This is the file content."'
                  nullable: false
                ai_summary:
                  type: string
                  description: 'The AI summary of the file content.'
                  example: '"This file contains project notes."'
                  nullable: false
                metadata:
                  type: string
                  description: 'Additional metadata about the file.'
                  example: '"Created for project documentation."'
                  nullable: false
              required:
                - file_name
                - file_extension
                - file_body
    parameters:
      -
        in: path
        name: taskId
        description: 'The Devjock task ID.'
        example: 1-123456
        required: true
        schema:
          type: string
  /v1.0/tasks/blog/create:
    post:
      summary: Create
      operationId: create
      description: 'Create a new comment (blog post) and attached to a project/task. At least one Body Parameter must be present.'
      parameters:
        -
          in: query
          name: task_id
          description: 'The task ID to update.'
          example: 1-123456
          required: true
          schema:
            type: string
            description: 'The task ID to update.'
            example: 1-123456
            nullable: false
        -
          in: header
          name: X-Server-Apikey
          description: ''
          example: E79GH-UIL999
          schema:
            type: string
      responses:
        201:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  create: success
                  id: 12345
                  link: 'https://www.devjockproto.com/todo/details/?ID=1-12345#12345'
                properties:
                  create:
                    type: string
                    example: success
                  id:
                    type: integer
                    example: 12345
                  link:
                    type: string
                    example: 'https://www.devjockproto.com/todo/details/?ID=1-12345#12345'
      tags:
        - 'Project Comments'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                blog_post:
                  type: string
                  description: 'The text you want entered.'
                  example: 'This is the body of the post.'
                  nullable: false
                hours_worked:
                  type: string
                  description: "Use this parameter to specify how many hours to log into the blog post. Must be one of the following:\n0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24 will be 0 if left empty."
                  example: '2'
                  nullable: false
                minutes_worked:
                  type: string
                  description: "Use this parameter to specify how many minutes to log into the blog post. Must be one of the following:\n0,1,5,10,15,20,25,30,35,40,45,50,55 will be 0 if left empty."
                  example: '15'
                  nullable: false
              required:
                - blog_post
  /v1.0/tasks/create:
    post:
      summary: Create
      operationId: create
      description: 'Create a new project/task with the provided information. At least one Body Parameter must be present.'
      parameters:
        -
          in: query
          name: workspace_id
          description: 'The workspace ID where the task will be created.'
          example: 1
          required: true
          schema:
            type: integer
            description: 'The workspace ID where the task will be created.'
            example: 1
            nullable: false
        -
          in: header
          name: X-Server-Apikey
          description: ''
          example: E79GH-UIL999
          schema:
            type: string
      responses:
        201:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  create: success
                  task_id: 1-123456
                  id: 456789
                  workspace_id: 1
                  todo_id: 123456
                properties:
                  create:
                    type: string
                    example: success
                  task_id:
                    type: string
                    example: 1-123456
                  id:
                    type: integer
                    example: 456789
                  workspace_id:
                    type: integer
                    example: 1
                  todo_id:
                    type: integer
                    example: 123456
      tags:
        - Projects
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                title:
                  type: string
                  description: 'The task title.'
                  example: '"New Task Title"'
                  nullable: false
                description:
                  type: string
                  description: 'The task description.'
                  example: null
                  nullable: false
                priority:
                  type: string
                  description: 'A single lower-case letter (a to z) representing the task priority.'
                  example: null
                  nullable: false
                assigned_to:
                  type: string
                  description: 'The userid you want to assign the task to, they must be a team member.'
                  example: null
                  nullable: false
                qa_assigned_to:
                  type: string
                  description: 'The userid you want to assign the QA task to, they must be a team member.'
                  example: null
                  nullable: false
                lifecycle_id:
                  type: string
                  description: 'The id of the task lifecycle.'
                  example: null
                  nullable: false
                status_id:
                  type: string
                  description: 'The id of the task status.'
                  example: null
                  nullable: false
                business_requirements:
                  type: string
                  description: 'The business requirements text.'
                  example: null
                  nullable: false
                qa_instructions:
                  type: string
                  description: 'The QA instructions text.'
                  example: null
                  nullable: false
                technical_spec:
                  type: string
                  description: 'The technical specification text.'
                  example: null
                  nullable: false
                ai_summary:
                  type: string
                  description: 'AI-generated summary.'
                  example: null
                  nullable: false
                ai_marketing_summary:
                  type: string
                  description: 'AI-generated marketing summary.'
                  example: null
                  nullable: false
                website_content:
                  type: string
                  description: 'Website content text.'
                  example: null
                  nullable: false
                add_sprints:
                  type: string
                  description: 'A single sprint id to associate with the task.'
                  example: null
                  nullable: false
                add_groups:
                  type: string
                  description: 'A single epic id to associate with the task.'
                  example: null
                  nullable: false
                parent_id:
                  type: string
                  description: 'The parent task ID in format workspace_id-todo_id.'
                  example: null
                  nullable: false
  /v1.0/tasks/single:
    post:
      summary: Read
      operationId: read
      description: "Will return information about a specific project/task. Use the resolves Body Parameter to return specific data,\nor leave out to return minimal task information."
      parameters:
        -
          in: query
          name: task_id
          description: 'The task ID to show information on.'
          example: 1-123456
          required: true
          schema:
            type: string
            description: 'The task ID to show information on.'
            example: 1-123456
            nullable: false
        -
          in: header
          name: X-Server-Apikey
          description: ''
          example: E79GH-UIL999
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{\n\"task_id\": \"1-123456\",\n\"id\": 456789,\n\"workspace_id\": 1,\n\"todo_id\": 123456,\n\"title\": \"The task title\",\n\"description\": \"The task description\",\n\"workspace\": {\n\"id\": 1,\n\"name\": \"name\"\n},\n\"lifecycle\": {\n\"id\": 36,\n\"name\": \"Backlog\",\n\"description\": \"Tasks with a spec and an estimate which are ready to be worked on.\"\n},\n\"status\": {\n\"id\": 2,\n\"name\": \"Next\",\n\"description\": \"To be worked on after the ''In progress'' pile is complete\"\n},\n}"
      tags:
        - Projects
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                resolves:
                  type: array
                  description: "Use this parameter to specify which data fields you want returned. Specifying the resolves\nparameter allows you to tailor the response to include only the desired fields, such as\ntitle, description, lifecycle, etc. If omitted, minimal task information will be returned."
                  example:
                    - title
                    - description
                    - workspace
                    - lifecycle
                    - status
                    - assigned_to
                    - created_by
                    - created_on
                    - last_updated
                    - technical_spec
                    - business_requirements
                    - qa_instructions
                    - difficulty
                    - track_as_bug
                    - time_actual
                    - time_estimate
                    - revision_date
                    - revision_number
                    - ai_summary
                    - ai_summary_lastupdate
                    - ai_marketing_summary
                    - ai_marketing_summary_lastupdate
                    - hours_worked
                    - attached_files
                    - code_files
                    - groups
                    - sprints
                    - tags
                    - parent_task
                    - sub_tasks
                    - blog_posts
                    - change_log
                    - website_content
                    - qa_assigned_to
                    - default_ai_agent_template_id
                  items:
                    type: string
  /v1.0/tasks/list:
    get:
      summary: List
      operationId: list
      description: "Will return a list of projects/tasks.\nAt least one query parameter other then page must be present. Using show_assistants will ignore any status_id and lifecycle_id filters."
      parameters:
        -
          in: query
          name: page
          description: ''
          example: 1
          required: false
          schema:
            type: integer
            description: ''
            example: 1
            nullable: false
        -
          in: query
          name: workspace_id
          description: ''
          example: null
          required: false
          schema:
            type: string
            description: ''
            example: null
            nullable: false
        -
          in: query
          name: assigned_to
          description: ''
          example: null
          required: false
          schema:
            type: integer
            description: ''
            example: null
            nullable: false
        -
          in: query
          name: created_by
          description: ''
          example: null
          required: false
          schema:
            type: integer
            description: ''
            example: null
            nullable: false
        -
          in: query
          name: group_id
          description: ''
          example: null
          required: false
          schema:
            type: string
            description: ''
            example: null
            nullable: false
        -
          in: query
          name: last_update_from
          description: ''
          example: null
          required: false
          schema:
            type: string
            description: ''
            example: null
            nullable: false
        -
          in: query
          name: last_update_to
          description: ''
          example: null
          required: false
          schema:
            type: string
            description: ''
            example: null
            nullable: false
        -
          in: query
          name: lifecycle_id
          description: ''
          example: null
          required: false
          schema:
            type: integer
            description: ''
            example: null
            nullable: false
        -
          in: query
          name: parent_id
          description: ''
          example: null
          required: false
          schema:
            type: integer
            description: ''
            example: null
            nullable: false
        -
          in: query
          name: no_parent
          description: 'Only show projects/tasks without a parent project/task if present (any value). Will be ignored if parent_id is present.'
          example: null
          required: false
          schema:
            type: string
            description: 'Only show projects/tasks without a parent project/task if present (any value). Will be ignored if parent_id is present.'
            example: null
            nullable: false
        -
          in: query
          name: status_id
          description: ''
          example: null
          required: false
          schema:
            type: string
            description: ''
            example: null
            nullable: false
        -
          in: query
          name: sprint_id
          description: ''
          example: null
          required: false
          schema:
            type: string
            description: ''
            example: null
            nullable: false
        -
          in: query
          name: tag_id
          description: ''
          example: null
          required: false
          schema:
            type: string
            description: ''
            example: null
            nullable: false
        -
          in: query
          name: track_as_bug
          description: ''
          example: null
          required: false
          schema:
            type: integer
            description: ''
            example: null
            nullable: false
        -
          in: query
          name: with_estimates
          description: ''
          example: null
          required: false
          schema:
            type: integer
            description: ''
            example: null
            nullable: false
        -
          in: query
          name: qa_assigned_to
          description: ''
          example: null
          required: false
          schema:
            type: integer
            description: ''
            example: null
            nullable: false
        -
          in: query
          name: show_assistants
          description: 'Only show Assistants if present (any value).'
          example: null
          required: false
          schema:
            type: string
            description: 'Only show Assistants if present (any value).'
            example: null
            nullable: false
        -
          in: query
          name: search_term
          description: 'Free-text search across TITLE, DESCRIPTION.'
          example: null
          required: false
          schema:
            type: string
            description: 'Free-text search across TITLE, DESCRIPTION.'
            example: null
            nullable: false
        -
          in: query
          name: priority
          description: "Optional. Filter by task priority: single lowercase letter (a-z) or '-' for no priority. Comma-separated for multiple values (e.g., 'a,b,c')."
          example: null
          required: false
          schema:
            type: string
            description: "Optional. Filter by task priority: single lowercase letter (a-z) or '-' for no priority. Comma-separated for multiple values (e.g., 'a,b,c')."
            example: null
            nullable: false
        -
          in: query
          name: sort_by
          description: "Optional. Sort results by 'id', 'created_on', 'last_update', 'title', or 'priority'. Defaults to 'id'."
          example: null
          required: false
          schema:
            type: string
            description: "Optional. Sort results by 'id', 'created_on', 'last_update', 'title', or 'priority'. Defaults to 'id'."
            example: null
            nullable: false
        -
          in: query
          name: sort_dir
          description: "Optional. Sort direction 'asc' or 'desc'. Defaults to 'desc'."
          example: null
          required: false
          schema:
            type: string
            description: "Optional. Sort direction 'asc' or 'desc'. Defaults to 'desc'."
            example: null
            nullable: false
        -
          in: header
          name: X-Server-Apikey
          description: ''
          example: E79GH-UIL999
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  total_tasks: 2
                  this_page: 1
                  has_more_pages: false
                  total_pages: 1
                  count_tasks_returned: 2
                  tasks:
                    -
                      task_id: 1-123456
                      id: 456789
                      workspace_id: 1
                      todo_id: 123456
                      workspace:
                        id: 1
                        name: name
                    -
                      task_id: 1-789012
                      id: 5698545
                      workspace_id: 1
                      todo_id: 789012
                      workspace:
                        id: 1
                        name: name
                properties:
                  total_tasks:
                    type: integer
                    example: 2
                  this_page:
                    type: integer
                    example: 1
                  has_more_pages:
                    type: boolean
                    example: false
                  total_pages:
                    type: integer
                    example: 1
                  count_tasks_returned:
                    type: integer
                    example: 2
                  tasks:
                    type: array
                    example:
                      -
                        task_id: 1-123456
                        id: 456789
                        workspace_id: 1
                        todo_id: 123456
                        workspace:
                          id: 1
                          name: name
                      -
                        task_id: 1-789012
                        id: 5698545
                        workspace_id: 1
                        todo_id: 789012
                        workspace:
                          id: 1
                          name: name
                    items:
                      type: object
                      properties:
                        task_id:
                          type: string
                          example: 1-123456
                        id:
                          type: integer
                          example: 456789
                        workspace_id:
                          type: integer
                          example: 1
                        todo_id:
                          type: integer
                          example: 123456
                        workspace:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 1
                            name:
                              type: string
                              example: name
      tags:
        - Projects
  /v1.0/tasks/update:
    post:
      summary: Update
      operationId: update
      description: 'Update a project/task with new information. One of the Body Parameters must be present.'
      parameters:
        -
          in: query
          name: task_id
          description: 'The task ID to update.'
          example: 1-123456
          required: true
          schema:
            type: string
            description: 'The task ID to update.'
            example: 1-123456
            nullable: false
        -
          in: header
          name: X-Server-Apikey
          description: ''
          example: E79GH-UIL999
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{'update': 'success'}"
      tags:
        - Projects
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                title:
                  type: string
                  description: 'The text you want entered.'
                  example: '"New Task Title"'
                  nullable: false
                description:
                  type: string
                  description: 'The text you want entered.'
                  example: null
                  nullable: false
                priority:
                  type: string
                  description: 'A single lower-case letter (a to z) representing the task priority.'
                  example: null
                  nullable: false
                difficulty:
                  type: string
                  description: 'The difficulty level of the task. Must be one of the following: 0, 1, 2, 3, 6, 10, 20, 30, 40.'
                  example: null
                  nullable: false
                assigned_to:
                  type: string
                  description: 'The userid you want to assign the task to, they must be a team member.'
                  example: null
                  nullable: false
                qa_assigned_to:
                  type: string
                  description: 'The userid you want to assign the QA task to, they must be a team member.'
                  example: null
                  nullable: false
                lifecycle_id:
                  type: string
                  description: 'The id of the task lifecycle.'
                  example: null
                  nullable: false
                status_id:
                  type: string
                  description: 'The id of the task status.'
                  example: null
                  nullable: false
                business_requirements:
                  type: string
                  description: 'The text you want entered.'
                  example: null
                  nullable: false
                clear_sprints:
                  type: string
                  description: 'If used it will remove all sprint ids.'
                  example: null
                  nullable: false
                add_sprints:
                  type: string
                  description: 'A single sprint id or comma-separated list of sprint ids to add.'
                  example: null
                  nullable: false
                clear_groups:
                  type: string
                  description: 'If used it will remove all group ids.'
                  example: null
                  nullable: false
                add_groups:
                  type: string
                  description: 'A single group id or comma-separated list of group ids to add.'
                  example: null
                  nullable: false
                qa_instructions:
                  type: string
                  description: 'The text you want entered.'
                  example: null
                  nullable: false
                technical_spec:
                  type: string
                  description: 'The text you want entered.'
                  example: null
                  nullable: false
                ai_summary:
                  type: string
                  description: 'The text you want entered.'
                  example: null
                  nullable: false
                ai_marketing_summary:
                  type: string
                  description: 'The text you want entered.'
                  example: null
                  nullable: false
                website_content:
                  type: string
                  description: 'The text you want entered.'
                  example: null
                  nullable: false
                parent_id:
                  type: string
                  description: 'The parent task ID in format workspace_id-todo_id.'
                  example: null
                  nullable: false
                estimate:
                  type: string
                  description: 'The estimated time for the task as a whole number or number with up to 2 decimal places. Use 0 to clear.'
                  example: null
                  nullable: false
                revision_date:
                  type: string
                  description: 'The revision date in YYYY-MM-DD format. Use "0" to clear.'
                  example: null
                  nullable: false
                revision_id:
                  type: string
                  description: 'The revision ID as a string up to 10 characters. Use "0" to clear.'
                  example: null
                  nullable: false
                tag_ids:
                  type: string
                  description: 'Tag IDs to assign to the task. Can be comma-separated (e.g., "1,2,3") or single ID. Use "0" to clear all tags.'
                  example: null
                  nullable: false
  '/v1.0/rag/{taskId}/index':
    post:
      summary: 'Add Index'
      operationId: addIndex
      description: 'Adds specified attachments to the RAG index'
      parameters:
        -
          in: header
          name: X-Server-Apikey
          description: ''
          example: E79GH-UIL999
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example: {  }
                properties: {  }
      tags:
        - RAG
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                attachment_ids:
                  type: array
                  description: 'Task attachment id.'
                  example:
                    - 19800
                  items:
                    type: integer
              required:
                - attachment_ids
    parameters:
      -
        in: path
        name: taskId
        description: 'The task ID to show information on.'
        example: 48-37855
        required: true
        schema:
          type: string
  /v1.0/rag/search:
    get:
      summary: Search
      operationId: search
      description: 'Search in by query'
      parameters:
        -
          in: query
          name: query
          description: 'Search query.'
          example: 'NFT Token'
          required: true
          schema:
            type: string
            description: 'Search query.'
            example: 'NFT Token'
            nullable: false
        -
          in: header
          name: X-Server-Apikey
          description: ''
          example: E79GH-UIL999
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example: {  }
                properties: {  }
      tags:
        - RAG
  '/v1.0/rag/assistant/{assistant_name}/search':
    post:
      summary: 'Assistant Search'
      operationId: assistantSearch
      description: 'Search by query with Pinecone assistant'
      parameters:
        -
          in: header
          name: X-Server-Apikey
          description: ''
          example: E79GH-UIL999
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example: {  }
                properties: {  }
      tags:
        - 'RAG Assistant'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                messages:
                  type: array
                  description: ''
                  example:
                    - []
                  items:
                    type: object
                    properties:
                      role:
                        type: string
                        description: 'The role of the messages author, in this case `user`.'
                        example: user
                        nullable: false
                        enum:
                          - user
                          - assistant
                      content:
                        type: string
                        description: 'The contents of the user message.'
                        example: 'Please reply "OK"'
                        nullable: false
                    required:
                      - role
                      - content
                stream:
                  type: boolean
                  description: ''
                  example: false
                  nullable: false
              required:
                - messages
    parameters:
      -
        in: path
        name: assistant_name
        description: 'Pinecone assistant name.'
        example: devjock
        required: true
        schema:
          type: string
  '/v1.0/rag/assistant/{assistant_name}/index':
    post:
      summary: 'Add Index'
      operationId: addIndex
      description: 'Adds specified attachments to the RAG assistant index'
      parameters:
        -
          in: header
          name: X-Server-Apikey
          description: ''
          example: E79GH-UIL999
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example: {  }
                properties: {  }
      tags:
        - 'RAG Assistant'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                attachment_ids:
                  type: array
                  description: 'Task attachment id.'
                  example:
                    - 19800
                  items:
                    type: integer
              required:
                - attachment_ids
    parameters:
      -
        in: path
        name: assistant_name
        description: 'Pinecone assistant name.'
        example: devjock
        required: true
        schema:
          type: string
  /v1.0/scrape/url:
    post:
      summary: 'Scrape URL'
      operationId: scrapeURL
      description: "Scrape a single webpage for it's content."
      parameters:
        -
          in: header
          name: X-Server-Apikey
          description: ''
          example: E79GH-UIL999
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{\n   \"url\": \"https://example.com\",\n   \"content\": \"Scraped data\",\n}"
      tags:
        - Scrape
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                url:
                  type: string
                  description: 'URL you want to scrape. Must be a valid URL.'
                  example: 'https://www.example-site.com'
                  nullable: false
              required:
                - url
  /v1.0/scrape/screenshot:
    post:
      summary: 'Screenshot URL'
      operationId: screenshotURL
      description: 'Create a screenshot of the page by given URL.'
      parameters:
        -
          in: header
          name: X-Server-Apikey
          description: ''
          example: E79GH-UIL999
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{\n   \"screenshot_url\": \"https://alttmdsdujxrfnakrkyi.supabase.co/storage/screenshot-5833962.png\",\n}"
      tags:
        - Scrape
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                url:
                  type: string
                  description: 'URL you want to scrape. Must be a valid URL.'
                  example: 'https://www.example-site.com'
                  nullable: false
              required:
                - url
  '/v1.0/sentry/issues/{issueId}':
    get:
      summary: 'Get Issue'
      operationId: getIssue
      description: 'Show Sentry issue by id.'
      parameters:
        -
          in: header
          name: X-Server-Apikey
          description: ''
          example: E79GH-UIL999
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  issue: []
                  last_error: []
                properties:
                  issue:
                    type: array
                    example: []
                  last_error:
                    type: array
                    example: []
      tags:
        - Sentry
    parameters:
      -
        in: path
        name: issueId
        description: 'The Sentry id for the issue.'
        example: '12345'
        required: true
        schema:
          type: string
  /v1.0/sprints/create:
    post:
      summary: Create
      operationId: create
      description: "Create a new sprint with the provided information. All required fields must be present.\nThe sprint must be assigned to at least one workspace where the user is a team member."
      parameters:
        -
          in: header
          name: X-Server-Apikey
          description: ''
          example: E79GH-UIL999
          schema:
            type: string
      responses:
        201:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  create: success
                  sprint_id: 347
                properties:
                  create:
                    type: string
                    example: success
                  sprint_id:
                    type: integer
                    example: 347
      tags:
        - Sprints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: 'The name/title of the sprint.'
                  example: null
                  nullable: false
                description:
                  type: string
                  description: 'The description of the sprint.'
                  example: null
                  nullable: false
                workspace_ids:
                  type: string
                  description: 'A single id or comma-separated workspace IDs to assign this sprint to. User must be a member of all specified workspaces.'
                  example: null
                  nullable: false
                active:
                  type: integer
                  description: 'Active status (0 or 1). Defaults to 1.'
                  example: null
                  nullable: false
                start_date:
                  type: string
                  description: 'Sprint start date in YYYY-MM-DD format.'
                  example: null
                  nullable: false
                end_date:
                  type: string
                  description: 'Sprint end date in YYYY-MM-DD format.'
                  example: null
                  nullable: false
                ai_summary:
                  type: string
                  description: 'AI-generated summary of the sprint.'
                  example: null
                  nullable: false
              required:
                - name
                - workspace_ids
  /v1.0/sprints/get:
    get:
      summary: Read
      operationId: read
      description: "Will return information about a specific sprint. The sprint must be assigned\nto a workspace where the authenticated user is a team member."
      parameters:
        -
          in: query
          name: sprint_id
          description: 'The sprint ID to retrieve.'
          example: 342
          required: true
          schema:
            type: integer
            description: 'The sprint ID to retrieve.'
            example: 342
            nullable: false
        -
          in: header
          name: X-Server-Apikey
          description: ''
          example: E79GH-UIL999
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  id: 342
                  active: true
                  name: 'Sprint Q1 2025'
                  description: 'First quarter development sprint'
                  start_date: '2025-01-01'
                  end_date: '2025-03-31'
                  created_by:
                    userid: 46905
                    user: 'Brian Smith'
                  ai_summary: 'Focus on API improvements and new features'
                  ai_summary_lastupdate: '2025-01-15T10:30:00.000000Z'
                  workspace_ids:
                    - 1
                    - 2
                    - 5
                properties:
                  id:
                    type: integer
                    example: 342
                  active:
                    type: boolean
                    example: true
                  name:
                    type: string
                    example: 'Sprint Q1 2025'
                  description:
                    type: string
                    example: 'First quarter development sprint'
                  start_date:
                    type: string
                    example: '2025-01-01'
                  end_date:
                    type: string
                    example: '2025-03-31'
                  created_by:
                    type: object
                    properties:
                      userid:
                        type: integer
                        example: 46905
                      user:
                        type: string
                        example: 'Brian Smith'
                  ai_summary:
                    type: string
                    example: 'Focus on API improvements and new features'
                  ai_summary_lastupdate:
                    type: string
                    example: '2025-01-15T10:30:00.000000Z'
                  workspace_ids:
                    type: array
                    example:
                      - 1
                      - 2
                      - 5
                    items:
                      type: integer
      tags:
        - Sprints
  /v1.0/sprints/list:
    get:
      summary: List
      operationId: list
      description: 'Will return a list of sprints.'
      parameters:
        -
          in: query
          name: page
          description: ''
          example: 1
          required: false
          schema:
            type: integer
            description: ''
            example: 1
            nullable: false
        -
          in: query
          name: sprint_id
          description: 'A single sprint id or a comma separated list of sprint ids'
          example: aut
          required: false
          schema:
            type: string
            description: 'A single sprint id or a comma separated list of sprint ids'
            example: aut
            nullable: false
        -
          in: query
          name: workspace_id
          description: 'A single workspace id or a comma separated list of workspace ids'
          example: libero
          required: false
          schema:
            type: string
            description: 'A single workspace id or a comma separated list of workspace ids'
            example: libero
            nullable: false
        -
          in: query
          name: show_inactive
          description: 'Include inactive tags if present (any value).'
          example: '1 or true'
          required: false
          schema:
            type: string
            description: 'Include inactive tags if present (any value).'
            example: '1 or true'
            nullable: false
        -
          in: header
          name: X-Server-Apikey
          description: ''
          example: E79GH-UIL999
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  total_sprints: 2
                  this_page: 1
                  has_more_pages: false
                  total_pages: 1
                  count_sprints_returned: 2
                  sprints:
                    -
                      id: 123
                      active: 1
                      name: 'Sprint 1'
                      description: 'First quarter development sprint'
                      start_date: null
                      end_date: null
                      created_by:
                        userid: 1001
                        user: 'John Smith'
                      ai_summary: null
                      ai_summary_lastupdate: null
                    -
                      id: 124
                      active: 1
                      name: 'Sprint 2'
                      description: 'API improvements and bug fixes'
                      start_date: null
                      end_date: null
                      created_by:
                        userid: 1002
                        user: 'Jane Doe'
                      ai_summary: null
                      ai_summary_lastupdate: null
                properties:
                  total_sprints:
                    type: integer
                    example: 2
                  this_page:
                    type: integer
                    example: 1
                  has_more_pages:
                    type: boolean
                    example: false
                  total_pages:
                    type: integer
                    example: 1
                  count_sprints_returned:
                    type: integer
                    example: 2
                  sprints:
                    type: array
                    example:
                      -
                        id: 123
                        active: 1
                        name: 'Sprint 1'
                        description: 'First quarter development sprint'
                        start_date: null
                        end_date: null
                        created_by:
                          userid: 1001
                          user: 'John Smith'
                        ai_summary: null
                        ai_summary_lastupdate: null
                      -
                        id: 124
                        active: 1
                        name: 'Sprint 2'
                        description: 'API improvements and bug fixes'
                        start_date: null
                        end_date: null
                        created_by:
                          userid: 1002
                          user: 'Jane Doe'
                        ai_summary: null
                        ai_summary_lastupdate: null
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 123
                        active:
                          type: integer
                          example: 1
                        name:
                          type: string
                          example: 'Sprint 1'
                        description:
                          type: string
                          example: 'First quarter development sprint'
                        start_date:
                          type: string
                          example: null
                        end_date:
                          type: string
                          example: null
                        created_by:
                          type: object
                          properties:
                            userid:
                              type: integer
                              example: 1001
                            user:
                              type: string
                              example: 'John Smith'
                        ai_summary:
                          type: string
                          example: null
                        ai_summary_lastupdate:
                          type: string
                          example: null
      tags:
        - Sprints
  /v1.0/sprints/update:
    post:
      summary: Update
      operationId: update
      description: 'Update a sprint with new information. At least one Body Parameter must be present.'
      parameters:
        -
          in: query
          name: sprint_id
          description: 'The sprint ID to update.'
          example: 347
          required: true
          schema:
            type: integer
            description: 'The sprint ID to update.'
            example: 347
            nullable: false
        -
          in: header
          name: X-Server-Apikey
          description: ''
          example: E79GH-UIL999
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  update: success
                properties:
                  update:
                    type: string
                    example: success
        400:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: 'Invalid sprint_id'
                properties:
                  error:
                    type: string
                    example: 'Invalid sprint_id'
      tags:
        - Sprints
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: 'The name/title of the sprint.'
                  example: null
                  nullable: false
                description:
                  type: string
                  description: 'The description of the sprint.'
                  example: null
                  nullable: false
                workspace_ids:
                  type: string
                  description: 'A single id or comma-separated workspace IDs to assign this sprint to. Replaces all existing workspace assignments.'
                  example: null
                  nullable: false
                active:
                  type: integer
                  description: 'Active status (0 or 1).'
                  example: null
                  nullable: false
                start_date:
                  type: string
                  description: 'Sprint start date in YYYY-MM-DD format.'
                  example: null
                  nullable: false
                end_date:
                  type: string
                  description: 'Sprint end date in YYYY-MM-DD format.'
                  example: null
                  nullable: false
                ai_summary:
                  type: string
                  description: 'AI-generated summary of the sprint.'
                  example: null
                  nullable: false
  /v1.0/sprints/delete:
    post:
      summary: Delete
      operationId: delete
      description: "Permanently deletes a sprint that the user created. The sprint data is archived\nbefore deletion. Users can only delete sprints they created and that have no\ntasks associated. Sprints with tasks should be marked inactive instead."
      parameters:
        -
          in: query
          name: sprint_id
          description: 'The sprint ID to delete.'
          example: null
          required: true
          schema:
            type: integer
            description: 'The sprint ID to delete.'
            example: null
            nullable: false
        -
          in: header
          name: X-Server-Apikey
          description: ''
          example: E79GH-UIL999
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  delete: success
                properties:
                  delete:
                    type: string
                    example: success
        400:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: ''
                    type: object
                    example:
                      error: 'Access denied: You can only delete sprints you created'
                    properties:
                      error:
                        type: string
                        example: 'Access denied: You can only delete sprints you created'
                  -
                    description: ''
                    type: object
                    example:
                      error: 'Cannot be deleted because the sprint has tasks. Please update the sprint to inactive instead.'
                    properties:
                      error:
                        type: string
                        example: 'Cannot be deleted because the sprint has tasks. Please update the sprint to inactive instead.'
      tags:
        - Sprints
  /v1.0/tags/create:
    post:
      summary: Create
      operationId: create
      description: "Create a new tag with the provided information. All required fields must be present.\nThe tag must be assigned to at least one workspace where the user is a team member."
      parameters:
        -
          in: header
          name: X-Server-Apikey
          description: ''
          example: E79GH-UIL999
          schema:
            type: string
      responses:
        201:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  create: success
                  tag_id: 42
                properties:
                  create:
                    type: string
                    example: success
                  tag_id:
                    type: integer
                    example: 42
      tags:
        - Tags
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: 'The name/title of the tag.'
                  example: null
                  nullable: false
                workspace_ids:
                  type: string
                  description: 'A single id or comma-separated workspace IDs to assign this tag to. User must be a member of all specified workspaces.'
                  example: null
                  nullable: false
                symbol:
                  type: string
                  description: 'Symbol or shorthand for the tag.'
                  example: null
                  nullable: false
                description:
                  type: string
                  description: 'Description of the tag.'
                  example: null
                  nullable: false
                backgroundcolor:
                  type: string
                  description: 'Background color in hex format (#RRGGBB).'
                  example: null
                  nullable: false
                active:
                  type: integer
                  description: 'Active status (0 or 1). Defaults to 1.'
                  example: null
                  nullable: false
              required:
                - name
                - workspace_ids
  /v1.0/tags/get:
    get:
      summary: Read
      operationId: read
      description: "Will return information about a specific tag. The tag must be assigned\nto a workspace where the authenticated user is a team member."
      parameters:
        -
          in: query
          name: tag_id
          description: 'The tag ID to retrieve.'
          example: 16
          required: true
          schema:
            type: integer
            description: 'The tag ID to retrieve.'
            example: 16
            nullable: false
        -
          in: header
          name: X-Server-Apikey
          description: ''
          example: E79GH-UIL999
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  id: 16
                  symbol: Op
                  name: Operations
                  description: Operations
                  active: 1
                  backgroundcolor: '#FF0000'
                  created_by:
                    userid: 46905
                    user: 'Brian Smith'
                  workspace_ids:
                    - 1
                    - 2
                    - 5
                properties:
                  id:
                    type: integer
                    example: 16
                  symbol:
                    type: string
                    example: Op
                  name:
                    type: string
                    example: Operations
                  description:
                    type: string
                    example: Operations
                  active:
                    type: integer
                    example: 1
                  backgroundcolor:
                    type: string
                    example: '#FF0000'
                  created_by:
                    type: object
                    properties:
                      userid:
                        type: integer
                        example: 46905
                      user:
                        type: string
                        example: 'Brian Smith'
                  workspace_ids:
                    type: array
                    example:
                      - 1
                      - 2
                      - 5
                    items:
                      type: integer
      tags:
        - Tags
  /v1.0/tags/list:
    get:
      summary: List
      operationId: list
      description: 'Will return a list of tags from workspaces where the authenticated user is a team member.'
      parameters:
        -
          in: query
          name: tag_id
          description: 'A single tag id or a comma separated list of tag ids.'
          example: '123 or 123,456,789'
          required: false
          schema:
            type: string
            description: 'A single tag id or a comma separated list of tag ids.'
            example: '123 or 123,456,789'
            nullable: false
        -
          in: query
          name: workspace_id
          description: 'A single workspace id or a comma separated list of workspace ids.'
          example: '1 or 1,2,3'
          required: false
          schema:
            type: string
            description: 'A single workspace id or a comma separated list of workspace ids.'
            example: '1 or 1,2,3'
            nullable: false
        -
          in: query
          name: created_by
          description: 'A single user id or a comma separated list of user ids.'
          example: '123456 or 123456,789012'
          required: false
          schema:
            type: string
            description: 'A single user id or a comma separated list of user ids.'
            example: '123456 or 123456,789012'
            nullable: false
        -
          in: query
          name: show_inactive
          description: 'Include inactive tags if present (any value).'
          example: 'true'
          required: false
          schema:
            type: string
            description: 'Include inactive tags if present (any value).'
            example: 'true'
            nullable: false
        -
          in: header
          name: X-Server-Apikey
          description: ''
          example: E79GH-UIL999
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  total: 39
                  tags:
                    -
                      id: 16
                      symbol: Op
                      name: Operations
                      description: Operations
                      active: 1
                      workspace_id: 1
                    -
                      id: 17
                      symbol: $
                      name: 'Financial Impact'
                      description: 'Incremental Improvement'
                      active: 1
                      workspace_id: 1
                properties:
                  total:
                    type: integer
                    example: 39
                  tags:
                    type: array
                    example:
                      -
                        id: 16
                        symbol: Op
                        name: Operations
                        description: Operations
                        active: 1
                        workspace_id: 1
                      -
                        id: 17
                        symbol: $
                        name: 'Financial Impact'
                        description: 'Incremental Improvement'
                        active: 1
                        workspace_id: 1
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 16
                        symbol:
                          type: string
                          example: Op
                        name:
                          type: string
                          example: Operations
                        description:
                          type: string
                          example: Operations
                        active:
                          type: integer
                          example: 1
                        workspace_id:
                          type: integer
                          example: 1
      tags:
        - Tags
  /v1.0/tags/update:
    post:
      summary: Update
      operationId: update
      description: 'Update a tag with new information. At least one Body Parameter must be present.'
      parameters:
        -
          in: query
          name: tag_id
          description: 'The tag ID to update.'
          example: 42
          required: true
          schema:
            type: integer
            description: 'The tag ID to update.'
            example: 42
            nullable: false
        -
          in: header
          name: X-Server-Apikey
          description: ''
          example: E79GH-UIL999
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  update: success
                properties:
                  update:
                    type: string
                    example: success
        400:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: 'Invalid tag_id'
                properties:
                  error:
                    type: string
                    example: 'Invalid tag_id'
      tags:
        - Tags
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: 'The name/title of the tag.'
                  example: null
                  nullable: false
                symbol:
                  type: string
                  description: 'The symbol/shorthand for the tag.'
                  example: null
                  nullable: false
                description:
                  type: string
                  description: 'The description of the tag.'
                  example: null
                  nullable: false
                backgroundcolor:
                  type: string
                  description: 'Background color in hex format (#RRGGBB).'
                  example: null
                  nullable: false
                workspace_ids:
                  type: string
                  description: 'A single id or comma-separated workspace IDs to assign this tag to. Replaces all existing workspace assignments.'
                  example: null
                  nullable: false
                active:
                  type: integer
                  description: 'Active status (0 or 1).'
                  example: null
                  nullable: false
  /v1.0/tags/delete:
    post:
      summary: Delete
      operationId: delete
      description: "Permanently deletes a tag that the user created. The tag data is archived\nbefore deletion. Users can only delete tags they created and that have no\ntasks associated. Tags with tasks should be marked inactive instead."
      parameters:
        -
          in: query
          name: tag_id
          description: 'The tag ID to delete.'
          example: null
          required: true
          schema:
            type: integer
            description: 'The tag ID to delete.'
            example: null
            nullable: false
        -
          in: header
          name: X-Server-Apikey
          description: ''
          example: E79GH-UIL999
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  delete: success
                properties:
                  delete:
                    type: string
                    example: success
        400:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: ''
                    type: object
                    example:
                      error: 'Access denied: You can only delete tags you created'
                    properties:
                      error:
                        type: string
                        example: 'Access denied: You can only delete tags you created'
                  -
                    description: ''
                    type: object
                    example:
                      error: 'Cannot be deleted because the tag has tasks. Please update the tag to inactive instead.'
                    properties:
                      error:
                        type: string
                        example: 'Cannot be deleted because the tag has tasks. Please update the tag to inactive instead.'
      tags:
        - Tags
  /v1.0/transcribe/media:
    post:
      summary: 'Transcribe Media'
      operationId: transcribeMedia
      description: 'Processes a single media file, converting the speech within it into a textual transcript.'
      parameters:
        -
          in: header
          name: X-Server-Apikey
          description: ''
          example: E79GH-UIL999
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{\n   \"transcription\": \"Transcribed text\",\n}"
      tags:
        - Transcribe
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                media:
                  type: string
                  format: binary
                  description: 'Media file to transcribe. Supported formats are: flac, m4a, mp3, mp4, mpeg, mpga, oga, ogg, wav, wav-x, webm. Must be a file. Must not be greater than 25600 kilobytes.'
                  nullable: false
              required:
                - media
  /v1.0/health:
    get:
      summary: 'Check Health'
      operationId: checkHealth
      description: "Check if DevJock API is fully operational. If everything is okay, you'll get a list where all checks are OK.\n\nOtherwise, the request will response with the failed checks."
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  finishedAt: 1707929853
                  checkResults:
                    -
                      name: DebugMode
                      label: 'Debug Mode'
                      notificationMessage: ''
                      shortSummary: 'false'
                      status: ok
                      meta:
                        actual: false
                        expected: false
                properties:
                  finishedAt:
                    type: integer
                    example: 1707929853
                  checkResults:
                    type: array
                    example:
                      -
                        name: DebugMode
                        label: 'Debug Mode'
                        notificationMessage: ''
                        shortSummary: 'false'
                        status: ok
                        meta:
                          actual: false
                          expected: false
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          example: DebugMode
                        label:
                          type: string
                          example: 'Debug Mode'
                        notificationMessage:
                          type: string
                          example: ''
                        shortSummary:
                          type: string
                          example: 'false'
                        status:
                          type: string
                          example: ok
                        meta:
                          type: object
                          properties:
                            actual:
                              type: boolean
                              example: false
                            expected:
                              type: boolean
                              example: false
      tags:
        - Utilities
      security: []
  /v1.0/resources/list:
    get:
      summary: 'Get User Context'
      operationId: getUserContext
      description: "Get Devjock context information for the authenticated user.\n\nThis includes information about Devjock life_cycles and the user's workspaces and team members."
      parameters:
        -
          in: header
          name: X-Server-Apikey
          description: ''
          example: E79GH-UIL999
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  today: 'Thu, 12 Sep 2025 14:30:45 GMT'
                  generated_at: 1726150245
                  Devjock:
                    life_cycles:
                      -
                        id: 1
                        name: Development
                        description: 'Development lifecycle for new features'
                      -
                        id: 2
                        name: Bug
                        description: 'Bug tracking and resolution lifecycle'
                    statuses:
                      -
                        id: 1
                        name: Open
                        description: 'Task is open and ready to work'
                      -
                        id: 2
                        name: 'In Progress'
                        description: 'Work is actively being done'
                    workspaces:
                      -
                        id: 1
                        name: 'Project Alpha'
                        description: 'Main development workspace'
                      -
                        id: 2
                        name: 'Testing Environment'
                        description: 'QA and testing workspace'
                    sprints:
                      -
                        id: 123
                        name: 'Sprint 1'
                        description: 'First quarter development sprint'
                        workspace_ids:
                          - 1
                          - 2
                      -
                        id: 124
                        name: 'Sprint 2'
                        description: 'API improvements and bug fixes'
                        workspace_ids:
                          - 1
                    tags:
                      -
                        id: 16
                        name: Operations
                        symbol: Op
                        description: 'Operations related tasks'
                        workspace_id: 1
                      -
                        id: 17
                        name: 'High Priority'
                        symbol: '!'
                        description: 'High priority items'
                        workspace_id: 1
                    groups:
                      -
                        id: 123
                        name: 'Backend Infrastructure'
                        description: 'Core backend systems and infrastructure improvements'
                        workspace_id: 1
                      -
                        id: 124
                        name: 'User Interface Redesign'
                        description: 'Modern UI/UX improvements and responsive design'
                        workspace_id: 2
                  me:
                    userid: 1001
                    name: 'John Smith'
                    team_members:
                      -
                        userid: 1002
                        name: 'Jane Doe'
                        workspace_ids:
                          - 1
                          - 2
                      -
                        userid: 1003
                        name: 'Bob Johnson'
                        workspace_ids:
                          - 1
                properties:
                  today:
                    type: string
                    example: 'Thu, 12 Sep 2025 14:30:45 GMT'
                  generated_at:
                    type: integer
                    example: 1726150245
                  Devjock:
                    type: object
                    properties:
                      life_cycles:
                        type: array
                        example:
                          -
                            id: 1
                            name: Development
                            description: 'Development lifecycle for new features'
                          -
                            id: 2
                            name: Bug
                            description: 'Bug tracking and resolution lifecycle'
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 1
                            name:
                              type: string
                              example: Development
                            description:
                              type: string
                              example: 'Development lifecycle for new features'
                      statuses:
                        type: array
                        example:
                          -
                            id: 1
                            name: Open
                            description: 'Task is open and ready to work'
                          -
                            id: 2
                            name: 'In Progress'
                            description: 'Work is actively being done'
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 1
                            name:
                              type: string
                              example: Open
                            description:
                              type: string
                              example: 'Task is open and ready to work'
                      workspaces:
                        type: array
                        example:
                          -
                            id: 1
                            name: 'Project Alpha'
                            description: 'Main development workspace'
                          -
                            id: 2
                            name: 'Testing Environment'
                            description: 'QA and testing workspace'
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 1
                            name:
                              type: string
                              example: 'Project Alpha'
                            description:
                              type: string
                              example: 'Main development workspace'
                      sprints:
                        type: array
                        example:
                          -
                            id: 123
                            name: 'Sprint 1'
                            description: 'First quarter development sprint'
                            workspace_ids:
                              - 1
                              - 2
                          -
                            id: 124
                            name: 'Sprint 2'
                            description: 'API improvements and bug fixes'
                            workspace_ids:
                              - 1
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 123
                            name:
                              type: string
                              example: 'Sprint 1'
                            description:
                              type: string
                              example: 'First quarter development sprint'
                            workspace_ids:
                              type: array
                              example:
                                - 1
                                - 2
                              items:
                                type: integer
                      tags:
                        type: array
                        example:
                          -
                            id: 16
                            name: Operations
                            symbol: Op
                            description: 'Operations related tasks'
                            workspace_id: 1
                          -
                            id: 17
                            name: 'High Priority'
                            symbol: '!'
                            description: 'High priority items'
                            workspace_id: 1
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 16
                            name:
                              type: string
                              example: Operations
                            symbol:
                              type: string
                              example: Op
                            description:
                              type: string
                              example: 'Operations related tasks'
                            workspace_id:
                              type: integer
                              example: 1
                      groups:
                        type: array
                        example:
                          -
                            id: 123
                            name: 'Backend Infrastructure'
                            description: 'Core backend systems and infrastructure improvements'
                            workspace_id: 1
                          -
                            id: 124
                            name: 'User Interface Redesign'
                            description: 'Modern UI/UX improvements and responsive design'
                            workspace_id: 2
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 123
                            name:
                              type: string
                              example: 'Backend Infrastructure'
                            description:
                              type: string
                              example: 'Core backend systems and infrastructure improvements'
                            workspace_id:
                              type: integer
                              example: 1
                  me:
                    type: object
                    properties:
                      userid:
                        type: integer
                        example: 1001
                      name:
                        type: string
                        example: 'John Smith'
                      team_members:
                        type: array
                        example:
                          -
                            userid: 1002
                            name: 'Jane Doe'
                            workspace_ids:
                              - 1
                              - 2
                          -
                            userid: 1003
                            name: 'Bob Johnson'
                            workspace_ids:
                              - 1
                        items:
                          type: object
                          properties:
                            userid:
                              type: integer
                              example: 1002
                            name:
                              type: string
                              example: 'Jane Doe'
                            workspace_ids:
                              type: array
                              example:
                                - 1
                                - 2
                              items:
                                type: integer
      tags:
        - Utilities
  /v1.0/vision/describe-images:
    post:
      summary: 'Describe Images'
      operationId: describeImages
      description: "Takes a promt and collection of images then returns a list of answers for each image based on prompt.\nThis is simplified way to ask question about images,\nother way is to do it over [Chat](/docs#chat-POSTv1-0-chat-completions) API endpoint."
      parameters:
        -
          in: header
          name: X-Server-Apikey
          description: ''
          example: E79GH-UIL999
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  text: 'Some text ...'
                properties:
                  text:
                    type: string
                    example: 'Some text ...'
      tags:
        - Vision
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                prompt:
                  type: string
                  description: 'Prompt with question about images.'
                  example: 'Please describe image'
                  nullable: false
                images:
                  type: array
                  description: 'Collection of images to send. Must have at least 1 items.'
                  example:
                    - []
                  items:
                    type: object
                    properties:
                      image:
                        type: string
                        description: 'Image to describe, can be URL, base64 encoded or file.'
                        example: 'https://shorturl.at/hrov6'
                        nullable: false
                    required:
                      - image
              required:
                - prompt
                - images
  /v1.0/workspaces/list:
    get:
      summary: List
      operationId: list
      description: "Will return a list of workspaces where the authenticated user is a team member.\n\nBy default only active workspaces are returned.\nTo include inactive workspaces, include the `show_inactive` query parameter."
      parameters:
        -
          in: query
          name: page
          description: ''
          example: 1
          required: false
          schema:
            type: integer
            description: ''
            example: 1
            nullable: false
        -
          in: query
          name: workspace_id
          description: 'A single workspace id or a comma separated list of workspace ids.'
          example: '1,2,3'
          required: false
          schema:
            type: string
            description: 'A single workspace id or a comma separated list of workspace ids.'
            example: '1,2,3'
            nullable: false
        -
          in: query
          name: show_inactive
          description: 'Will return workspaces marked inactive if included.'
          example: 'true'
          required: false
          schema:
            type: string
            description: 'Will return workspaces marked inactive if included.'
            example: 'true'
            nullable: false
        -
          in: header
          name: X-Server-Apikey
          description: ''
          example: E79GH-UIL999
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  total_workspaces: 2
                  this_page: 1
                  has_more_pages: false
                  total_pages: 1
                  count_workspaces_returned: 2
                  workspaces:
                    -
                      id: 123
                      active: 1
                      name: 'Project Alpha'
                      description: 'Main development workspace'
                    -
                      id: 124
                      active: 1
                      name: 'Testing Environment'
                      description: 'QA and testing workspace'
                properties:
                  total_workspaces:
                    type: integer
                    example: 2
                  this_page:
                    type: integer
                    example: 1
                  has_more_pages:
                    type: boolean
                    example: false
                  total_pages:
                    type: integer
                    example: 1
                  count_workspaces_returned:
                    type: integer
                    example: 2
                  workspaces:
                    type: array
                    example:
                      -
                        id: 123
                        active: 1
                        name: 'Project Alpha'
                        description: 'Main development workspace'
                      -
                        id: 124
                        active: 1
                        name: 'Testing Environment'
                        description: 'QA and testing workspace'
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 123
                        active:
                          type: integer
                          example: 1
                        name:
                          type: string
                          example: 'Project Alpha'
                        description:
                          type: string
                          example: 'Main development workspace'
      tags:
        - Workspaces
tags:
  -
    name: 'AI Agents'
    description: ''
  -
    name: 'AI Chats'
    description: ''
  -
    name: 'AI Prompts'
    description: ''
  -
    name: Documents
    description: ''
  -
    name: Groups
    description: ''
  -
    name: 'Project Assistants'
    description: ''
  -
    name: 'Project Attachments'
    description: ''
  -
    name: 'Project Comments'
    description: ''
  -
    name: Projects
    description: ''
  -
    name: RAG
    description: ''
  -
    name: 'RAG Assistant'
    description: ''
  -
    name: Scrape
    description: ''
  -
    name: Sentry
    description: ''
  -
    name: Sprints
    description: ''
  -
    name: Tags
    description: ''
  -
    name: Transcribe
    description: ''
  -
    name: Utilities
    description: ''
  -
    name: Vision
    description: ''
  -
    name: Workspaces
    description: ''
components:
  securitySchemes:
    default:
      type: http
      scheme: bearer
      description: "You can retrieve your API Key by clicking your name in \n                         the main site's header and looking under <b>My Info</b>."
security:
  -
    default: []
