Работаем с методами GET — начало

Теперь, когда вы изучили вводную информацию про API Smartcat и Краткое руководство по интеграции, рассмотрим некоторые основные GET-методы.

Получаем значения из справочника

В справочниках Smartcat содержится различная полезная информация, которую можно использовать в других запросах — например, списки специализаций, стран или валют. Получить любой справочник можно методом GET directory.

Пример: directory

Request URL: 
https://smartcat.ai/api/integration/v1/directory?type=language

Headers:
Authorization: Basic ZG0wMTpRd2VydHkxMjM=

Виды справочников на уровне аккаунта:

  • vendor — поставщики, подключенные к аккаунту
  • domain — группы проектов, заданные в аккаунте
  • client — клиенты, добавленные в аккаунте
  • group — уровни доступа в аккаунт
  • netRate — тарифные сетки, заданные для аккаунта

Виды справочников на уровне системы:

  • language — языки
  • projectStatus — возможные статусы проектов
  • documentStatus — возможные статусы документов
  • currency — валюты
  • freelancerServiceType — возможные виды услуг (перевод, редактура и т.д.)
  • specialization — возможные специализации
  • specializationKnowledgeLevel — возможные уровни подтверждения опыта в специализациях (протестирован, сертифицирован и т.п.)
  • lspServiceType — возможные виды услуг для LSP

Второй полезный метод — GET directory/formats, с помощью которого можно узнать все форматы файлов, поддерживаемые в аккаунте.

Пример: directory/formats

Request URL: 
https://smartcat.ai/api/integration/v1/directory/formats

Headers:
Authorization: Basic ZG0wMTpRd2VydHkxMjM=

Получаем информацию об аккаунте

Получить информацию об аккаунте можно с помощью метода GET account. В ответ вы получите идентификатор аккаунта, его название, первичный тип (личный или корпоративный) и вторичный тип (переводческая компания или другая компания).

Пример: account

Request URL: 
https://smartcat.ai/api/integration/v1/account

Headers:
Authorization: Basic ZG0wMTpRd2VydHkxMjM=

Response:
{
  "id": "91c6d7fa-4677-490b-a048-6f418e9ee55e",
  "name": "MyAccount",
  "isPersonal": false,
  "type": "LSP"
}

Если тип вашего аккаунта — LSP, вы также можете получить список услуг из вашего профиля LSP методом GET account/lsp/services.

Пример: account/lsp/services

Request URL: 
https://smartcat.ai/api/integration/v1/account/lsp/services

Headers:
Authorization: Basic ZG0wMTpRd2VydHkxMjM=

Response:
[
  {
     "sourceLanguage": "en",
     "targetLanguage": "ru",
     "name": "Translation",
     "pricePerUnit": 0.5,
     "pricePerUnitCurrency": "usd",
     "serviceTypes": [
     "translation"
     ],
     "specializations": []
  },
  {
     "sourceLanguage": "ru",
     "targetLanguage": "es-AR",
     "name": "Translation",
     "pricePerUnit": 0.5,
     "pricePerUnitCurrency": "usd",
     "serviceTypes": [
     "translation"
     ],
     "specializations": []
  }
]

PS:
Вы также можете получить список услук в определенной языковой паре. В этом случае запрос будет выглядеть так:
https://smartcat.ai/api/integration/v1/account/lsp/services?sourceLanguage=en&targetLanguage=fr

Метод GET account/mtengines возвращает движки машинного перевода, подключённые к аккаунту.

Пример: account/mtengines

Request URL: 
https://smartcat.ai/api/integration/v1/account/mtengines

Headers:
Authorization: Basic ZG0wMTpRd2VydHkxMjM=

Response:
[
  {
     "id": "754204d5-3c49-4bc0-a5aa-28adf2e34b98",
     "name": "Google"
  },
  {
     "id": "f2aefafe-87b7-49a2-9c51-17858e3dec52",
     "name": "Google Neural Machine Translation"
  },
  {
     "id": "a22b2732-1fca-3ab5-da9e-c95ab68affff",
     "name": "Microsoft Translator"
  }
]

Метод GET account/myteam/{userId} позволяет получить информацию об участнике вашей команды в Smartcat. Также можно использовать метод GET account/myteam/ без userId, передавая ваш собственный (внешний) идентификатор в параметрах запроса.

Пример: account/myteam/{userId}

Request URL: 
https://smartcat.ai/api/integration/v1/account/myteam/7aaee713-1810-4dcf-9ec8-c7b4832254e2

Headers:
Authorization: Basic dGVzdGFwaToxMjM0NTY=

Response:
{
  "id": "7aaee713-1810-4dcf-9ec8-c7b4832254e2",
  "email": "a.nichols@mailforspam.com",
  "firstName": "Aleksandra",
  "lastName": "Nichols",
  "services": [
     {
     "serviceType": "translation",
     "sourceLanguage": "en",
     "targetLanguage": "es",
     "pricePerUnit": 0.015,
     "currency": "usd",
     "specializations": []
     }
  ]
}

Пример: account/myteam

Request URL: 
https://smartcat.ai/api/integration/v1/account/myteam?externalId=1150

Headers:
Authorization: Basic dGVzdGFwaToxMjM0NTY=

Response:
{
  "id": "7aaee713-1810-4dcf-9ec8-c7b4832254e2",
  "email": "a.nichols@mailforspam.com",
  "firstName": "Aleksandra",
  "lastName": "Nichols",
  "externalId": "1150",
  "services": [
     {
     "serviceType": "translation",
     "sourceLanguage": "en",
     "targetLanguage": "es",
     "pricePerUnit": 0.015,
     "currency": "usd",
     "specializations": []
     }
  ]
}

Метод GET client/{clientId} возвращает информацию о клиентах, заданных в вашем аккаунте.

Пример: client/{clientId}

Request URL: 
https://smartcat.ai/api/integration/v1/client/36cbed44-eeea-414e-9769-6b9f2002885c

Headers:
Authorization: Basic ZG0wMTpRd2VydHkxMjM=

Response:
{
"id": "36cbed44-eeea-414e-9769-6b9f2002885c",
"name": "Client",
"netRate": {
  "id": "5c0eae836baff30a2084e25d",
  "name": "NetRate",
  "newWordsRate": 1,
  "repetitionsRate": 0,
  "tmMatchRates": [
     {
        "fromQuality": 50,
        "toQuality": 74,
        "value": 1
     },
     {
        "fromQuality": 75,
        "toQuality": 84,
        "value": 1
     },
     {
       "fromQuality": 85,
       "toQuality": 94,
       "value": 0.9
     },
     {
       "fromQuality": 95,
       "toQuality": 99,
       "value": 0.8
     },
     {
       "fromQuality": 100,
       "toQuality": 100,
       "value": 0
     },
     {
        "fromQuality": 101,
        "toQuality": 101,
        "value": 0
     },
     {
        "fromQuality": 102,
        "toQuality": 102,
        "value": 0
     }
  ]
}
}

В ответе придёт название и идентификатор клиента, а также данные о назначенной ему тарифной сетки. fromQuality — нижний порог, определяющий уровень совпадения с памятью переводов, toQuality — верхний порог, value — коэффициент коррекции. Например, fromQuality 85, toQuality 94 и value 0.9 означают, что за совпадения от 85% до 94% включительно будет применена скидка 10%.

 Получаем информацию о проекте

Проекты — ключевые объекты вашего аккаунта. Именно в них находятся все документы, которые вы переводите, а также такая информация, как срок исполнения, менеджер проекта и т.д.

Метод GET project/list возвращает список проектов в вашем аккаунте с подробными данными о каждом.

Пример: project/list

Request URL: 
https://smartcat.ai/api/integration/v1/project/list

Headers:
Authorization: Basic ZG0wMTpRd2VydHkxMjM=

Response:
[
  {
     "id": "1c0c9279-6868-4093-9564-d5ff693fe944",
     "name": "Test",
     "description": "",
     "creationDate": "2018-12-08T19:41:35.468Z",
     "createdByUserId": "ac56ed95-bd78-43a4-b817-30a7b12d3269",
     "modificationDate": "2018-12-08T19:41:35.468Z",
     "sourceLanguage": "en",
     "targetLanguages": [
        "ru"
     ],
     "status": "created",
     "statusModificationDate": "2018-12-08T19:41:35.468Z",
     "vendors": [],
     "workflowStages": [
  {
     "progress": 0,
     "stageType": "translation"
  }
     ],
     "documents": [
     {
        "id": "cd08227b3c181d6a9e8524f0_25",
        "name": "Test",
        "creationDate": "2018-12-08T19:41:35.515Z",
        "sourceLanguage": "en",
        "documentDisassemblingStatus": "success",
        "targetLanguage": "ru",
        "status": "created",
        "wordsCount": 2,
        "statusModificationDate": "2018-12-08T19:41:35.515Z",
        "pretranslateCompleted": false,
        "workflowStages": [
     {
        "progress": 0,
        "wordsTranslated": 0,
        "unassignedWordsCount": 0,
        "status": "assigned",
        "executives": [
     {
        "assignedWordsCount": 2,
        "progress": 0,
        "id": "64b982ad-8b06-447b-82e1-cbbb7ab3e327"
     }
      ]
     }
     ],
        "externalId": "cd08227b3c181d6a9e8524f0",
        "placeholdersAreEnabled": true
     }
     ],
     "specializations": []
}

Метод GET project/{projectId} возвращает информацию о конкретном проекте по его идентификатору.

Пример: project/{projectId}

Request URL: 
https://smartcat.ai/api/integration/v1/project/67db6b32-1d54-4a09-940e-c1f550751787

Headers:
Authorization: Basic ZG0wMTpRd2VydHkxMjM=

Response:
{
     "id": "67db6b32-1d54-4a09-940e-c1f550751787",
     "name": "test",
     "description": "",
     "creationDate": "2018-12-17T22:19:07.234Z",
     "createdByUserId": "ac56ed95-bd78-43a4-b817-30a7b12d3269",
     "modificationDate": "2018-12-17T22:19:07.234Z",
     "sourceLanguage": "en",
     "targetLanguages": [
     "ru"
     ],
     "status": "inProgress",
     "statusModificationDate": "2018-12-17T22:19:51.351Z",
     "vendors": [],
     "workflowStages": [
        {
           "progress": 0,
           "stageType": "translation"
        }
     ],
     "documents": [
        {
           "id": "dd386e70420c1d60fc560f84_25",
           "name": "test",
           "creationDate": "2018-12-17T22:19:51.335Z",
           "sourceLanguage": "en",
           "documentDisassemblingStatus": "success",
           "targetLanguage": "ru",
           "status": "created",
           "wordsCount": 1,
           "statusModificationDate": "2018-12-17T22:19:51.337Z",
           "pretranslateCompleted": false,
           "workflowStages": [
             {
                 "progress": 0,
                 "wordsTranslated": 0,
                 "unassignedWordsCount": 1,
                 "status": "notAssigned",
                 "executives": []
              }
           ],
           "externalId": "dd386e70420c1d60fc560f84",
           "placeholdersAreEnabled": true
        }
     ],
     "specializations": []
}

Метод GET project/{projectId}/statistics возвращает подробную статистику слов и знаков в проекте — как для всего проекта, так и для каждого документа в отдельности.

Пример: project/{projectId}/statistics

Request URL: 
https://smartcat.ai/api/integration/v1/project/67db6b32-1d54-4a09-940e-c1f550751787/statistics

Headers:
Authorization: Basic ZG0wMTpRd2VydHkxMjM=

Response:
[
    {
        "language": "ru",
        "statistics": [
           {
              "name": "total",
              "words": 1,
              "percent": 100,
              "segments": 1,
              "pages": 0,
              "charsWithoutSpaces": 4,
              "charsWithSpaces": 4,
              "effectiveWordsForBilling": 1
           },
           {
              "name": "newWords",
              "words": 1,
              "percent": 100,
              "segments": 1,
              "pages": 0,
              "charsWithoutSpaces": 4,
              "charsWithSpaces": 4,
              "effectiveWordsForBilling": 1
           },
           {
              "name": "repetitions",
              "words": 0,
              "percent": 0,
              "segments": 0,
              "pages": 0,
              "charsWithoutSpaces": 0,
              "charsWithSpaces": 0,
              "effectiveWordsForBilling": 0
           },
           {
              "name": "crossFileRepeated",
              "words": 0,
              "percent": 0,
              "segments": 0,
              "pages": 0,
              "charsWithoutSpaces": 0, "charsWithSpaces": 0,
              "effectiveWordsForBilling": 0
           },
           {
              "name": "contextMatch_102",
              "words": 0,
              "percent": 0,
              "segments": 0,
              "pages": 0,
              "charsWithoutSpaces": 0,
              "charsWithSpaces": 0,
              "effectiveWordsForBilling": 0 },
           {
              "name": "contextMatch_101",
              "words": 0,
              "percent": 0,
              "segments": 0,
              "pages": 0,
              "charsWithoutSpaces": 0,
              "charsWithSpaces": 0,
              "effectiveWordsForBilling": 0
           },
           {
              "name": "match_100",
              "words": 0,
              "percent": 0,
              "segments": 0,
              "pages": 0,
              "charsWithoutSpaces": 0,
              "charsWithSpaces": 0,
              "effectiveWordsForBilling": 0
           },
           {
              "name": "match_95_99",
              "words": 0,
              "percent": 0,
              "segments": 0,
              "pages": 0,
              "charsWithoutSpaces": 0,
              "charsWithSpaces": 0,
              "effectiveWordsForBilling": 0
           },
           {
              "name": "match_85_94",
              "words": 0,
              "percent": 0,
              "segments": 0,
              "pages": 0,
              "charsWithoutSpaces": 0,
              "charsWithSpaces": 0,
              "effectiveWordsForBilling": 0
           },
           {
              "name": "match_75_84",
              "words": 0,
              "percent": 0,
              "segments": 0,
              "pages": 0,
              "charsWithoutSpaces": 0,
              "charsWithSpaces": 0,
              "effectiveWordsForBilling": 0
           },
           {
              "name": "match_50_74",
              "words": 0,
              "percent": 0,
              "segments": 0,
              "pages": 0,
              "charsWithoutSpaces": 0,
              "charsWithSpaces": 0,
              "effectiveWordsForBilling": 0
           }
        ],
        "documents": [
           {
           "name": "test",
           "statistics": [
           {
              "name": "total",
              "words": 1,
              "percent": 100,
              "segments": 1,
              "pages": 0,
              "charsWithoutSpaces": 4,
              "charsWithSpaces": 4,
              "effectiveWordsForBilling": 1
           },
           {
              "name": "newWords",
              "words": 1,
              "percent": 100,
              "segments": 1,
              "pages": 0,
              "charsWithoutSpaces": 4,
              "charsWithSpaces": 4,
              "effectiveWordsForBilling": 1
           },
           {
              "name": "repetitions",
              "words": 0,
              "percent": 0,
              "segments": 0,
              "pages": 0,
              "charsWithoutSpaces": 0,
              "charsWithSpaces": 0,
              "effectiveWordsForBilling": 0
           },
           {
              "name": "crossFileRepeated",
              "words": 0,
              "percent": 0,
              "segments": 0,
              "pages": 0,
              "charsWithoutSpaces": 0,
              "charsWithSpaces": 0,
              "effectiveWordsForBilling": 0
           },
           {
              "name": "contextMatch_102",
              "words": 0,
              "percent": 0,
              "segments": 0,
              "pages": 0,
              "charsWithoutSpaces": 0,
              "charsWithSpaces": 0,
              "effectiveWordsForBilling": 0
           },
           {
              "name": "contextMatch_101",
              "words": 0,
              "percent": 0,
              "segments": 0,
              "pages": 0,
              "charsWithoutSpaces": 0,
              "charsWithSpaces": 0,
              "effectiveWordsForBilling": 0
           },
           {
              "name": "match_100", "words": 0,
              "percent": 0,
              "segments": 0,
              "pages": 0,
              "charsWithoutSpaces": 0,
              "charsWithSpaces": 0,
              "effectiveWordsForBilling": 0
           },
           {
              "name": "match_95_99",
              "words": 0,
              "percent": 0,
              "segments": 0,
              "pages": 0,
              "charsWithoutSpaces": 0,
              "charsWithSpaces": 0,
              "effectiveWordsForBilling": 0
           },
           {
              "name": "match_85_94",
              "words": 0,
              "percent": 0,
              "segments": 0,
              "pages": 0,
              "charsWithoutSpaces": 0,
              "charsWithSpaces": 0,
              "effectiveWordsForBilling": 0
           },
           {
              "name": "match_75_84",
              "words": 0,
              "percent": 0,
              "segments": 0,
              "pages": 0,
              "charsWithoutSpaces": 0,
              "charsWithSpaces": 0,
              "effectiveWordsForBilling": 0
           },
           {
              "name": "match_50_74",
              "words": 0,
              "percent": 0,
              "segments": 0,
              "pages": 0,
              "charsWithoutSpaces": 0,
              "charsWithSpaces": 0,
              "effectiveWordsForBilling": 0
           }
         ]
      }
    ]
  }
]

Метод GET project/{projectId}/completedWorkStatistics возвращает статистику для полностью или частично завершённого проекта. Запрос включает данные по всему проекту, каждому документу и каждому участвовавшему в проекте исполнителю.

Пример: project/{projectId}/completedWorkStatistics

Request URL: 
https://smartcat.ai/api/integration/v1/project/67db6b32-1d54-4a09-940e-c1f550751787/completedWorkStatistics

Headers:
Authorization: Basic ZG0wMTpRd2VydHkxMjM=

Метод GET project/{projectid}/translationmemories возвращает список всех баз памяти переводов, подключённых к проекту.

Пример: project/{projectId}/translationMemories

Request URL: 
https://smartcat.ai/api/integration/v1/project/67db6b32-1d54-4a09-940e-c1f550751787/translationmemories

Headers:
Authorization: Basic ZG0wMTpRd2VydHkxMjM=

Response:
[
   {
      "id": "94ef1275-7c45-4a77-b193-43a49099f736",
      "matchThreshold": 75,
      "isWritable": true
    }
]

"isWritable": true определяет память переводов, в которой находится ваш перевод.

Метод GET project/{projectid}/glossaries возвращает список всех глоссариев, подключённых к проекту.

Пример: project/{projectId}/glossaries

Request URL: 
https://smartcat.ai/api/integration/v1/project/67db6b32-1d54-4a09-940e-c1f550751787/glossaries

Headers:
Authorization: Basic ZG0wMTpRd2VydHkxMjM=

Response:
[
   {
      "id": "ba226212-7e7a-4bf8-aad9-17a875d71d21",
      "name": "Glossary",
      "description": "",
      "languages": [
         "en",
         "ru"
      ],
      "units": 1,
      "unitsPending": 0
   }
]

 

Понравилось?

1