openapi: 3.0.3
info:
  title: Документация API GPT-OPEN 
  version: 1.0.0
  description:
components:
  securitySchemes:
    BearerAuth:         
      type: http
      scheme: bearer
servers:
  - url: https://gpt-open.ru/api/action
tags:
- name: Методы API GPT-OPEN
paths:
  /get_account_data:
    post:
      tags:
        - Методы API GPT-OPEN
      summary: Получение данных
      description: | 
        Этот метод используется для получения данных Вашего аккаунта GPT-OPEN по API-ключу.
  
        **Пример использования cURL запросом:**
  
        ```cURL
        curl --location --request POST 'https://gpt-open.ru/api/action/get_account_data' \
        --header 'Authorization: Bearer API-ключ'
        ```
      security:
        - BearerAuth: []
      responses:
        '200':
          description: Успешный запрос
          content:
            application/json:
              example:
                email: "Ваша почта"
                remaining_number_requests: "Оставшееся количество запросов"
                api_key: "API-ключ"
  /get_models:
    post:
      tags:
        - Методы API GPT-OPEN
      summary: Получение списка моделей
      description: |
        Этот метод возвращает список всех доступных моделей.

        **Если при работе с моделью возникают пропуски символов или ответы содержат значительное количество ошибок, попробуйте сменить модель и сообщите об этом через форму обратной связи.**

        **Пример использования cURL запросом:**
  
        ```cURL
        curl --location --request POST 'https://gpt-open.ru/api/action/get_models' \
        --header 'Authorization: Bearer API-ключ'
        ```
      security:
        - BearerAuth: []
      responses:
        '200':
          description: Успешный запрос
          content:
            application/json:
              example:
                available_models: "Список доступных моделей"
  /new_message:
    post:
      tags:
        - Методы API GPT-OPEN
      summary: Отправка запросов к API GPT-OPEN
      description: |
        Этот метод позволяет отправить сообщение модели GPT-OPEN и получить ответ.

        **Режимы работы:**
        - **Обычный режим:** API возвращает полный ответ после завершения обработки запроса.
        - **Потоковый режим:** При указании параметра `stream=true`, ответ передается частями (данный режим на текущей странице не поддерживается).

        **Форматы отправляемых данных:**
        - `application/x-www-form-urlencoded`
        - `multipart/form-data`

        **Примечание:** Если формат не указан, по умолчанию используется `application/x-www-form-urlencoded`.

        Параметры передаются в виде ассоциативного массива. Пример:

        ```пример передаваемых параметров:
        $data = [ 
          "message" => "Ваше сообщение" (обязательный параметр),
          "stream" => "true" (опционально, по умолчанию используется обычный режим),
          "model" => "gpt-open" (опционально, по умолчанию используется модель gpt-open)
        ]
        ```

        **Пример использования cURL:**

        ```cURL
        curl --location 'https://gpt-open.ru/api/action/new_message' \
        --header 'Authorization: Bearer API-ключ' \
        --form 'message=Привет' \
        --form 'model=gpt-open'
        ```
      security:
        - BearerAuth: []
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                message:
                  description: После нажатия "Попробовать" введите в поле ваше сообщение
                  type: string
                stream:
                  description: true для примера ответа в режиме потока (в данный момент режим потока на данной странице не поддерживается)
                  type: string
                model:
                  description: Название модели
                  type: string
      responses:
        '200':
          description: Успешный запрос
          content:
            application/json:
              example:
                response: "Привет, как я могу тебе сегодня помочь?"
            application/octet-stream:
              schema:
                type: string
                format: binary
              example: |
                data: {"object":"response.chunk","response":"Пр"}

                data: {"object":"response.chunk","response":"ив"}

                data: {"object":"response.chunk","response":"ет"}

                data: {"object":"response.chunk","response":"!"}

                data: {"object":"response.chunk","response":" Ч"}

                data: {"object":"response.chunk","response":"ем"}

                data: {"object":"response.chunk","response":"ог"}

                data: {"object":"response.chunk","response":" пом"}

                data: {"object":"response.chunk","response":"оч"}

                data: {"object":"response.chunk","response":"ь"}

                data: {"object":"response.chunk","response":"?"}

                {"response":"Сообщение об завершении ответа в режиме потока"}
        '400':
          description: Ошибка в запросе
          content:
            application/json:
              example:
                error: "Bad Request: Некорректный запрос или параметры."
        '401':
          description: Ошибка авторизации
          content:
            application/json:
              example:
                error: "Unauthorized: Ошибка авторизации. Проверьте корректность вашего API-ключа."

