Деперсонализировать текст

Упрощённый endpoint для удаления персональных данных из текста. Эквивалентен `POST /tasks` с шагом `[depersonalize]`. Удаляет ФИО, телефоны, email, адреса и другие PII.

POST
/pii

Authorization

AuthorizationRequiredBearer <token>

API ключ для аутентификации. Передавайте в заголовке Authorization: Bearer sk-...

In: header

Request Body

application/jsonRequired
inputRequiredstring

Текст для деперсонализации (до 100 000 символов)

Minimum length: 1Maximum length: 100000
modestring

Режим деперсонализации:

  • blind — необратимое удаление PII
  • reversible — обратимое (можно восстановить)
  • randomize — замена на синтетические данные
Default: "blind"Value in: "blind" | "reversible" | "randomize"
language_instring

Язык входного текста (ISO 639-1)

Default: "ru"Minimum length: 2Maximum length: 2
language_outstring

Язык результата (ISO 639-1)

Default: "ru"Minimum length: 2Maximum length: 2
webhook_urlstring

URL для отправки результата

Format: "uri"
ttlinteger

Время жизни данных результата в часах

Default: 4Minimum: 0Maximum: 24
metadataarray<object>

Метаданные задачи (до 50 key-value пар)

Response Body

Задача создана

successboolean
dataobject

Ошибка валидации запроса. Тело запроса не соответствует схеме или содержит невалидные значения.

Поле errors содержит детализацию по каждому невалидному полю.

successRequiredboolean
errorRequiredobject
errorsarray<object>

Детализация ошибок валидации (при code=VALIDATION_ERROR)

Ошибка аутентификации.

КодПричинаЧто делать
MISSING_API_KEYЗаголовок Authorization отсутствуетДобавьте Authorization: Bearer sk-...
INVALID_AUTH_FORMATНеверный формат заголовкаИспользуйте формат Bearer sk-...
INVALID_API_KEYКлюч не найден в системеПроверьте ключ в личном кабинете
API_KEY_INACTIVEКлюч деактивированАктивируйте ключ в личном кабинете
API_KEY_EXPIREDСрок действия ключа истёкСоздайте новый ключ
successRequiredboolean
errorRequiredobject
errorsarray<object>

Детализация ошибок валидации (при code=VALIDATION_ERROR)

Недостаточно средств на балансе для выполнения операции. Пополните баланс в личном кабинете.

successRequiredboolean
errorRequiredobject
errorsarray<object>

Детализация ошибок валидации (при code=VALIDATION_ERROR)

Превышен лимит запросов для вашего тарифа. Повторите запрос через время, указанное в заголовке Retry-After.

Лимиты зависят от тарифа (см. раздел Тарифы в личном кабинете).

successRequiredboolean
errorRequiredobject
errorsarray<object>

Детализация ошибок валидации (при code=VALIDATION_ERROR)

Ошибка upstream-сервиса (Core API). Сервис обработки временно недоступен. Повторите запрос позже.

successRequiredboolean
errorRequiredobject
errorsarray<object>

Детализация ошибок валидации (при code=VALIDATION_ERROR)

curl -X POST "/api/v1/pii" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "input": "Иван Иванов позвонил по телефону +7 (999) 123-45-67",
    "mode": "blind",
    "webhook_url": "https://example.com/webhook"
  }'
const body = JSON.stringify({
  "input": "Иван Иванов позвонил по телефону +7 (999) 123-45-67",
  "mode": "blind",
  "webhook_url": "https://example.com/webhook"
})

fetch("/api/v1/pii", {
  headers: {
    "Authorization": "Bearer <token>"
  },
  body
})
package main

import (
  "fmt"
  "net/http"
  "io/ioutil"
  "strings"
)

func main() {
  url := "/api/v1/pii"
  body := strings.NewReader(`{
    "input": "Иван Иванов позвонил по телефону +7 (999) 123-45-67",
    "mode": "blind",
    "webhook_url": "https://example.com/webhook"
  }`)
  req, _ := http.NewRequest("POST", url, body)
  req.Header.Add("Authorization", "Bearer <token>")
  req.Header.Add("Content-Type", "application/json")
  res, _ := http.DefaultClient.Do(req)
  defer res.Body.Close()
  body, _ := ioutil.ReadAll(res.Body)

  fmt.Println(res)
  fmt.Println(string(body))
}
import requests

url = "/api/v1/pii"
body = {
  "input": "Иван Иванов позвонил по телефону +7 (999) 123-45-67",
  "mode": "blind",
  "webhook_url": "https://example.com/webhook"
}
response = requests.request("POST", url, json = body, headers = {
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
})

print(response.text)
{
  "success": true,
  "data": {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "status": "pending",
    "input": {},
    "output": {},
    "error": "string",
    "webhook_url": "string",
    "expires_at": "2019-08-24T14:15:22Z",
    "expired": true,
    "metadata": [
      {
        "key": "string",
        "value": "string"
      }
    ],
    "created_at": "2019-08-24T14:15:22Z",
    "updated_at": "2019-08-24T14:15:22Z",
    "completed_at": "2019-08-24T14:15:22Z"
  }
}

{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Invalid request body"
  },
  "errors": [
    {
      "field": "url",
      "message": "Укажите url или input"
    }
  ]
}

{
  "success": false,
  "error": {
    "code": "MISSING_API_KEY",
    "message": "API key is required. Pass it in Authorization header: Bearer sk-..."
  }
}

{
  "success": false,
  "error": {
    "code": "INSUFFICIENT_BALANCE",
    "message": "Недостаточно средств на балансе"
  }
}
{
  "success": false,
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "message": "Rate limit exceeded. Try again in 12 seconds"
  }
}
{
  "success": false,
  "error": {
    "code": "UPSTREAM_ERROR",
    "message": "Processing service is temporarily unavailable"
  }
}