{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"a7cd816a-547c-4a54-8f92-676a4db3c4c2","name":"Got It AI - Documentação da API","description":"Nossa RESTful API permite você enviar um texto, e receber de volta um objeto JSON com todas as informações que você precisa.\n\nFizemos a nossa API pensando em facilidade pra você. Nosso objetivo é que com **uma simples requisição HTTP, você consiga extrair dados importantes de qualquer texto!**\n\nAbaixo você terá um breve overview de como implementar nossa API, e depois uma descrição mais abrangente sobre cada detalhe da implementação.\n\nVocê vai ver que nossa API é muito fácil de ser implementada!\n\n\n----\n\n\n# Implementação\n\nVeja como é fácil e rápido implementar:\n1. Autentique sua requisição, utilizando sua `API Key` *Mais abaixo estão todos os detalhes sobre a `API Key`*.\n2. Crie um objeto `JSON` com os dados da análise que você deseja realizar. Ou seja: o seu texto, e as features que você quer executar.\n3. Execute uma requisição `POST`, passando estes dados.\n\n**Pronto! No retorno desta requisição estarão todas as informações da sua análise.**\n\n\n----\n\n\n# EndPoint\n\nPara manter extrema simplicidade, utilizamos apenas 1 endpoint! Basta você fazer uma requisição `HTTP` utilizando o método `POST` para o endpoint (URL):\n\n    https://api.gotit.ai/NLU/v1.5/Analyze\n\n\n<br />\n\n### Versão:\n\nPara unir o máximo de desenvolvimento e ao mesmo tempo garantir estabilidade, utilizamos o sistema de *versioning* diretamente na URL do EndPoint. Veja que no exemplo acima, está especificada a versão mais recente atual: `v1.5`.\n\nSe nenhuma versão for especificada a execução será realizada utilizando a versão mais antiga **não obsoleta** (atualmente `v1.1`). Exemplo:\n\n    https://api.gotit.ai/NLU/Analyze\n\n<br />Se apenas a versão principal for especificada sem a secundária, a execução será realizada utilizando a versão principal especificada e a secundária mais antiga **não obsoleta** (para a `v1`: atualmente `v1.1`). Exemplo:\n\n    https://api.gotit.ai/NLU/v1/Analyze\n    \n<br />**Atenção:** Atualmente a versão mais atual é a `v1.5`. Recomendamos que você sempre especifique a versão exata para garantir máxima estabilidade. Também fique atento ao nosso blog, emails e a newsletter da Got It AI. Através deles, te manteremos informados sobre os avanços na nossa tecnologia e novas versões disponíveis!\n\n    \n<br />\n\n##### Importante:\n\n- Não serão aceitas requisições utilizando método `GET`, ou outro método que não seja `POST`. Requisições para este endpoint que não utilizem o método `POST`, receberão como resposta o código de status HTTP `401 Unauthorized`, indicando erro de acesso não autorizado.\n    \n- Todas as requisições devem ser realizadas utilizando o \"protocolo\" `HTTPS`. Requisições que forem feitas apenas com o protocolo `HTTP`, sem utilizar conexão segura, receberão como resposta o código de status HTTP `401 Unauthorized`, indicando erro de acesso não autorizado.\n\n\n----\n\n\n# Autenticação\n\nToda requisição precisa ser autenticada. Para isso você vai passar sua `API Key` em cada requisição que fizer. Abaixo explico o que é uma `API Key`, como você consegue ela, e como você coloca ela na sua requisição.\n\nPara você que é expert, vou dar uma explicação mais direta: você vai utilizar o esquema `Basic Authentication` do protocolo HTTP, passando sua `API Key`, no header `Authorization` da requisição.\n\n\n<br />\n\n### API Key\n\nA `API Key`, ou Chave de API é a sua credencial de acesso, como uma senha, exclusivamente utilizada para executar a análise na nossa API.\n\nA sua `API Key` é diferente da sua senha de acesso no Got It AI. Sua senha de acesso é exclusiva para administrar a sua conta no Got It AI. A sua `API Key` é uma outra credencial, separada, que é a única credencial que você vai passar para a nossa API, na sua requisição.\n\nCada `API Key` é composta por um par de strings, como se fosse \"usuário e senha\". A `API Key` é composta pelo par:\n- Identifier\n  - *Este é o identificador da sua `API Key`, como se fosse um usuário/login*\n- Secret\n  - *Este é o segredo da sua `API Key`, como se fosse a senha*\n\nExemplo de `API Key`:\n\n    Identifier: 86-jIqiXoug\n    Secret:     soOW1VchGaSMYIKwE4tr5q5KmjGb4uCvft2CFuSg\n    \n*Essa `API Key` de exemplo será utilizada diversas vezes durante a documentação. Sua `API Key` será semelhante a ela. Você pode utilizar todos os exemplos desta documentação apenas substituindo a `API Key` de exemplo pela sua `API Key`.*\n\n\n<br />\n\n##### Onde consigo minha API Key\n\nAo se cadastrar no site do Got It AI, você receberá duas credenciais diferentes. A primeira é a senha para administrar a sua conta no nosso site. A segunda será a sua `API Key`.\n\nVocê também poderá criar novas `API Key`s, ou até mesmo revogar alguma `API Key` comprometida na área administrativa do nosso site.\n*Esta área estará disponível embreve. Aguarde.*\n\nEnquanto a área administrativa não está disponível, sinta-se a vontade para entrar em contato com nosso suporte técnico para pedir novas `API Key`s, ou revogar alguma que esteja comprometida.\n\n\n<br />\n\n##### Isolamento\n\nEscolhemos utilizar a autenticação com `API Key`s, por permitir duas coisas muito importantes:\n- Sua conta no Got It AI e sua `API Key` são credenciais diferentes. \n  - *Sua conta no Got It AI, que possui as suas informações, fica resguardada, completamente separa das credenciais que você utiliza nas suas aplicações para acessar nossa API. Ou seja: na sua aplicação que utiliza nossa API, apenas sua `API Key` será utilizada. Se por alguma razão alguém acessar esta credencial, suas informações na conta do Got It AI estarão seguras.*\n- Você pode ter mais de uma `API Key` !\n  - *Na realidade, você não apenas pode, como deve utilizar uma `API Key` para cada aplicação diferente sua que acesse nossa API. Deste modo, se uma aplicação sua for comprometida, apenas essa `API Key` estará comprometida, e apenas ela será revogada. Assim, todas as suas outras `API Key`s e as aplicações que as utilizam estarão seguras, e não sofreram downtime.*\n\n\n  \n<br />\n\n### Autenticando sua Requisição\n\nPara autenticar sua requisição você vai utilizar o header `Authorization`, na sua requisição `HTTP`. Este header pode ser utilizado com vários esquemas diferentes, mas para nossa API vamos utilizar o mais simples e fácil deles: o tipo `Basic Authentication`.\n\nUtilizar o `Basic Authentication` no header `Authorization` é muito fácil.\nVocê vai definir o valor do seu header `Authorization` para `Basic <sua API KEY convertida para Base64>`.\n\nOu seja, você vai escrever literalmente `Basic `, incluindo o espaço no final, mais a sua API Key (Identifier e Secret, concatenados com um `:` entre eles), convertida para Base64.\n\n##### Exemplo:\n\n`API Key` de exemplo:\n\n    Identifier: 86-jIqiXoug\n    Secret:     soOW1VchGaSMYIKwE4tr5q5KmjGb4uCvft2CFuSg\n\n\n###### Passo a Passo:\n\n1.   Você vai juntar o usuário e senha (neste caso Identifier e Secret, respectivamente), utilizando um `:` (dois pontos) entre os dois. Fica assim:\n\n     `86-jIqiXoug:soOW1VchGaSMYIKwE4tr5q5KmjGb4uCvft2CFuSg`\n     \n2.   Agora basta converter essa string para base64. Fica assim:\n\n    `ODYtaklxaVhvdWc6c29PVzFWY2hHYVNNWUlLd0U0dHI1cTVLbWpHYjR1Q3ZmdDJDRnVTZw==`\n\n3.   Agora basta concatenar a string `Basic ` (incluindo o espaço) com a `API Key` convertida. Fica assim:\n\n    `Basic ODYtaklxaVhvdWc6c29PVzFWY2hHYVNNWUlLd0U0dHI1cTVLbWpHYjR1Q3ZmdDJDRnVTZw==`\n    \n4.   Defina o header `Authorization` com o valor do passo 3 durante a construção da sua requisição. Este header na sua requisição `HTTP POST` fica assim:\n\n    `Authorization: Basic ODYtaklxaVhvdWc6c29PVzFWY2hHYVNNWUlLd0U0dHI1cTVLbWpHYjR1Q3ZmdDJDRnVTZw==`\n\n**Pronto! Sua requisição está autenticada!**\n\n\n<br />\n\n##### Observações\n\n- O esquema `Basic Authentication` padrão funciona com usuário e senha, concatenados utilizando um `:` (dois pontos) entre eles. Na nossa implementação, o equivalente para o usuário é o `API Key Identifier` e o equivalente para a senha é o `API Key Secret`.\n\n- Se você não conhece o esquema de `Basic Authentication` do header `Authorization` basta pesquisar no Google estes termos. Existem explicações excelentes que com certeza vão tirar qualquer dúvida que você tenha.\n\n- Se você não sabe ou tem dúvidas de como implementar no código a construção da requisição `HTTP POST`, definindo o header `Authorization`, disponibilizamos excelentes exemplos de código na nossa [página da Got It AI - API](https://gotit.ai/Home/Api). E claro: você também sempre pode pesquisar no Google como criar uma requisição POST, e como definir o header `Authorization` especificamente para sua linguagem de programação. São termos muitos simples, com muito material a respeito deles.\n\n\n----\n\n\n# SLA\n\nNossos níveis de serviço atenderão os seguintes determinações mínimas:\n\n99,9% de uptime de disponibilidade online.\n\nRequisições com o texto até 5mil caracteres, análise em no máximo 5 segundos.\n\nRequisições com o texto até 50mil caracteres, análise em no máximo 20 segundos.\n\nRequisições com o texto até 100mil caracteres, análise em no máximo 52 segundos.\n\n*Requisições que não forem atendidas dentro desse SLA não serão consideradas a título de cobrança. Latência de rede não incluída no cálculo.*\n\n\n----\n\n\n# Features\n\nNossa API funciona com a execução de *Features*. Cada feature executa uma análise diferente, e retorna dados próprios dela. Você especificará no objeto `JSON` que estiver postando, quais são as features que deseja executar.\n\n\n----\n\n\n# Exemplos de Código\n\nAbaixo há alguns exemplos de código em diferentes linguagens, para que você possa começar a usar a nossa API agora mesmo! Basta apenas copiar e colar, inserindo o seu texto e as Features desejadas, e editar as credenciais inserindo a sua própria API Key (trocando `#APIKey_Identifier#` pela sua API Key Identifier e `#APIKey_Secret#` com a sua API Key Secret), e pronto!\n\n<br />\n\n\n### Python\n\n    import json\n    import requests\n    import pprint\n    import base64\n\n    url = 'https://api.gotit.ai/NLU/v1.5/Analyze'\n    data = {\"T\":\"Victor comeu uma pizza deliciosa.\",\"S\":true}\n    data_json = json.dumps(data)\n    userAndPass = base64.b64encode(b\"#APIKey_Identifier#:#APIKey_Secret#\").decode(\"ascii\")\n    headers = {'Content-type': 'application/json', \"Authorization\": \"Basic %s\" %  userAndPass}\n    response = requests.post(url, data=data_json, headers=headers)\n    pprint.pprint(response.json())\n\n<br />\n\n\n### C# #\n\n    static async Task MainAsync()\n    {\n    \t// ... using HttpClient.\n    \tHttpClient client = new HttpClient();\n\n    \tvar byteArray = Encoding.ASCII.GetBytes(\"#APIKey_Identifier#:#APIKey_Secret#\");\n    \tclient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue(\"Basic\", Convert.ToBase64String(byteArray));\n\n    \tvar data = new { T = \"Victor comeu uma pizza deliciosa.\", S = true };\n    \tvar content = new StringContent(JsonConvert.SerializeObject(data), Encoding.UTF8, \"application/json\");\n\n    \tHttpResponseMessage response = await client.PostAsync(\"https://api.gotit.ai/NLU/v1.5/Analyze\", content);\n    \tHttpContent responseContent = response.Content;\n\n    \t// ... Check Status Code                                \n    \tConsole.WriteLine(\"Response StatusCode: \" + (int)response.StatusCode);\n\n    \t// ... Read the string.\n    \tstring result = await responseContent.ReadAsStringAsync();\n    }\n\n<br />\n\n\n### Java\n\n    public static void main(String[] args) throws ClientProtocolException, IOException, JSONException  {\n    \tString url = \"https://api.gotit.ai/NLU/v1.5/Analyze\";\n\n    \tHttpClient client = HttpClientBuilder.create().build();\n    \tHttpPost post = new HttpPost(url);\n\n    \tString authString = \"#APIKey_Identifier#\" + \":\" + \"#APIKey_Secret#\";\n        String authStringEnc = new String(Base64.getEncoder().encodeToString(authString.getBytes()));\n\n    \tpost.addHeader(\"Content-Type\",\"application/json\");\n    \tpost.addHeader(\"Authorization\",\"Basic \" + authStringEnc);\n\n    \tJSONObject data = new JSONObject();\n    \tdata.put(\"T\", \"Victor comeu uma pizza deliciosa.\");    \n    \tdata.put(\"S\", true); \n\n    \tpost.setEntity(new StringEntity(data.toString(), ContentType.APPLICATION_JSON));\n\n    \tHttpResponse response = client.execute(post);\n\n    \tBufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));\n\n    \tStringBuffer result = new StringBuffer();\n    \tString line = \"\";\n    \twhile ((line = rd.readLine()) != null) {\n    \t\tresult.append(line);\n    \t}\n\n    \tSystem.out.println(result.toString());\n    }\n\n<br />\n\n\n### PHP\n\n    $headers =  array(\n    \t\"Content-type: application/json\",\n    \t\"Authorization: Basic \". base64_encode(\"#APIKey_Identifier#:#APIKey_Secret#\")\n    );\n\n    $data_array = array();\n    $data_array [\"T\"] = \"Victor comeu uma pizza deliciosa.\";\n    $data_array [\"S\"] = true;\n    $data = json_encode($data_array );\n\n    $options = array (\n    \t'http' => array (\n    \t\t'header' => $headers,\n    \t\t'method' => 'POST',\n    \t\t'content' => $data\n    \t)\n    );\n    $context  = stream_context_create ($options);\n    $result = file_get_contents ('https://api.gotit.ai/NLU/v1.5/Analyze', false, $context);\n\n    $result = json_decode($result, true);\n\n<br />\n\n\n### Ruby\n\n    require 'net/http'\n    require 'uri'\n\n    uri = URI.parse(\"https://api.gotit.ai/NLU/v1.5/Analyze\")\n    request = Net::HTTP::Post.new(uri, 'Content-Type' => 'application/json')\n    request.basic_auth(\"#APIKey_Identifier#\", \"#APIKey_Secret#\")\n    request.body = {T: 'Victor comeu uma pizza deliciosa.', S: true}.to_json\n\n    response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == \"https\") do |http|\n    http.request(request)\n\n    end\n\nAbaixo estão exemplos de como criar a requisição, e executar features desejadas:","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"4456678","collectionId":"a7cd816a-547c-4a54-8f92-676a4db3c4c2","publishedId":"RWaHyVMX","public":true,"publicUrl":"https://documenter-api.postman.tech/view/4456678/RWaHyVMX","privateUrl":"https://go.postman.co/documentation/4456678-a7cd816a-547c-4a54-8f92-676a4db3c4c2","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"EF5B25"},"documentationLayout":"classic-double-column","version":"8.11.4","publishDate":"2018-09-12T11:04:20.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{},"logos":{}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/768118b36f06c94b0306958b980558e6915839447e859fe16906e29d683976f0","favicon":""},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://documenter.gw.postman.com/view/metadata/RWaHyVMX"}