Sentimonitor REST API Versão 5.0

Esta é a documentação da API do Sentimonitor Versão 5. Aqui você encontrará as instruções necessárias para consumir os dados processados pelo Sentimonitor e fazer consultas.

A API do Sentimonitor é baseada no padrão REST. Exceto onde explicitamente notado, a API é restrita ao formato JSON.

Versões da API

Atualmente, a API do Sentimonitor encontra-se na versão 5.0. Esta documentação é restrita à esta versão.

A documentação da versão 4.0 está disponível aqui

O desenvolvmento de novas funcionalidades nas versões anteriores está descontinuado, e o seu acesso está atualmente restrito aos usuários atuais dessas APIs. Para consultar a documentação das versões anteriores, entre em contato com sup@sentimonitor.com.

Introdução

A API do Sentimonitor funciona sobre o protocolo HTTPS. A maioria das linguagens de programação populares atualmente possuem bibliotecas ou funções para utilizar este protocolo.

Convenção

Nesta documentação, todas os endpoints estão apresentados da forma

METODO /caminho/do/endpoint

O METODO é o método HTTP que deve ser utilizado (em geral GET ou POST). Já o /caminho/do/endpoint é um caminho relativo à API, que fica em https://api.sentimonitor.com/5.0.

Por exemplo, ao ver a seguinte declaração de endpoint

GET /indicators

deve ser feita uma requisição usando o método GET no endereço https://api.sentimonitor.com/5.0/indicators (detalhes sobre o endpoint /indicators serão feitos abaixo).

Amigável à Navegadores

Para facilitar o aprendizado, os endpoints da API que usam o método HTTP GET podem ser usados diretamente através do navegador de internet (como o Google Chrome ou Firefox). Basta acessar o endereço completo do endpoint, e utilizar como nome de usuário o seu endereço de nome de usuário ou email, e como senha a api_key de acesso (para detalhes, veja Autenticação).

Por default, as APIs retornam JSON compactado, para reduzir o tamanho total da resposta. Para ajudar na depuração, você pode adicionar o parâmetro pretty nas URLs, o que fará o output ser formatado para facilitar a leitura. Por exemplo, o endpoint /monitorings lista os seus monitoramentos. Para visualizar no navegador, você pode acessar:

https://api.sentimonitor.com/5.0/monitorings?pretty

HTTPS

Todas as requisições são protegidas através de HTTPS, impedindo que seus dados sejam capturados ao transitar pela internet.

Os certificados utilizados pelo Sentimonitor são assinados pelo Let’s Encrypt. Portanto, a linguagem ou biblioteca que você utilizar para conectar à API do Sentimonitor deve reconhecer tais certificados. Versões recentes dessas bibliotecas em diversas linguagens já suportam esses certificados, e nada precisa ser feito em relação a isso (consulte mais em Certificate Compatibility). Versões mais antigas podem precisar ser atualizadas ou de alguma configuração nesse sentido. Infelizmente, não podemos prover suporte à todas as linguagens disponíveis no mercado.

Autenticação

Todas as requisições à API devem ser autenticadas através do método Basic Access Authentication. Em resumo, você precisa adicionar um cabeçalho HTTP à requisição com as informações que descrevem a sua conta. O cabeçalho tem o seguinte formato:

Authorization: Basic {string de autenticação}

Neste cabeçalho, o 'string de autenticação' é construido da seguinte forma

string_de_autenticacao = base64( username + ":" + api_key )

O username é o nome de usuário (em geral, o email) utilizado para acessar a plataforma Sentimonitor. A api_key atualmente é fornecida individualmente para cada cliente do Sentimonitor. Por favor, entre em contato com sup@sentimonitor.com para obter a api_key de sua conta.

O username e a api_key devem ser concatenados, separados por um sinal dois-pontos (":"), e o string resultante deve ser codificado em Base64.

Exemplo

Se o seu username for someone@acme.com e sua api_key for WRawMsFO4Jqo6e72gO5Y, você deve fazer o encoding base64 do string someone@acme.com:WRawMsFO4Jqo6e72gO5Y, que resulta em c29tZW9uZUBhY21lLmNvbTpXUmF3TXNGTzRKcW82ZTcyZ081WQ==. Esse string resultante deve ser usado nas requisições para enviar o seguinte cabeçalho HTTP:

Authorization: Basic c29tZW9uZUBhY21lLmNvbTpXUmF3TXNGTzRKcW82ZTcyZ081WQ==

Os exemplos de chamadas neste documento vão utilizar a api_key de exemplo acima. Lembre-se de substituir a api_key nos exemplos pela sua própria api_key.

cURL

Ao utilizar o comando curl em ambiente Linux para acessar a API, é possível utilizar a opção --user como alternativa para escrever todo o cabeçalho de autorização:

curl --request GET \
  --user 'someone@acme.com:WRawMsFO4Jqo6e72gO5Y' \
  --url 'https://api.sentimonitor.com/5.0/monitorings'

O comando acima é equivalente ao seguinte comando:

curl --request GET \
  --header 'Authorization: Basic c29tZW9uZUBhY21lLmNvbTpXUmF3TXNGTzRKcW82ZTcyZ081WQ==' \
  --url 'https://api.sentimonitor.com/5.0/monitorings'

APIs com Suporte à Filtragem

Algumas das APIs possuem suporte à Filtragem. Isso significa que os dados que a API irá retornar dependem dos filtros utilizados. Alguns dos filtros são obrigatórios, e precisam estar presentes em todas as chamadas àquela API. Outros são opcionais, e podem ser omitidos, sendo necessários apenas para realizar consultas de dados mais específicas.

Alguns exemplos de consultas que exigem o domínio dos filtros são:

  • Listagem das publicações em um período específico.
  • Listagem dos comentários em uma rede social.
  • Listagem das publicações com sentimento positivo.
  • Listagem das publicações citando termos específicos.

Todos os filtros podem ser utilizados em uma mesma chamada, e os resultados retornados respeitarão à todos, ao mesmo tempo. A combinação de diversos filtros é necessária para a realização de consultas avançadas na plataforma.

Para a consulta de todos os filtros disponíveis, consulte Filtragem. As seguintes APIs fazem uso deste recurso: GET /monitorings, GET /documents, GET /authors, GET /indicators, GET /chart.

Tratamento de Erros

Se algum erro ocorrer ao processar uma chamada na API do Sentimonitor, será retornado um objeto JSON contendo uma lista de erros detectados. Utilize as mensagens para entender o que ocorreu. Por exemplo, se houver um erro ao autenticar na API, será retornado o seguinte objeto:

{
  "errors": [
    {
      "message": "Invalid authorization: invalid username 'someone@acme.com' or API token"
    }
  ]
}

Referência

GET /monitorings

Retorna todos os monitoramentos visiveis ao usuário. Inclui todos os monitoramentos cadastrados pelo usuário, e todos os monitoramentos que o usuário possui permissão de, pelo menos, visualização.

URL do recurso: https://api.sentimonitor.com/5.0/monitorings

Exemplo de chamada usando cURL:

curl --request GET \
  --header 'Authorization: Basic c29tZW9uZUBhY21lLmNvbTpXUmF3TXNGTzRKcW82ZTcyZ081WQ==' \
  --url 'https://api.sentimonitor.com/5.0/monitorings'

Exemplo de retorno:

{
  "monitorings":
  [
    {
      "id": 123,
      "title": "Meu monitoramento",
      "status": "active"
    },
    {
      "id": 234,
      "title": "Monitoramento ACME",
      "status": "paused"
    }
  ]
}

POST /monitorings

Cria um novo monitoramento. Recebe no corpo da requisição um JSON com a os detalhes do monitoramento a ser criado (nome, status e buscas). Retorna como resultado os detalhes do monitoramento criado, incluindo o ID do novo monitoramento e de cada uma das buscas.

URL do recurso: https://api.sentimonitor.com/5.0/monitorings

Exemplo de chamada usando cURL:

curl --request POST \
  --header 'Authorization: Basic c29tZW9uZUBhY21lLmNvbTpXUmF3TXNGTzRKcW82ZTcyZ081WQ==' \
  --header 'Content-Type: application/json' \
  --url 'https://api.sentimonitor.com/5.0/monitorings' \
  --data '{
    "title": "Meu monitoramento",
    "status": "active",
    "searches": [
        {
          "source": "TWT",
          "query": "sentimonitor",
          "language": "pt",
        },
        {
          "source": "FCP",
          "query": "https://www.facebook.com/SentiMonitor",
          "includeComments": true,
        }
    ]
}'

Exemplo de retorno:

{
  "id": 123,
  "title": "Meu monitoramento",
  "status": "active",
  "searches": [
    {
      "id": 456,
      "source": "TWT",
      "query": "sentimonitor",
      "language": "pt",
      "lastProcessed": "2022-12-15T14:40:21Z"
    },
    {
      "id": 457,
      "source": "FCP",
      "query": "https://www.facebook.com/SentiMonitor",
      "includeComments": true,
      "lastProcessed": "2022-12-15T14:40:21Z"
    }
  ]
}

Os atributos de um monitoramento são os seguintes:

  • id: número inteiro e positivo, usado para identificar o monitoramento em outras chamadas da API.
  • title: texto com título descritivo do monitoramento. Não pode ser texto vazio, nem maior do que 255 caracteres.
  • status: enumeração indicativa do status do monitoramento. Deve ser um dos seguintes valores:
    • active: indica que o monitoramento será ativo e irá capturar mensagens nas buscas informadas, consumindo os créditos da conta;
    • paused: indica que o monitoramento não irá capturar mensagens até que seu status seja alterado para active. Os créditos da conta não serão consumidos enquanto o monitoramento estiver neste estado.
  • searches: campo com a lista de buscas do monitoramento. Um monitoramento precisa ter ao menos uma busca. O número máximo de buscas em um monitoramento depende dos limites contratados na sua conta Sentimonitor e das buscas já cadastradas em outros monitoramentos ativos. Os campos de cada uma das buscas nessa lista são os seguintes:
    • id: número inteiro e positivo, usado para identificar a busca em outras chamadas da API.
    • source: enumeração indicando a fonte da busca, onde a informação deve ser recuperada. Pode retornar qualquer um dos valores descritos na tabela Sources. No momento, as seguintes fontes de busca podem ser utilizadas na criação de monitoramentos e buscas (observe que algumas fontes podem exigir permissões adicionais ou credenciais já configuradas na sua conta):
      • FCP: Facebook Páginas;
      • GPC: Google Places;
      • ITB: Instagram Business;
      • NTC: Clipping de Notícias;
      • RSS: Feeds RSS;
      • TPA: TripAdvisor: Atrações;
      • TPD: TripAdvisor: Hotéis;
      • TPR: TripAdvisor: Restaurantes;
      • TTK: TikTok;
      • TWT: Twitter;
      • YTB: YouTube.
    • query: texto com a configuração da informação a ser recuperada da rede social. Por exemplo, para a fonte FCP, o campo query deve conter a URL da página que deve ser recuperada. O formato do texto da query depende da fonte indicada no campo source. Consulte a configuração de monitoramentos no Manual da Plataforma Sentimonitor para detalhes.
    • language: enumeração indicando a linguagem em que as mensagens devem ser recuperadas da fonte. Note que a linguagem será considerada somente se o campo source da busca for igual à NTC ou TWT. O campo language pode conter um dos seguintes valores:
      • cs (tcheco);
      • de (alemão);
      • en (inglês);
      • es (espanhol);
      • fr (francês);
      • nl (holandês);
      • pt (português).
    • includeComments: valor booleano (true ou false) indicativo se os comentários da fonte devem ser capturados. Este campo será considerado apenas se o campo source da busca for FCP, ITB (quando configurado para um perfil próprio), ou YTB.
    • lastProcessed: data em que a busca foi processada pela última vez pela plataforma Sentimonitor. Quando for null, indica que a busca não foi processada ainda. Note que as buscas são processadas apenas quando o status do monitoramento for active.

GET /monitorings/{monitoring-id}

Retorna os detalhes do monitoramento com o ID informado em {monitoring-id}. Inclui o ID, título, status e buscas do monitoramento. Esta API retorna em formato igual ao formato retornado na API para criação de monitoramentos (veja POST /monitorings para detalhes).

Utilize o método GET /monitorings para obter a lista de monitoramentos disponíveis na conta e seus respectivos IDs.

URL do recurso: https://api.sentimonitor.com/5.0/monitorings/{monitoring-id}

Exemplo de chamada usando cURL:

curl --request GET \
  --header 'Authorization: Basic c29tZW9uZUBhY21lLmNvbTpXUmF3TXNGTzRKcW82ZTcyZ081WQ==' \
  --url 'https://api.sentimonitor.com/5.0/monitorings/123'

Exemplo de retorno:

{
  "id": 123,
  "title": "Meu monitoramento",
  "status": "active",
  "searches": [
    {
      "id": 456,
      "source": "TWT",
      "query": "sentimonitor",
      "language": "pt",
      "lastProcessed": "2022-12-15T14:40:21Z"
    },
    {
      "id": 457,
      "source": "FCP",
      "query": "https://www.facebook.com/SentiMonitor",
      "includeComments": true,
      "lastProcessed": "2022-12-15T14:40:21Z"
    }
  ]
}

POST /monitorings/{monitoring-id}/title

Altera o título do monitoramento com o ID informado em {monitoring-id}. Recebe no corpo da requisição um JSON com o novo nome do monitoramento. Retorna como resultado os detalhes do monitoramento atualizado (ou seja, com o novo título), em formato igual ao formato retornado na API para criação de monitoramentos (veja POST /monitorings para detalhes).

URL do recurso: https://api.sentimonitor.com/5.0/monitorings/{monitoring-id}/title

Exemplo de chamada usando cURL:

curl --request POST \
  --header 'Authorization: Basic c29tZW9uZUBhY21lLmNvbTpXUmF3TXNGTzRKcW82ZTcyZ081WQ==' \
  --header 'Content-Type: application/json' \
  --data '{"title": "Novo Título do Monitorameto"}' \
  --url 'https://api.sentimonitor.com/5.0/monitorings/123/title'

Exemplo de retorno:

{
  "id": 123,
  "title": "Novo Título do Monitorameto",
  "status": "active",
  "searches": [
    {
      "id": 456,
      "source": "TWT",
      "query": "sentimonitor",
      "language": "pt",
      "lastProcessed": "2022-12-15T14:40:21Z"
    },
    {
      "id": 457,
      "source": "FCP",
      "query": "https://www.facebook.com/SentiMonitor",
      "includeComments": true,
      "lastProcessed": "2022-12-15T14:40:21Z"
    }
  ]
}

POST /monitorings/{monitoring-id}/searches

Adiciona buscas ao monitoramento com o ID informado em {monitoring-id}. Recebe no corpo da requisição um JSON com as novas buscas do monitoramento. Retorna como resultado os detalhes do monitoramento atualizado (ou seja, com as buscas que foram adicionadas), em formato igual ao formato retornado na API para criação de monitoramentos (veja POST /monitorings para detalhes).

Observe que as buscas informadas no corpo da requisição serão adicionadas ao conjunto de buscas que já está configurado no monitoramento. Ou seja, as buscas existentes não serão modificadas ou substituidas. Para remover uma ou mais buscas já configuradas no monitoramento, utilize o método DELETE /monitorings/{monitoring-id}/searches/{search-ids}.

URL do recurso: https://api.sentimonitor.com/5.0/monitorings/{monitoring-id}/searches

Exemplo de chamada usando cURL:

curl --request POST \
  --header 'Authorization: Basic c29tZW9uZUBhY21lLmNvbTpXUmF3TXNGTzRKcW82ZTcyZ081WQ==' \
  --header 'Content-Type: application/json' \
  --url 'https://api.sentimonitor.com/5.0/monitorings/123/searches' \
  --data '{
    "searches": [
        {
            "source": "FCP",
            "query": "https://www.facebook.com/cocacola/",
            "includeComments": false
        },
        {
            "source": "TWT",
            "query": "#cocacola",
            "language": "pt"
        }
    ]
}'

Exemplo de retorno:

{
  "id": 123,
  "title": "Novo Título do Monitorameto",
  "status": "active",
  "searches": [
    {
      "id": 456,
      "source": "TWT",
      "query": "sentimonitor",
      "language": "pt",
      "lastProcessed": "2022-12-15T14:40:21Z"
    },
    {
      "id": 457,
      "source": "FCP",
      "query": "https://www.facebook.com/SentiMonitor",
      "includeComments": true,
      "lastProcessed": "2022-12-15T14:40:21Z"
    },
    {
      "id": 458,
      "source": "FCP",
      "query": "https://www.facebook.com/cocacola/?fref=ts",
      "includeComments": false,
      "lastProcessed": null
    },
    {
      "id": 459,
      "source": "TWT",
      "query": "#cocacola",
      "language": "pt",
      "lastProcessed": null
    }
  ]
}

DELETE /monitorings/{monitoring-id}/searches/{search-ids}

Remove do monitoramento com o ID informado em {monitoring-id} uma ou mais buscas com IDs indicados no campo {search-ids}. Retorna como resultado os detalhes do monitoramento atualizado (ou seja, sem as buscas que foram excluídas), em formato igual ao formato retornado na API para criação de monitoramentos (veja POST /monitorings para detalhes).

O campo {search-ids} é formado por um ou mais IDs de busca. Utilize o método GET /monitorings/{monitoring-id} para obter a lista de buscas existentes em um monitoramento e seus respectivos IDs. Quando for necessário remover uma única busca do monitoramento, informe seu ID diretamente no campo {search-ids}. Quando for necessário remover duas ou mais buscas, informe todos os IDs na mesma requisição, separados por vírgula, no campo {search-ids}.

URL do recurso: https://api.sentimonitor.com/5.0/monitorings/{monitoring-id}/searches/{search-ids}

Exemplo de chamada usando cURL:

curl --request DELETE \
  --header 'Authorization: Basic c29tZW9uZUBhY21lLmNvbTpXUmF3TXNGTzRKcW82ZTcyZ081WQ==' \
  --header 'Content-Type: application/json' \
  --url 'https://api.sentimonitor.com/5.0/monitorings/123/searches/458,459'

Exemplo de retorno:

{
  "id": 123,
  "title": "Novo Título do Monitorameto",
  "status": "active",
  "searches": [
    {
      "id": 456,
      "source": "TWT",
      "query": "sentimonitor",
      "language": "pt",
      "lastProcessed": "2022-12-15T14:40:21Z"
    },
    {
      "id": 457,
      "source": "FCP",
      "query": "https://www.facebook.com/SentiMonitor",
      "includeComments": true,
      "lastProcessed": "2022-12-15T14:40:21Z"
    }
  ]
}

GET /documents

Retorna uma lista de documentos coletados pelo Sentimonitor, segundo os filtros informados. Por padrão, os documentos publicados mais recentemente são retornados primeiro.

Requer como parâmetro todos os filtros obrigatórios, e possui suporte a todos os filtros opcionais. Além dos filtros, suporta o parâmetro docRanking (consulte Ranking de Documentos) e offset (consulte sobre Paginação).

URL do recurso: https://api.sentimonitor.com/5.0/documents

Exemplo de chamada usando cURL para acessar os documentos do monitoramento 643 no período 01/dez/2022, 0h até 31/12/2022, 23:59:

curl --request GET \
  --header 'Authorization: Basic c29tZW9uZUBhY21lLmNvbTpXUmF3TXNGTzRKcW82ZTcyZ081WQ==' \
  --url 'https://api.sentimonitor.com/5.0/documents?start=2022-12-01+00%3A00&end=2022-12-31+23%3A59&monitorings=643'

Exemplo de retorno usando cURL

{
  "documents":
  [
    {
      "id": 88651015,
      "source": "TWT",
      "sourceId": "1648310900334514179",
      "parentSourceId": null,
      "title": null,
      "text": "A Sentimonitor está usando sua ferramenta de social listening para monitorar no Twitter, Instagram, Youtube, Blogs, Portais e Jornais o que se fala em torno do Connected Smart Cities São Paulo - CSC GovTech 2023. Confira o painel de dados em tempo real no link ao final do fio!",
      "imageUrl": "https://pbs.twimg.com/media/Ft_5Cg-WAAQWWi3?format=jpg&name=medium",
      "url": "https://twitter.com/sentimonitor/status/1648310900334514179",
      "language": "pt",
      "sentiment": "N",
      "detectedLocations": [
        "Cidade: São Paulo/SP"
      ],
      "citedLocations": [
        {
          "country": "Brasil",
          "countryRegion": "Região Sudeste",
          "state": "SP",
          "city": "São Paulo"
        }
      ],
      "lat": -23.5628006,
      "lon": -46.6547322,
      "published": "2023-04-18T13:01:51Z",
      "downloaded": "2023-04-18T13:05:51Z",
      "metrics": [
        {
          "name": "likes",
          "value": 31
        },
        {
          "name": "shares",
          "value": 6
        }
      ],
      "author": {
        "id": 8817579,
        "source": "TWT",
        "sourceId": "129646722",
        "username": "sentimonitor",
        "name": "Sentimonitor",
        "authorUrl": "http://twitter.com/sentimonitor",
        "imageUrl": "https://pbs.twimg.com/profile_images/1310670133950640130/1-nf79lP_400x400.jpg",
        "isVerified": false,
        "about": "Ferramenta de Inteligência Artificial e Social Listening. 3x Top 10 AI Startups pela 100 Open Startups e 2x Top 3 Martechs pela Distrito Startups.",
        "declaredLocation": "Sao Paulo, Brazil",
        "authorLocations": [
          {
            "country": "Brasil",
            "countryRegion": "Região Sudeste",
            "state": "SP",
            "city": "São Paulo"
          }
        ],
        "metrics": [
          {
            "name": "followers",
            "value": 211
          },
          {
            "name": "following",
            "value": 432
          },
          {
            "name": "publications",
            "value": 696
          }
        ]
      }
    },
    {
      "id": 88011693,
      "source": "TWT",
      "sourceId": "1633219103774191617",
      "parentSourceId": null,
      "title": null,
      "text": "Foi uma satisfação sermos convidados para contribuir para a mais recente edição da Revista Apólice, ao lado de outras startups e empresas do setor de seguros e previdência, para conversar sobre as tendências percebidas na atualidade e nos próximos anos para o setor.",
      "imageUrl": null,
      "url": "https://twitter.com/sentimonitor/status/1633219103774191617",
      "language": "pt",
      "sentiment": "B",
      "detectedLocations": [
        "Cidade: São Paulo/SP"
      ],
      "published": "2023-03-07T13:29:21Z",
      "downloaded": "2023-03-07T14:03:49Z",
      "metrics": [
        {
          "name": "likes",
          "value": 0
        },
        {
          "name": "shares",
          "value": 0
        }
      ],
      "author": {
        "id": 8817579,
        "source": "TWT",
        "sourceId": "129646722",
        "username": "sentimonitor",
        "name": "Sentimonitor",
        "authorUrl": "http://twitter.com/sentimonitor",
        "imageUrl": "https://pbs.twimg.com/profile_images/1310670133950640130/1-nf79lP_400x400.jpg",
        "isVerified": false,
        "about": "Ferramenta de Inteligência Artificial e Social Listening. 3x Top 10 AI Startups pela 100 Open Startups e 2x Top 3 Martechs pela Distrito Startups.",
        "declaredLocation": "Sao Paulo, Brazil",
        "authorLocations": [
          {
            "country": "Brasil",
            "countryRegion": "Região Sudeste",
            "state": "SP",
            "city": "São Paulo"
          }
        ],
        "metrics": [
          {
            "name": "followers",
            "value": 211
          },
          {
            "name": "following",
            "value": 432
          },
          {
            "name": "publications",
            "value": 696
          }
        ]
      }
    }
  ],
  "total": 2,
  "offset": 0
}

Ranking de Documentos: por padrão, a API GET /documents retorna os documentos mais recentemente publicados. Para obter os documentos por diferentes critérios de ordenação, utilize o parâmetro docRanking com um dos seguintes valores:

  • interactions: ordena os documentos pelo número de interações (a publicação com maior número de interações é retornada na primeira posição).
  • likes: ordena os documentos pelo número de curtidas (a publicação que recebeu o maior número de curtidas é retornada na primeira posição). Esta opção só está disponível se o filtro opcional viewSource for igual à FCP, FCB, FCG, TWT, ITG, ITB, YTB ou NTC.
  • comments: ordena os documentos pelo número de comentários (a publicação com maior número de comentários é retornada na primeira posição). Esta opção só está disponível se o filtro opcional viewSource for igual à FCP, FCB, FCG, ITG, ITB, YTB ou NTC.
  • shares: ordena os documentos pelo número de compartilhamentos (a publicação que foi compartilhamenta/retuitada mais vezes é retornada na primeira posição). Esta opção só está disponível se o filtro opcional viewSource for igual à FCP, FCB, FCG, TWT, ou NTC.
  • impressions: ordena os documentos pelo número de impressões estimado (a publicação com maior número de impressões estimado é retornada na primeira posição). Esta opção só está disponível se o filtro opcional viewSource for igual à TWT, ITG ou ITB.
  • followers: ordena os documentos pelo número de seguidores do autor (a publicação cujo autor tenha o maior número de seguidores é retornada na primeira posição). Quando a mídia vier do YouTube, considera-se o número de assinantes do canal. Esta opção só está disponível se o filtro opcional viewSource for igual à TWT, ITG, ITB ou YTB.

Paginação: a API GET /documents retorna, por padrão, as mensagens mais recentes no monitoramento. Para acessar as mensagens mais antigas, a API suporta o parâmetro offset, que permite informar o número de mensagens a ignorar dentro do total de mensagens filtradas.

Por exemplo, considere que a chamada à API GET /documents indique um total de 100 documentos (consulte o campo total no retorno da API). Também considere que, ao fazer a primeira chamada nesta API, seja retornado um total de 25 (número de mensagens no campo documents). Para o capturar as 75 mensagens restantes, serão necessárias outras 3 chamadas à API (totalizando 4 chamadas). A segunda chamada deverá incluir o parâmetro offset=25, a terceira chamada deverá incluir o parâmetro offset=50, e a quarta chamada deverá incluir o parâmetro offset=75. Observe que, a cada chamada, o parâmetro offset é setado para o número total de mensagens capturadas nas chamadas anteriores.

O parâmetro deve ser sempre um número maior ou igual a zero. Quando for igual a zero, a chamada é equivalente à mesma chamada sem a inclusão do parâmetro offset. Se offset for maior que o número total de mensagens (campo total na resposta da API), o campo documents na resposta da API terá uma lista vazia.

Campos de retorno: a API GET /documents retorna um objeto com os seguintes campos:

  • documents: lista com as mensagens retornadas. Por padrão, serão retornadas apenas as mensagens mais recentes que atendam aos filtros indicados (consulte Paginação para detalhes de como acessar as mensagens mais antigas). Cada objeto nesta lista representa uma mensagem, e possui os seguintes campos:
    • id: identificador único da mensagem na plataforma Sentimonitor.
    • source: código da rede onde a mensagem foi capturada. Consulte a lista de fontes para detalhes.
    • sourceId: identificador único da mensagem na plataforma onde a mensagem foi capturada. Em alguns casos pode ser usado em chamadas diretas na API da rede onde foi capturada. Por exemplo, no caso do Twitter, o sourceId é o ID do Tweet.
    • parentSourceId: ao lidar com conversas, onde uma mensagem pode ser a resposta à outra, o parentSourceId identifica o sourceId da mensagem que esta mensagem está respondendo. Se esta mensagem não for uma resposta à outra, o valor deste campo será null.
    • title: em mensagens com título e textos separados (notícias, por exemplo), contém o título da mensagem. Quando a mensagem for simples (sem título, como Tweets), será igual a null.
    • text: contém o texto da mensagem.
    • imageUrl: contém uma URL para imagem decorativa da mensagem, se disponível, ou null. Como exemplos de mensagens com imagem decorativa, incluem:
      • URL para uma foto de uma publicação no Instagram;
      • URL para imagem compartilhada no Twitter;
      • URL para imagem ilustrativa de um vídeo no YouTube.
    • url: link para a publicação original na rede ou site em que foi publicada.
    • language: código identificador da lingua em que a mensagem foi escrita. Consulte a lista de linguagens suportadas para detalhes.
    • sentiment: último sentimento definido na publicação. Consulte a lista de sentimentos para detalhes.
    • detectedLocations: lista de localidades detectadas na postagem e/ou autor. Cada localidade é representada pelo seu nível (pais, região do pais, estado ou cidade) e pelo nome associado a esse nível. Por exemplo: Pais: Brasil e Cidade: Rio de Janeiro.
    • citedLocations: contém a lista de localidades mencionadas no texto da postagem cuja inteligência da SentiMonitor detectou. Cada localidade é composta por pais, região do pais, estado e cidade. Veja a descrição detalhada dos campos que compõem uma localidade:
      • country: país da localidade da postagem.
      • countryRegion: região do pais da localidade da postagem. Caso não haja uma região, o valor do campo será null.
      • state: estado da localidade da postagem. Caso não haja um estado, o valor do campo será null.
      • city: cidade da localidade da postagem. Caso não haja uma cidade, o valor do campo será null.
    • lat: se a publicação tiver coordenadas geográficas associadas, o valor deste campo será o valor da latitude da coordenada. Caso contrário, será null.
    • lon: se a publicação tiver coordenadas geográficas associadas, o valor deste campo será o valor da longitude da coordenada. Caso contrário, será null.
    • published: data e hora de publicação da mensagem, em formato ISO 8601.
    • downloaded: data e hora em que a mensagem foi capturada pela plataforma Sentimonitor, em formato ISO 8601.
    • metrics: lista de métricas da mensagem. Cada item desta lista é um objeto com campos name (nome da métrica) e value (valor numérico da metrica). Exemplos de métricas são likes (número de curtidas), comments (número de comentários nesta mensagem) e shares (número de compartilhamentos da mensagem). Outras métricas podem ser incluidas nesta lista em futuras atualizações da plataforma.
    • author: objeto contendo detalhes sobre o perfil ou site que publicou a mensagem. Este objeto possui os seguintes campos:
      • id: identificador único do autor na plataforma Sentimonitor. Observe que este número não possui relação com o id da mensagem, e possívelmente será diferente.
      • source: código da rede do autor onde a mensagem foi capturada. Na maioria dos casos, é igual ao código da rede da mensagem. Consulte a lista de fontes para detalhes.
      • sourceId: identificador único do autor da mensagem na plataforma onde a mensagem foi capturada. Em alguns casos pode ser usado em chamadas diretas na API da rede onde foi capturada. Por exemplo, no caso do Twitter, o sourceId é o ID do perfil no Twitter.
      • username: nome do usuário na rede social. Em algumas redes (Twitter e Instagram, por exemplo), é o arroba do perfil.
      • name: nome próprio do perfil, quando disponível.
      • authorUrl: link para o perfil do autor na rede, quando disponível.
      • imageUrl: link para a imagem/foto de perfil do autor da mensagem.
      • isVerified: valor boleano indicando se o perfil foi verificado pela rede onde foi capturado.
      • personalUrl: link pessoal indicado no perfil do autor (em geral, aponta o site pessoal ou outra rede social do mesmo autor).
      • about: texto com a descrição pessoal do perfil do autor, quando disponível.
      • declaredLocation: contém o texto do campo de localização do perfil do autor, conforme preenchido pelo próprio. Pode ser igual a null se o autor não preencher este campo no perfil da rede social. Observe que este local nem sempre irá corresponder à uma localidade real.
      • authorLocations: contém a lista de localidades cuja inteligência da SentiMonitor detectou no nome ou biografia do autor. Cada localidade é composta por pais, região do pais, estado e cidade. Veja a descrição detalhada dos campos que compõem uma localidade:
        • country: país da localidade da postagem.
        • countryRegion: região do pais da localidade da postagem. Caso não haja uma região, o valor do campo será null.
        • state: estado da localidade da postagem. Caso não haja um estado, o valor do campo será null.
        • city: cidade da localidade da postagem. Caso não haja uma cidade, o valor do campo será null.
      • metrics: lista de métricas do autor da mensagem. Cada item desta lista é um objeto com campos name (nome da métrica) e value (valor numérico da metrica). Exemplos de métricas são followers (número de seguidores do perfil), following (número de perfis que este autor segue) e publications (número de publicações/mensagens que este perfil já publicou no tempo de vida de sua conta). Outras métricas podem ser incluidas nesta lista em futuras atualizações da plataforma.
  • total: quantidade total de mensagens que atendem aos critérios indicados no filtro da chamada à API.
  • offset: quantidade de mensagens ignoradas através do parâmetro offset (consulte Paginação para detalhes).

GET /documents/feed

Permite realizar o download de todas as publicações já capturadas pelo monitoramento, assim como monitorar a entrada de novos documentos capturados. Retorna uma lista com até 100 documentos, ordenados por data de download, e um cursor que permite que as próximas publicações sejam capturadas em uma segunda chamada.

Na primeira chamada à esta API, todas as publicações dos monitoramentos são ordenadas por data de download, e as 100 primeiras são retornadas no campo documents, no mesmo formato retornado pela API GET /documents. A resposta também inclui o campo nextCursor (que deve ser utilizado na próxima chamada à esta API) e o campo remaining (que indica o número de documentos que ainda podem ser capturados nas próximas chamadas à esta API).

Nas chamadas seguintes à esta API, é necessário incluir um parâmetro cursor na requisição, contendo o valor do campo nextCursor, retornado na última chamada à API. Desta forma, todos os documentos retornados nas chamadas anteriores serão ignorados, e a API retornará os próximos documentos. Todas as chamadas à esta API retornam o campo nextCursor, que deverá ser utilizado na próxima chamada à esta API.

O processo de capturar o valor do campo nextCursor e utilizar na chamada seguinte deve ser repetido até que seja retornado uma resposta com o campo remaining igual a 0. Neste momento, todos os documentos capturados até então foram listados. Você pode armazenar o valor do campo nextCursor para realizar uma nova chamada à esta API no futuro, e assim capturar apenas as novas publicações do monitoramento.

Diferente das outras APIs que incluem Filtragem, o único parâmetro obrigatório é o monitorings, contendo a lista de monitoramentos de onde as publicações serão lidas. Além disso, os filtros start e end são ignorados. Os Filtros Opcionais podem ser utilizados para consumir todas as mensagens com os critérios de interesse. Para garantir que todas as publicações sejam corretamente processadas, todos os filtros enviados na primeira chamada à API devem ser enviados novamente, sem alterações, nas chamadas seguintes.

Observe que o campo nextCursor possui o formato yyyyMMddHHmmss.NNNNNN. A parte yyyyMMddHHmmss refere-se à data de download da publicação pela plataforma Sentimonitor, no timezone GMT. Já a parte NNNNNN é um identificador interno da plataforma, podendo ter número variável de digitos. É possível criar um cursor para baixar todas as publicações a partir de um determinado momento usando 0 para a parte NNNNNN do cursor. Por exemplo, é possível baixar todas as publicações a partir do dia 01 de agosto de 2023 às 0:00 (GMT) usando o cursor 20230801000000.0.

URL do recurso: https://api.sentimonitor.com/5.0/documents/feed

Exemplo de primeira chamada usando cURL para ler os documentos do monitoramento 643:

curl --request GET \
  --header 'Authorization: Basic c29tZW9uZUBhY21lLmNvbTpXUmF3TXNGTzRKcW82ZTcyZ081WQ==' \
  --url 'https://api.sentimonitor.com/5.0/documents/feed?monitorings=643'

Exemplo de retorno da API na primeira chamada:

{
  "documents":
  [
    {
      "id": 88651015,
      "source": "TWT",
      "sourceId": "1648310900334514179",
      "parentSourceId": null,
      "title": null,
      "text": "A Sentimonitor está usando sua ferramenta de social listening para monitorar no Twitter, Instagram, Youtube, Blogs, Portais e Jornais o que se fala em torno do Connected Smart Cities São Paulo - CSC GovTech 2023. Confira o painel de dados em tempo real no link ao final do fio!",
      "imageUrl": "https://pbs.twimg.com/media/Ft_5Cg-WAAQWWi3?format=jpg&name=medium",
      "url": "https://twitter.com/sentimonitor/status/1648310900334514179",
      "language": "pt",
      "sentiment": "N",
      "detectedLocations": [
        "Cidade: São Paulo/SP"
      ],
      "citedLocations": [
        {
          "country": "Brasil",
          "countryRegion": "Região Sudeste",
          "state": "SP",
          "city": "São Paulo"
        }
      ],
      "lat": -23.5628006,
      "lon": -46.6547322,
      "published": "2023-04-18T13:01:51Z",
      "downloaded": "2023-04-18T13:05:51Z",
      "metrics": [
        {
          "name": "likes",
          "value": 31
        },
        {
          "name": "shares",
          "value": 6
        }
      ],
      "author": {
        "id": 8817579,
        "source": "TWT",
        "sourceId": "129646722",
        "username": "sentimonitor",
        "name": "Sentimonitor",
        "authorUrl": "http://twitter.com/sentimonitor",
        "imageUrl": "https://pbs.twimg.com/profile_images/1310670133950640130/1-nf79lP_400x400.jpg",
        "isVerified": false,
        "about": "Ferramenta de Inteligência Artificial e Social Listening. 3x Top 10 AI Startups pela 100 Open Startups e 2x Top 3 Martechs pela Distrito Startups.",
        "declaredLocation": "Sao Paulo, Brazil",
        "authorLocations": [
          {
            "country": "Brasil",
            "countryRegion": "Região Sudeste",
            "state": "SP",
            "city": "São Paulo"
          }
        ],
        "metrics": [
          {
            "name": "followers",
            "value": 211
          },
          {
            "name": "following",
            "value": 432
          },
          {
            "name": "publications",
            "value": 696
          }
        ]
      }
    }
  ],
  "remaining": 1,
  "nextCursor": "20230418130551.88651015"
}

Exemplo de chamada incluindo o cursor retornado pela chamada anterior:

curl --request GET \
  --header 'Authorization: Basic c29tZW9uZUBhY21lLmNvbTpXUmF3TXNGTzRKcW82ZTcyZ081WQ==' \
  --url 'https://api.sentimonitor.com/5.0/documents/feed?monitorings=643&cursor=20230418130551.88651015'

POST /monitorings/{monitoring-id}/documents

Inclui os documentos na plataforma, no monitoramento indicado.

Requer como parâmetro o ID do monitoramento onde as publicações serão incluidas.

URL do recurso: https://api.sentimonitor.com/5.0/monitorings/{monitoring-id}/documents

Exemplo de chamada usando cURL para incluir os documentos do monitoramento 643:

curl --request POST \
  --header 'Authorization: Basic c29tZW9uZUBhY21lLmNvbTpXUmF3TXNGTzRKcW82ZTcyZ081WQ==' \
  --header 'Content-Type: application/json' \
  --url 'https://api.sentimonitor.com/5.0/monitorings/643/documents' \
  --data '{
  "documents":
  [
    {
      "source": "RVW",
      "sourceId": "809433297587761152",
      "parentSourceId": null,
      "text": "O SentiMonitor é uma plataforma incrível, e o time de suporte se superou quando pedi ajuda! Recomendo!",
      "language": "pt",
      "sentiment": "B",
      "detectedLocations": [
        "Cidade: São Paulo/SP"
      ],
      "published": "2022-09-29T14:30:30Z",
      "downloaded": "2022-09-29T14:30:30Z",
      "url": "https://twitter.com/sentimonitor/status/1301883193453244417",
      "metrics": [
        {
          "name": "score",
          "value": 10
        }
      ],
      "tags": ["Campanha_Contratação", "Campanha_Combo"],
      "author": {
        "source": "RVW",
        "sourceId": "129646722",
        "username": "Hugo Pinto",
        "annotations": [
          {"name": "Estado Civil", "value": "Casado"},
          {"name": "UF", "value": "SP"}
        ]
      }
    },
    {
      "source": "RVW",
      "sourceId": "806158595129769985",
      "text": "O SentiMonitor parece muito bom, mas não entendi como funciona uma parte dele.",
      "language": "pt",
      "sentiment": "R",
      "detectedLocations": [
        "Cidade: São Paulo/SP"
      ],
      "published": "2022-06-15T10:10:21Z",
      "downloaded": "2022-06-15T10:10:21Z",
      "url": "https://twitter.com/sentimonitor/status/1301883193453244417",
      "metrics": [
        {
          "name": "score",
          "value": 8
        }
      ],
      "author": {
        "source": "RVW",
        "sourceId": "129646722",
        "username": "Hugo Pinto",
        "annotations": [
          {"name": "Estado Civil", "value": "Casado"},
          {"name": "UF", "value": "SP"}
        ]
      }
    }
  ]
}'

Exemplo de retorno da API

{
  "accepted": true,
  "documents": 2
}

Campos de retorno: a API POST /monitorings/{monitoring-id}/documents retorna um objeto com os seguintes campos:

  • accepted: boleano com o valor true, indicando que os documentos foram importados com sucesso. Em caso de erros, será retornado um objeto do tipo Erro.
  • documents: número total de documentos importados pela API. Observe que, após a API retornar um sucesso para a importação de documentos, pode levar alguns instantes para que os documentos sejam exibidos na plataforma ou sejam retornados pela API GET /documents.

GET /authors

Retorna um ranking com os principais autores associados aos documentos coletados pelo Sentimonitor. Os autores retornados são únicos, e são autores de documentos selecionados pelos filtros informados.

Requer como parâmetro todos os filtros obrigatórios, e possui suporte a todos os filtros opcionais. Também suporta o parâmetro authorRanking (consulte Ranking de Autores) e offset para acessar outros autores que não apareçam nesta lista (a paginação de autores funciona da mesma forma que a Paginação de Documentos).

Atualmente, esta API pode calcular até o limite de 200 principais autores para um dado Ranking.

URL do recurso: https://api.sentimonitor.com/5.0/authors

Exemplo de chamada usando cURL para acessar os autores do monitoramento 643 no período 01/dez/2022, 0h até 31/12/2022, 23:59:

curl --request GET \
  --header 'Authorization: Basic c29tZW9uZUBhY21lLmNvbTpXUmF3TXNGTzRKcW82ZTcyZ081WQ==' \
  --url 'https://api.sentimonitor.com/5.0/authors?start=2022-12-01+00%3A00&end=2022-12-31+23%3A59&monitorings=643'

Exemplo de retorno:

{
  "authors":
  [
    {
      "id": 8817579,
      "source": "TWT",
      "sourceId": "129646722",
      "username": "sentimonitor",
      "name": "Sentimonitor",
      "authorUrl": "http://twitter.com/sentimonitor",
      "imageUrl": "https://pbs.twimg.com/profile_images/1310670133950640130/1-nf79lP_400x400.jpg",
      "isVerified": false,
      "personalUrl": "https://www.sentimonitor.com/",
      "about": "Ferramenta de Inteligência Artificial e Social Listening. 3x Top 10 AI Startups pela 100 Open Startups e 2x Top 3 Martechs pela Distrito Startups.",
      "declaredLocation": null,
      "authorLocations": [],
      "metrics":
      [
        {
          "name": "followers",
          "value": 2371
        },
        {
          "name": "following",
          "value": 1517
        },
        {
          "name": "publications",
          "value": 88807
        }
      ]
    },
    {
      "id": 8817579,
      "source": "TWT",
      "sourceId": "129646722",
      "username": "nasa",
      "name": "NASA",
      "authorUrl": "https://twitter.com/nasa",
      "imageUrl": "https://pbs.twimg.com/profile_images/1321163587679784960/0ZxKlEKB_400x400.jpg",
      "isVerified": true,
      "personalUrl": "https://nasa.gov/",
      "about": "There's space for everybody.",
      "declaredLocation": "Pale Blue Dot",
      "authorLocations": [],
      "metrics":
      [
        {
          "name": "followers",
          "value": 75117785
        },
        {
          "name": "following",
          "value": 174
        },
        {
          "name": "publications",
          "value": 70300
        }
      ]
    }
  ],
  "total": 2,
  "offset": 0,
  "count": 2
}

Ranking de Autores: por padrão, a API GET /authors retorna uma lista com os autores que mais tiveram publicações de acordo com os filtros indicados. Para alterar a forma como os autores são ordenados, use o parâmetro authorRanking com um dos seguintes valores:

  • interactions: ordena os autores pelo número total de interações em suas postagens filtradas (o autor com maior número de interações somando todas as publicações filtradas é retornado na primeira posição). Esta opção só está disponível se o filtro opcional viewSource for igual à FCP, FCB, FCG, TWT, ITG, ITB, YTB ou NTC.
  • likes: ordena os autores pelo número total de curtidas em suas postagens filtradas (o autor com maior número de curtidas somando todas as publicações filtradas é retornado na primeira posição). Esta opção só está disponível se o filtro opcional viewSource for igual à FCP, FCB, FCG, TWT, ITG, ITB, YTB ou NTC.
  • comments: ordena os autores pelo número total de comentários em suas postagens filtradas (o autor com maior número de comentários somando todas as publicações filtradas é retornado na primeira posição). Esta opção só está disponível se o filtro opcional viewSource for igual à FCP, FCB, FCG, ITG, ITB, YTB ou NTC.
  • shares: ordena os autores pelo número total de compartilhamentos em suas postagens filtradas (o autor com maior número de compartilhamentos somando todas as publicações filtradas é retornado na primeira posição). Esta opção só está disponível se o filtro opcional viewSource for igual à FCP, FCB, FCG, TWT, ou NTC.
  • impressions: ordena os autores pelo número total de impressões estimadas em suas postagens filtradas (o autor com maior número de impressões estimadas somando todas as publicações filtradas é retornado na primeira posição). Esta opção só está disponível se o filtro opcional viewSource for igual à TWT, ITG ou ITB.
  • followers: ordena os autores pelo número de seguidores (o autor com maior número de seguidoresé retornado na primeira posição). Esta opção só está disponível se o filtro opcional viewSource for igual à TWT, ITG, ITB ou YTB.

Campos de retorno: a API GET /authors retorna um objeto com os seguintes campos:

  • authors: lista com a os principais autores retornados. Cada objeto nesta lista representa um autor, e possui os seguintes campos:
    • id: identificador único do autor na plataforma Sentimonitor.
    • source: código da rede do autor onde a mensagem foi capturada. Consulte a lista de fontes para detalhes.
    • sourceId: identificador único do autor da mensagem na plataforma onde a mensagem foi capturada. Em alguns casos pode ser usado em chamadas diretas na API da rede onde foi capturada. Por exemplo, no caso do Twitter, o sourceId é o ID do perfil no Twitter.
    • username: nome do usuário na rede social. Em algumas redes (Twitter e Instagram, por exemplo), é o arroba do perfil.
    • name: nome próprio do perfil, quando disponível.
    • authorUrl: link para o perfil do autor na rede, quando disponível.
    • imageUrl: link para a imagem/foto de perfil do autor da mensagem.
    • isVerified: valor boleano indicando se o perfil foi verificado pela rede onde foi capturado.
    • personalUrl: link pessoal indicado no perfil do autor (em geral, aponta o site pessoal ou outra rede social do mesmo autor).
    • about: texto com a descrição pessoal do perfil do autor, quando disponível.
    • declaredLocation: quando disponível, contém o texto do campo de localização do perfil do autor, conforme preenchido pelo próprio. Observe que este local nem sempre irá corresponder à uma localidade real.
    • authorLocations: contém a lista de localidades cuja inteligência da SentiMonitor detectou no nome ou biografia do autor. Cada localidade é composta por pais, região do pais, estado e cidade. Veja a descrição detalhada dos campos que compõem uma localidade:
      • country: país da localidade da postagem.
      • countryRegion: região do pais da localidade da postagem. Caso não haja uma região, o valor do campo será null.
      • state: estado da localidade da postagem. Caso não haja um estado, o valor do campo será null.
      • city: cidade da localidade da postagem. Caso não haja uma cidade, o valor do campo será null.
    • metrics: lista de métricas do autor da mensagem. Cada item desta lista é um objeto com campos name (nome da métrica) e value (valor numérico da metrica). Exemplos de métricas são followers (número de seguidores do perfil), following (número de perfis que este autor segue) e publications (número de publicações/mensagens que este perfil já publicou no tempo de vida de sua conta). Outras métricas podem ser incluidas nesta lista em futuras atualizações da plataforma.
  • total: quantidade total de mensagens que atendem aos critérios indicados no filtro da chamada à API.
  • offset: quantidade de mensagens ignoradas através do parâmetro offset (consulte Paginação para detalhes).
  • count: número de autores retornados nessa chamada de API.

GET /indicators

Retorna diversos indicadores associados aos documentos filtrados.

Requer como parâmetro todos os filtros obrigatórios, e possui suporte a todos os filtros opcionais. Consulte a seção Filtragem para detalhes.

Os indicadores retornados são exatamente os mesmos exibidos na interface Web do Sentimonitor, e são controlados através do filtro viewSource. Consulte a documentação deste filtro para detalhes.

URL do recurso: https://api.sentimonitor.com/5.0/indicators

Exemplo de chamada usando cURL para acessar os indicadores do monitoramento 643 no período 01/dez/2022, 0h até 31/12/2022, 23:59:

curl --request GET \
  --header 'Authorization: Basic c29tZW9uZUBhY21lLmNvbTpXUmF3TXNGTzRKcW82ZTcyZ081WQ==' \
  --url 'https://api.sentimonitor.com/5.0/indicators?start=2022-12-01+00%3A00&end=2022-12-31+23%3A59&monitorings=643'

Exemplo de retorno:

{
  "indicators":
  [
    {
      "name": "posts",
      "currentValue": 327,
      "previousValue": 996
    },
    {
      "name": "replication",
      "currentValue": 28,
      "previousValue": 105
    },
    {
      "name": "avgReplicationPerPost",
      "currentValue": 0.09491525423728814,
      "previousValue": 0.12946979038224415
    },
    {
      "name": "overallEngagement",
      "currentValue": 272,
      "previousValue": 2912
    },
    {
      "name": "wgtAvgEngagementPerPost",
      "currentValue": 107.25324675324676,
      "previousValue": 645.0129589632829
    },
    {
      "name": "postImpressions",
      "currentValue": 11394561,
      "previousValue": 32069387
    },
    {
      "name": "avgImpressionsPerPost",
      "currentValue": 38495.1385135135,
      "previousValue": 37508.0549707602
    }
  ]
}

Campos de retorno: a API GET /indicators retorna um objeto com o campo indicators. Esse campo é uma lista de objetos, onde cada objeto dessa lista possui os seguintes campos:

  • name: nome do indicador.
  • currentValue: valor do indicador para o período indicado nos filtros.
  • previousValue: valor do indicador no período anterior, para comparação. O período anterior é definido por um período de igual duração ao período indicado nos filtros, mas que termina no momento anterior o início do período indicado nos filtros. Por exemplo, se os filtros indicarem um período entre 01/jan/2023 0:00 e 31/jan/2023 23:59, o período anterior será de 01/dez/2022 0:00 e 31/dez/2022 23:59.

Indicadores Disponíveis: a plataforma possui diversos indicadores. Porém, alguns deles só são calculados em um contexto em que fazem sentido. Por exemplo, não é possível calcular os compartilhamentos em uma rede onde esse indicador não está disponível (como o Instagram).

O contexto é definido pelo filtro viewSource, que pode ser informado na chamada da API. Quando esse parâmetro não é informado, os seguintes indicadores são retornados:

  • posts: informa o número total de mensagens nos filtros indicados.
  • replication: informa o número de compartilhamentos de publicações no Facebook, somado com o número de Retweets no Twitter.
  • avgReplicationPerPost: contém a replicação média por post.
  • interactions: informa o número total de interações nas postagens do Facebook, Twitter, Instagram e YouTube. Por questões de compatibilidade, esse indicador está replicado no indicador overallEngagement.
  • wgtAvgEngagementPerPost: média ponderada de interações por mensagem. Para detalhes de como é calculado, consulte o manual da plataforma.
  • postImpressions: número total de impressões nas publicações. Para detalhes de como é calculado, consulte o manual da plataforma.
  • avgImpressionsPerPost: número médio de impressões por publicação. Para detalhes de como é calculado, consulte o manual da plataforma.

Quando o parâmetro viewSource é informado, diferentes conjuntos de indicadores são retornados. Para cada uma das fontes que possuem indicadores específicos, estes são os indicadores retornados pela API:

  • FCB:
    • posts: informa o número total de mensagens nos filtros indicados.
    • likes: informa o número total de curtidas nas mensagens filtradas.
    • shares: informa o número de compartilhamentos das mensagens filtradas.
    • comments: informa o número de comentários nas mensagens filtradas.
  • FCG:
    • posts: informa o número total de mensagens nos filtros indicados.
    • likes: informa o número total de curtidas nas mensagens filtradas.
    • shares: informa o número de compartilhamentos das mensagens filtradas.
    • comments: informa o número de comentários nas mensagens filtradas.
    • avgLikesPerPost: número médio de curtidas nas postagens.
    • avgCommentsPerPost: número médio de comentários nas postagens.
    • avgSharesPerPost: número médio de compartilhamentos das postagens.
  • FCP:
    • posts: informa o número total de mensagens nos filtros indicados.
    • likes: informa o número total de curtidas nas mensagens filtradas.
    • shares: informa o número de compartilhamentos das mensagens filtradas.
    • comments: informa o número de comentários nas mensagens filtradas.
    • facebookEngagement: numero total de interações (curtidas, comentários e compartilhamentos) nas postagens filtradas.
    • fanPageLikes: número total de fãs nas páginas responsáveis pelas publicações filtradas.
    • fanPageTalking: soma do indicador Falando sobre isso (*People Talking About*) em todas as páginas responsáveis pelas publicações filtradas.
  • ITB e ITG:
    • posts: informa o número total de mensagens nos filtros indicados.
    • likes: informa o número total de curtidas nas mensagens filtradas.
    • comments: informa o número de comentários nas mensagens filtradas.
    • postImpressions: número estimado de impressões das publicações filtradas.
    • avgLikesPerPost: número médio de curtidas nas postagens.
    • avgCommentsPerPost: número médio de comentários nas postagens.
    • avgEngagementPerPost: número médio de interações (curtidas e comentários) nas publicações.
    • avgImpressionsPerPost: número médio de impressões estimado por publicação.
  • NTC:
    • posts: informa o número total de notícias nos filtros indicados.
    • likes: informa o número total de curtidas nas mensagens filtradas. Este número é estimado a partir de ferramentas públicas das redes sociais, e pode não refletir o número real, o qual pode ser maior por conta de variações na URL compartilhada pelos usuários.
    • shares: informa o número de compartilhamentos das mensagens filtradas. Este número é estimado a partir de ferramentas públicas das redes sociais, e pode não refletir o número real, o qual pode ser maior por conta de variações na URL compartilhada pelos usuários.
    • comments: informa o número de comentários nas mensagens filtradas. Este número é estimado a partir de ferramentas públicas das redes sociais, e pode não refletir o número real, o qual pode ser maior por conta de variações na URL compartilhada pelos usuários.
  • TWT:
    • tweets: número total de Tweets nos filtros indicados.
    • likes: número total de curtidas nos Tweets filtrados.
    • avgLikesPerTweet: número médio de curtidas por Tweet filtrado.
    • retweets: número total de Retweets nos Tweets filtrados.
    • avgRetweetsPerTweet: número médio de Retweets por Tweet filtrado.
    • avgEngagementPerTweet: número médio de interações (curtidas e Retweets) por Tweet filtrado.
    • impressions: número total de impressões estimados nos Tweets filtrados.
    • avgImpressionsPerTweet: número médio de impressões estimado por Tweet filtrados.
  • YTB:
    • videos: número total de vídeos nos filtros indicados.
    • likes: número total de curtidas nos vídeos filtrados.
    • avgLikesPerPost: número médio de curtidas por vídeo filtrado.
    • comments: número total de comentários nos vídeos filtrados.
    • avgCommentsPerPost: número médio de comentários por vídeo filtrado.
    • avgEngagementPerPost: número médio de interações (curtidas e comentários) por vídeo filtrado.
  • RVW:
    • reviews: número total de avaliações nos filtros indicados.
    • npsGlobalScore: NPS calculado a partir das avaliações filtradas.
    • avgNpsScore: nota média nas avaliações filtradas.

GET /chart

Permite acessar os dados dos diversos gráficos da plataforma Sentimonitor com uma única chamada de API.

Observe que esta API retorna apenas os dados númericos e textuais para a construção dos gráficos. A imagem do gráfico precisa ser gerada pelo cliente da API.

Requer como parâmetro todos os filtros obrigatórios, e possui suporte a todos os filtros opcionais. Consulte a seção Filtragem para detalhes. Além dos filtros, a API requer os seguintes parâmetros:

  • series: informa como os dados devem ser segmentados. Suporta os seguintes valores:
    • monitorings: realiza as agregações em primeiro nível por monitoramento filtrado.
    • sources: realiza as agregações em primeiro nível por fonte filtrada.
    • sentiments: realiza as agregações em primeiro nível por sentimento.
    • tags: realiza as agregações em primeiro nível por tag filtrada.
    • gender: realiza as agregações em primeiro nível por gênero.
    • languages: realiza as agregações em primeiro nível por linguagem da publicação.
    • types: realiza as agregações em primeiro nível por tipo de publicação (foto, vídeo, status, etc).
    • location_city: realiza as agregações em primeiro nível por cidade detectada nas mensagens.
    • location_state: realiza as agregações em primeiro nível por estado da federação detectado nas mensagens filtradas.
    • npsGroups: realiza as agregações em primeiro nível por classificação de nota NPS (promotor, passivo, detrator).
    • weekdayHour: série especial que força a agregação em dois níveis: dia da semana (domingo, segunda-feira, etc.) no primeiro nível, e hora do dia (0h, 1h, ..., 22h, 23h). Ao utilizar esta série, deve se utilizar o parâmetro type com o valor line. Esta série exige o parâmetro extra metric.
    • wordcloud: segmenta os dados por palavras mais citadas, retornando, para cada palavra, o número de publicações que a mencionam. Observações:
      • Ao utilizar esta série, deve se utilizar o parâmetro type com o valor pie.
      • São retornadas apenas um conjunto de, no máximo, 100 palavras mais utilizadas. Não é possível gerar a listagem de todas as palavras citadas ao menos uma vez nas mensagens.
    • emojicloud: segmenta os dados por Emojis mais utilizados, retornando, para cada Emoji, o número de publicações que o utilizaram. Observações:
      • Ao utilizar esta série, deve se utilizar o parâmetro type com o valor pie.
      • São retornadas apenas um conjunto de, no máximo, 100 emojis mais utilizadas. Não é possível gerar a listagem de todos os Emojis citadas ao menos uma vez nas mensagens.
  • type: informa o tipo de gráfico que se quer construir. A API utiliza este tipo para decidir como fazer a agregação dos dados a serem retornados. Suporta os seguintes valores:
    • pie: faz a agregação dos dados em um único nível, segmentando por tipo de série escolhida (parâmetro series).
    • bar: faz a agregação dos dados em dois níveis. O primeiro nível é definido pela série escolhida (parâmetro series). O segundo nível é feito pelo sentimento das mensagens.
    • line: faz a agregação dos dados em dois níveis. O primeiro nível é definido pela série escolhida (parâmetro series). O segundo nível é feito dividindo o período total em subsegmentos.
    • list: faz a agregação em um único nível, mas por termos utilizados.
  • metric: além dos parâmetros obrigatórios acima, a API suporta, opcionalmente o parâmetro metric para indicar o valor que será agregado para gerar os gráficos. Os seguintes valores são suportados:

    • posts: realiza as agregações pelo número de postagens. Ou seja, cada ponto no gráfico representa o número de postagens daquela série e segmentação de segundo nível (sentimento ou período). É o valor padrão quando o parâmetro metric não é informado.
    • comments: realiza as agregações pelo número de comentários nas postagens.
    • likes: realiza as agregações pelo número de curtidas.
    • shares: realiza as agregações pelo número de compartilhamentos.
    • interactions: realiza as agregações pelo número de interações.
    • fans: realiza as agregações pelo número de fans nas páginas do Facebook das postagens filtradas.
    • talking: realiza as agregações pelo indicador Falando sobre isso (*People Talking About*) nas páginas do Facebook das postagens filtradas.

URL do recurso: https://api.sentimonitor.com/5.0/chart

Exemplo de retorno com os parâmetros series=sources e type=bar:

{
  "type": "bar",
  "metric": "posts",
  "series": "sources",
  "seriesData": [
    {
      "id": "TWT",
      "title": "Twitter",
      "dataPoints": [
        {
          "id": "B",
          "label": "Positivo",
          "value": 17958
        },
        {
          "id": "N",
          "label": "Neutro",
          "value": 21717
        },
        {
          "id": "R",
          "label": "Negativo",
          "value": 27409
        }
      ]
    },
    {
      "id": "ITB",
      "title": "Instagram Business",
      "dataPoints": [
        {
          "id": "B",
          "label": "Positivo",
          "value": 1235
        },
        {
          "id": "N",
          "label": "Neutro",
          "value": 1245
        },
        {
          "id": "R",
          "label": "Negativo",
          "value": 612
        }
      ]
    },
    {
      "id": "YTB",
      "title": "YouTube",
      "dataPoints": [
        {
          "id": "B",
          "label": "Positivo",
          "value": 692
        },
        {
          "id": "N",
          "label": "Neutro",
          "value": 2296
        },
        {
          "id": "R",
          "label": "Negativo",
          "value": 259
        }
      ]
    }
  ]
}

Filtragem

Diversos endpoints da API do Sentimonitor requerem como parâmetros de requisição os filtros, que limitam a quais dados a requisição abrangerá. Filtros comuns incluem o período das postagens que devem ser consideradas, a rede social ou as tags aplicadas. Esses endpoints aceitam os parâmetros de filtros, descritos abaixo.

Os filtros devem ser submetidos como parâmetros das requisições. Os valores passados como filtros devem ser codificados para URLs (O chamado 'URL encoding'). Por exemplo, nos parâmetros que recebem uma lista, os valores devem ser separados por vírgula (,), que após ser codificada, é convertida em %2C

Filtros obrigatórios

Os seguintes filtros são obrigatórios, e precisam estar presentes em todas as requisições à endpoints que usem filtros:

  • monitorings

Lista com os IDs dos monitoramentos que devem ser considerados, separados por vírgulas (,). Por exemplo, se o monitoramento com ID = 45 deve ser considerado, utilize

monitorings=45

Já se os monitoramentos com IDs 40, 41 e 42 devam ser considerados, utilize:

monitorings=40,41,42

Que, após o 'URL Encoding', torna-se:

monitorings=41%2C42%2C43
  • start

Data e hora de inicio do período em que as postagens devem ser consideradas. Todas as postagens cuja data de publicação tenha sido igual ou posterior ao informado serão consideradas. O formato deve ser yyyy-MM-dd HH:mm. Por exemplo, para definir um período que se inicia no dia 25 de janeiro de 2022, às 10 horas e 25 minutos, utilize:

start=2022-01-25 10:25

Que, após o 'URL Encoding', torna-se:

start=2022-01-25%2010%3A25

Note que a hora deve ser informada no formato '24 horas' (por exemplo, '10' significa '10 horas da manhã', enquanto que '22' significa '10 horas da noite').

  • end

Data e hora do fim do período em que as postagens devem ser consideradas. Todas as postagens cuja data de publicação tenha sido igual ou anterior ao informado serão consideradas. O formato deve ser yyyy-MM-dd HH:mm. Por exemplo, para definir um período que termina em 25 de janeiro de 2022, às 23 horas, utilize:

end=2022-01-25 23:00

Que, após o 'URL Encoding', torna-se:

end=2022-01-25%2023%3A00

Note que a hora deve ser informada no formato '24 horas'. Também observe que o horário informado no filtro 'start' deve ser anterior ao informado no filtro 'end' (caso contrário, nenhuma postagem será considerada).

Filtros Opcionais

Lista com os códigos das fontes de dados que devem ser consideradas, separadas por virgula. Apenas as postagens encontradas nas redes informadas serão consideradas. Se não for informado, todas as redes serão consideradas.

O objetivo deste filtro é permitir o agrupamento de mensagens por fonte, permitindo analizar as postagens e indicadores gerais em várias redes ao mesmo tempo. Note que este filtro não permite visualizar indicadores e nem usar os rankings específicos de uma fonte específica (para estes casos, utilize o filtro viewSource).

Note que nem todas as fontes abaixo são suportadas atualmente para novos monitoramento, e estão disponíveis apenas para acesso a dados históricos. Além disso, algumas fontes podem exigir uma credencial previamente configurada na conta, ou permissão adicional (consulte seu gerente de contas para detalhes). Os seguintes códigos são suportados:

Código | Fonte                         | Novas  | Creden- | Permissão | Somente
       |                               | Buscas | cial    | Adicional | Histórico
-------|-------------------------------|-----------------------------------------
FCP    | Facebook - Páginas            | Sim    | Sim     |           |
GPC    | Google Places                 | Sim    |         | Sim       |
ITB    | Instagram Business            | Sim    | Sim     |           |
NTC    | Notícias                      | Sim    |         | Sim       |
RSS    | Feeds RSS                     | Sim    |         |           |
RVW    | Avaliações                    | Sim    |         |           |
TPA    | TripAdvisor: Atrações         | Sim    |         | Sim       |
TPD    | TripAdvisor: Hotéis           | Sim    |         | Sim       |
TPR    | TripAdvisor: Restaurantes     | Sim    |         | Sim       |
TTK    | TikTok                        | Sim    |         | Sim       |
TWT    | Twitter                       | Sim    | Sim     |           |
YTB    | Youtube                       | Sim    | Sim     |           |
FCB    | Facebook - Postagens Públicas |        |         |           | Sim
FCG    | Facebook - Grupos             |        |         |           | Sim
FCI    | Facebook - Perfil Individual  |        |         |           | Sim
FSP    | FourSquare Photo Search       |        |         |           | Sim
FSQ    | FourSquare Search             |        |         |           | Sim
GBL    | Google Blogs                  |        |         |           | Sim
GNW    | Google News                   |        |         |           | Sim
GPL    | Google Plus                   |        |         |           | Sim
ITG    | Instagram                     |        |         |           | Sim
LKD    | LinkedIn                      |        |         |           | Sim
OKT    | Orkut                         |        |         |           | Sim
TMB    | Tumblr                        |        |         |           | Sim
WRP    | Wordpress                     |        |         |           | Sim

Por exemplo, para considerar apenas as postagens publicadas no Facebook - Páginas ou no Twitter, inclua o parâmetro

sources=FCP,TWT

Após o 'URL Encoding', fica

sources=FCP%2CTWT
  • viewSource

ID da fonte que deve ser considerada para análise. Restringe as postagens a apenas àquelas da rede informada. Ao utilizar este filtro, é possível utilizar opções específicas da rede para ranking de postagens e autores, assim como consultar os indicadores específicos da rede informada.

Observe que, diferentemente do filtro sources, este filtro é restrito a uma única fonte. Não é possível informar várias fontes separadas por vírgula neste caso.

Todas as fontes suportadas pelo filtro sources são suportadas.

Por exemplo, para se fazer análise avançada com indicadores ou ranking do Facebook - Páginas, deve se utilizar:

source=FCP
  • query

Permite filtrar as postagens por aquelas que contenham as palavras ou frases informadas neste filtro. Com ele, é possível analizar um tópico específico, ignorando-se outras palavras. A query pode ser texto de acordo com o descrito em "Filtro por palavras", apresentado no Manual do Sentimonitor. Note que é necessário, assim como nos outros filtros, fazer o URL encoding do string de busca. Se este filtro não for informado, todas as postagens são consideradas.

Por exemplo, para fazer uma busca pelo texto cachorro AND quente, inclua o seguinte parâmetro:

query=cachorro AND quente

que, após o URL encoding, fica

query=cachorro%20AND%20quente
  • authorName

Permite filtrar as postagens por aquelas cujo nome do autor que contenham as palavras informadas. Com ele, é possivel buscar as postagens de autores com o nome informado. Se um nome for utilizado por mais de um autor, as postagens de todos esses autores serão consideradas. Se o filtro não for informado, todos os autores são considerados.

Por exemplo, para fazer uma busca pelas postagens cujos autores conhenham a palavra sentimonitor no nome, inclua o filtro:

authorName=sentimonitor
  • authorAbout

Permite filtrar as postagens por aquelas cuja descrição feita pelo autor em seu perfil contenha as palavras informadas. Por conta disso, ao ser utilizado, automaticamente restringe as postagens àquelas cujo autor tenha preenchido o campo Bio/Biografia/Sobre do seu perfil na rede social.

Por exemplo, para fazer uma buscas por autores que declararam seu interesse por futebol na descrição do perfil, inclua o filtro:

authorAbout=futebol

Lista com os sentimentos dos documentos que devem ser considerados. Cada postagem possui um sentimento atribuido de forma automática ou manual. Assim, esse filtro permite tratar apenas as postagens com determinados sentimentos. Se não for informado, será considerado todos os sentimentos.

Os Sentimentos disponíveis são os seguintes

Código | Sentimento
-------|--------------
   B   | Bom/Positivo
   N   | Neutro
   R   | Ruim/Negativo

Por exemplo, para considerar apenas as postagens Neutras ou positivas, inclua nos parâmetros o seguinte filtro

sentiments=B,N

Que, após o 'URL encoding', ficaria

sentiments=B%2CN

Lista de codigos de linguagem dos documentos. Permite filtrar os documentos por linguagem. Com ele, é possivel restringir os documentos a uma ou mais linguagens especificas. Se não for informado, todas as linguas são consideradas.

Os códigos suportados são os seguintes:

Código | Linguagem
-------------------
  de   | Alemão
  es   | Espanhol
  fr   | Francês
  en   | Inglês
  nl   | Holandês
  pt   | Portugues
  cs   | Tcheco

Por exemplo, para restringir as postagens àquelas em Portugues ou Inglês, adicione o seguinte filtro:

languages=pt,en

Após fazer o 'URL Encoding', fica:

languages=pt%2Cen
  • tags

Lista com os IDs das tags que devem ser consideradas, separados por virgulas. Apenas os documentos com ao menos uma das tags informadas serão considerados. Por padrão, se esse filtro não for incluido, todas as tags cadastradas serão consideradas. Assim, este filtro é relevante no caso de desconsiderar postagens baseado nas tags.

Por exemplo, se desejar considerar apenas os documentos com as tags 51, 52 ou 53, inclua o parâmetro:

tags=51,52,53

Após o 'URL encoding', torna-se:

tags=51%2C52%2C53
  • ignoreTags

Lista com os IDs das tags que não devem ter sido aplicadas, separados por virgulas. Apenas as postagens que não contenham nenhuma das tags informadas nesse filtros serão considerados. Por padrão, se esse filtro não for informado, nenhuma tag será considerada. Dessa forma, esse filtro é relevante para desconsiderar postagens baseados em suas tags.

Por exemplo, para desconsiderar as postagens que tenham as tags 54, 55 nem 56, adicione o parâmetro

ignoreTags=54,55,56

Após o 'URL encoding', torna-se:

ignoreTags=54%2C55%2C56
  • tagExpression

Permite fazer filtragem de documentos com base em expressões com as tags. Qualquer expressão por tags suportada pelo filtro de Taga avançado (consulte o item 'Filtragem por Tags' no Manual do Sentimonitor). Se não for informado, todos as tags serão consideradas.

Este filtro possui prioridade sobre os filtros tags e ignoreTags. Portanto, se for utilizado, estes outros filtros serão ignorados.

Por exemplo, se desejar considerar todas as postagens que tenham as tags 'SAC' ou 'SPAM', inclua o seguinte parâmetro:

tagExpression='SAC' | 'SPAM'

que, após aplicar o 'URL encoding', torna-se:

tagExpression=%27SAC%27%20%7C%20%27SPAM%27
  • authors

Lista com os IDs dos autores que devem ser considerados, separados por virgulas. Apenas as postagens dos autores informados nesse filtro serão considerados. Por padrão, se esse filtro não for informado, todos os autores serão considerados. Assim, esse filtro é relevante para avaliar a postagem de um grupo de autores específico.

Por exemplo, para considerar apenas as postages dos autores com ID 62 e 63, adicione o parâmetro

authors=62,63

Após o 'URL encoding', torna-se

authors=62%2C63
  • authorTags

Lista com os IDs de tags aplicadas em autores que devem ser considerados. Apenas as postagens cujos autores tenham as tags informadas nesse filtro serão consideradas. Por padrão, se esse filtro não for informado, todas as tags de autores serão consideradas. Dessa forma, esse filtro é relevante para avaliar as postagens baseado nas tags aplicadas aos seus autores.

  • onlyVerifiedAuthors

Booleano indicando se apenas as postagens de autores verificados ou não verificados devem ser consideradas. Se utilizado, apenas os autores com status verificado igual ao informado serão considerado. Se não for informado, todos os autores serão considerados. Suporta os valores true ou false.

Por exemplo, para considerar apenas as postagens de autores verificados, inclua o filtro

onlyVerifiedAuthors=true
  • onlyWithPersonalUrl

Booleano indicando se apenas as postagens de autores com url de site pessoal devam ser consideradas ou não. Se utilizado com o valor true, apenas postagens de autores com URL pessoal serão considerados. Se for usado com o valor false, apenas autores sem URL pessoal serão considerados. Se não for informado, todos os autores são considerados.

Por exemplo, para filtrar as postagens apenas de autores com URL de perfil pessoal, inclua o parâmetro

onlyWithPersonalUrl=true
  • contributors

Lista com os IDs de revisores que devem ser considerados. Apenas postagens que tenham sido revisadas pelos usuários informados serão considerados. Por padrão, todos os revisores que trabalharam em qualquer um dos monitoramentos informados (ver filtro monitorings) serão considerados. Com isso, esse filtro é relevante para as postagens em que um ou mais revisores trabalharam (por exemplo, em um processo de auditoria).

Para mais detalhes sobre o processo de revisão, veja "Revisão das Postagens e Autores" no Manual do Usuário Sentimonitor.

  • dlStart

Data e hora de inicio do período da captura (download) das mensagens pela plataforma. Todas as postagens cuja data de download tenha sido igual ou posterior ao informado serão consideradas. O formato deve ser yyyy-MM-dd HH:mm. Por exemplo, para definir um período que se inicia no dia 25 de janeiro de 2022, às 10 horas e 25 minutos, utilize:

start=2022-01-25 10:25

Que, após o 'URL Encoding', torna-se:

start=2022-01-25%2010%3A25

Note que a hora deve ser informada no formato '24 horas' (por exemplo, '10' significa '10 horas da manhã', enquanto que '22' significa '10 horas da noite').

  • dlEnd

Data e hora do fim do período da captura (download) das mensagens pela plataforma. Todas as postagens cuja data de download tenha sido igual ou anterior ao informado serão consideradas. O formato deve ser yyyy-MM-dd HH:mm. Por exemplo, para definir um período que termina em 25 de janeiro de 2022, às 23 horas, utilize:

end=2022-01-25 23:00

Que, após o 'URL Encoding', torna-se:

end=2022-01-25%2023%3A00

Note que a hora deve ser informada no formato '24 horas'. Também observe que o horário informado no filtro 'start' deve ser anterior ao informado no filtro 'end' (caso contrário, nenhuma postagem será considerada).