openapi: 3.0.2
info:
  title: API проверка по реестру террористов и экстремистов Росфинмониторинга
  description: Сервис позволяет проверить наличие физического лица в реестре террористов и экстремистов Росфинмониторинга по имени, фамилии, отчеству и дате рождения. Все запросы требуют указания ключа доступа (`key`).
  version: 1.0.0
servers:
  - url: https://parser-api.com/parser/ter_ext_api
paths:
  /search_fiz:
    get:
      summary: Проверка физического лица
      description: Проверка наличия физического лица в реестре террористов и экстремистов Росфинмониторинга.
      parameters:
        - name: key
          in: query
          required: true
          schema:
            type: string
          description: Ключ доступа (обязательный).
        - name: lastName
          in: query
          required: true
          schema:
            type: string
          description: Фамилия проверяемого лица (обязательный).
          example: Сысоев
        - name: firstName
          in: query
          required: true
          schema:
            type: string
          description: Имя проверяемого лица (обязательный).
          example: Александр
        - name: middleName
          in: query
          required: false
          schema:
            type: string
          description: Отчество проверяемого лица (необязательный).
          example: Сергеевич
        - name: dob
          in: query
          required: false
          schema:
            type: string
            format: date
          description: Дата рождения в формате YYYY-MM-DD (необязательный).
          example: 1983-04-15
      responses:
        '200':
          description: Успешная валидация и обработка запроса.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: integer
                    description: Флаг успешности выполнения запроса. При получении 0 сделайте повторный запрос сразу же или через несколько минут.
                    example: 1
                  found:
                    type: integer
                    description: Найдено ли лицо в реестре. 1 - найдено, 0 - не найдено.
                    example: 1
                  records:
                    type: array
                    items:
                      type: object
                      properties:
                        text:
                          type: string
                          description: Текстовая запись из реестра террористов и экстремистов.
                    description: Массив найденных записей. Пустой массив если ничего не найдено.
                    example:
                      - text: "15389. СЫСОЕВ АЛЕКСАНДР СЕРГЕЕВИЧ*, 15.04.1983 г.р. , С. КАРАГАЙ ПЕРМСКОЙ ОБЛАСТИ;"
              examples:
                personFound:
                  value:
                    success: 1
                    found: 1
                    records:
                      - text: "15389. СЫСОЕВ АЛЕКСАНДР СЕРГЕЕВИЧ*, 15.04.1983 г.р. , С. КАРАГАЙ ПЕРМСКОЙ ОБЛАСТИ;"
                personNotFound:
                  value:
                    success: 1
                    found: 0
                    records: []
        '400':
          description: Ошибка валидации запроса.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Подробное описание ошибки.
                    example: lastName is required
                  error_code:
                    type: integer
                    description: Код ошибки.
                    example: 40001
              examples:
                missingLastName:
                  value:
                    error: lastName is required
                    error_code: 40001
                missingFirstName:
                  value:
                    error: firstName is required
                    error_code: 40001
                invalidDob:
                  value:
                    error: Invalid dob format. Use YYYY-MM-DD
                    error_code: 40001
        '403':
          description: Ограничение доступа к сервису.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Подробное описание ошибки.
                    example: Invalid access key
                  error_code:
                    type: integer
                    description: Код ошибки.
                    example: 40301
              examples:
                invalidKey:
                  value:
                    error: Invalid access key
                    error_code: 40301
                expiredSubscription:
                  value:
                    error: The subscription period has expired
                    error_code: 40302
                invalidIP:
                  value:
                    error: Invalid IP
                    error_code: 40303
                dayLimitExceeded:
                  value:
                    error: Day limit of requests exceeded
                    error_code: 40304
                monthLimitExceeded:
                  value:
                    error: Month limit of requests exceeded
                    error_code: 40305
