NAV Navbar
Shell JavaScript Node.JS Python

Thor v1.0

Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

API de acesso ao histórico de raios.

Base URLs:

Email: Suporte Somar Web: Suporte Somar

Authentication

Default

Histórico de raios

Code samples

# You can also use wget
curl -X POST https://api.thor.somar.io/history \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'x-api-key: API_KEY'

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'x-api-key':'API_KEY'

};

$.ajax({
  url: 'https://api.thor.somar.io/history',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "from": "2019-01-01 00:00:00",
  "to": "2019-01-02 00:00:00",
  "geometry": {
    "type": "Point",
    "coordinates": [
      125.6,
      10.1
    ],
    "properties": {
      "radius": 0.01,
      "x-widdershins-oldRef": "#/components/schemas/radius/x-examples/Radius"
    }
  },
  "postback_url": "https://mock.io",
  "x-widdershins-oldRef": "#/components/schemas/pointQuery/x-examples/singlePoint"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'x-api-key':'API_KEY'

};

fetch('https://api.thor.somar.io/history',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'x-api-key': 'API_KEY'
}

r = requests.post('https://api.thor.somar.io/history', params={

}, headers = headers)

print r.json()

POST /history

Retorna o descritivo dos raios em relação ao modelo de busca e o intervalo de data.

Body parameter

{
  "from": "2019-01-01 00:00:00",
  "to": "2019-01-02 00:00:00",
  "geometry": {
    "type": "Point",
    "coordinates": [
      125.6,
      10.1
    ],
    "properties": {
      "radius": 0.01,
      "x-widdershins-oldRef": "#/components/schemas/radius/x-examples/Radius"
    }
  },
  "postback_url": "https://mock.io",
  "x-widdershins-oldRef": "#/components/schemas/pointQuery/x-examples/singlePoint"
}

Parameters

Name In Type Required Description
body body any false Os modelos aceitos pelo histórico de raios são: pontos e polígono, ambos exemplos podem ser encontrados na documentação dessa API.

Example responses

201 Response

{
  "id": "string",
  "query": {
    "from": "2019-01-01 00:00:00Z",
    "to": "2019-01-02 00:00:00Z",
    "geometry": "point",
    "postback_url": "https://postback.mycompany.io/lightnings"
  }
}

Responses

Status Meaning Description Schema
201 Created A solicitação foi criada para a API e assim que finalizado será realizado o postback da informação para a url fornecida. createdResponse
400 Bad Request A requisição não está formada corretamente, na mensagem de erro é possível encontrar mais informações sobre a falha e o que deve ser alterado. standardError

Cancelar solicitação

Code samples

# You can also use wget
curl -X GET https://api.thor.somar.io/{id}/cancel \
  -H 'Accept: application/json' \
  -H 'x-api-key: API_KEY'

var headers = {
  'Accept':'application/json',
  'x-api-key':'API_KEY'

};

$.ajax({
  url: 'https://api.thor.somar.io/{id}/cancel',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'x-api-key':'API_KEY'

};

fetch('https://api.thor.somar.io/{id}/cancel',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'x-api-key': 'API_KEY'
}

r = requests.get('https://api.thor.somar.io/{id}/cancel', params={

}, headers = headers)

print r.json()

GET /{id}/cancel

Cancela a solicitação de busca das informações.

Body parameter

Parameters

Name In Type Required Description
id path string true Id da solicitação criada para a API.

Example responses

Sua solicitação foi cancelada.

{
  "id": "9f3f56d6-0d55-11ea-9c5a-b05216fee501",
  "status": "canceled"
}

O id está não se encontra no padrão.

{
  "error": "Invalid id - does not match schema."
}

O id não foi encontrado.

{
  "error": "Id not found."
}

Responses

Status Meaning Description Schema
200 OK Sua solicitação foi cancelada. statusResponse
400 Bad Request O id está não se encontra no padrão. standardError
404 Not Found O id não foi encontrado. standardError

Resumo de raios

Code samples

# You can also use wget
curl -X POST https://api.thor.somar.io/summary \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'x-api-key: API_KEY'

var headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'x-api-key':'API_KEY'

};

$.ajax({
  url: 'https://api.thor.somar.io/summary',
  method: 'post',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');
const inputBody = '{
  "from": "2019-01-01 00:00:00",
  "to": "2019-01-02 00:00:00",
  "geometry": {
    "type": "Point",
    "coordinates": [
      125.6,
      10.1
    ],
    "properties": {
      "radius": 0.01,
      "x-widdershins-oldRef": "#/components/schemas/radius/x-examples/Radius"
    }
  },
  "postback_url": "https://mock.io",
  "x-widdershins-oldRef": "#/components/schemas/pointQuery/x-examples/singlePoint"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'x-api-key':'API_KEY'

};

fetch('https://api.thor.somar.io/summary',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json',
  'x-api-key': 'API_KEY'
}

r = requests.post('https://api.thor.somar.io/summary', params={

}, headers = headers)

print r.json()

POST /summary

Esse request retorna a contagem dos raios em relação ao modelo de busca e o intervalo de data.

Body parameter

{
  "from": "2019-01-01 00:00:00",
  "to": "2019-01-02 00:00:00",
  "geometry": {
    "type": "Point",
    "coordinates": [
      125.6,
      10.1
    ],
    "properties": {
      "radius": 0.01,
      "x-widdershins-oldRef": "#/components/schemas/radius/x-examples/Radius"
    }
  },
  "postback_url": "https://mock.io",
  "x-widdershins-oldRef": "#/components/schemas/pointQuery/x-examples/singlePoint"
}

Parameters

Name In Type Required Description
body body any false Os modelos aceitos pelo reusmo de raios são: pontos e polígono, ambos exemplos podem ser encontrados na documentação dessa API.

Example responses

201 Response

{
  "id": "string",
  "query": {
    "from": "2019-01-01 00:00:00Z",
    "to": "2019-01-02 00:00:00Z",
    "geometry": "point",
    "postback_url": "https://postback.mycompany.io/lightnings"
  }
}

Responses

Status Meaning Description Schema
201 Created A solicitação foi criada para a API e assim que finalizado será realizado o postback da informação para a url fornecida. createdResponse
400 Bad Request A requisição não está formada corretamente, na mensagem de erro é possível encontrar mais informações sobre a falha e o que deve ser alterado. standardError

Status da solicitação

Code samples

# You can also use wget
curl -X GET https://api.thor.somar.io/{id}/status \
  -H 'Accept: application/json' \
  -H 'x-api-key: API_KEY'

var headers = {
  'Accept':'application/json',
  'x-api-key':'API_KEY'

};

$.ajax({
  url: 'https://api.thor.somar.io/{id}/status',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'x-api-key':'API_KEY'

};

fetch('https://api.thor.somar.io/{id}/status',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'x-api-key': 'API_KEY'
}

r = requests.get('https://api.thor.somar.io/{id}/status', params={

}, headers = headers)

print r.json()

GET /{id}/status

Busca as informações sobre a solicitação e o seu atual status.

Parameters

Name In Type Required Description
id path string true Id da solicitação criada para a API.

Example responses

Solicitação encontrada. Mais schemas de respostas podem ser encontrados na schema de solicitações.

{
  "id": "9f3f56d6-0d55-11ea-9c5a-b05216fee501",
  "status": "finished",
  "url": "https://s3.amazonaws.com/path-to-file/file-name.csv"
}

O id está não se encontra no padrão.

{
  "error": "Invalid id - does not match schema."
}

O id não foi encontrado.

{
  "error": "Id não encontrado."
}

Responses

Status Meaning Description Schema
200 OK Solicitação encontrada.
Mais schemas de respostas podem ser encontrados na schema de solicitações. statusResponse
400 Bad Request O id está não se encontra no padrão. standardError
404 Not Found O id não foi encontrado. standardError

Your GET endpoint

Code samples

# You can also use wget
curl -X GET https://api.thor.somar.io/states \
  -H 'Accept: application/json' \
  -H 'x-api-key: API_KEY'

var headers = {
  'Accept':'application/json',
  'x-api-key':'API_KEY'

};

$.ajax({
  url: 'https://api.thor.somar.io/states',
  method: 'get',

  headers: headers,
  success: function(data) {
    console.log(JSON.stringify(data));
  }
})

const fetch = require('node-fetch');

const headers = {
  'Accept':'application/json',
  'x-api-key':'API_KEY'

};

fetch('https://api.thor.somar.io/states',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

import requests
headers = {
  'Accept': 'application/json',
  'x-api-key': 'API_KEY'
}

r = requests.get('https://api.thor.somar.io/states', params={

}, headers = headers)

print r.json()

GET /states

Retorna todos os estados disponíveis para a busca de informações com base nos polígonos cadastrados.

Body parameter

Example responses

OK

{
  "from": "2019-01-01 00:00:00",
  "to": "2019-01-02 00:00:00",
  "state": "37",
  "postback_url": "https://mock.io"
}

Responses

Status Meaning Description Schema
200 OK OK stateQuery
400 Bad Request Bad Request None

Schemas

pointQuery

{
  "from": "2019-01-01 00:00:00Z",
  "to": "2019-01-02 00:00:00Z",
  "geometry": "point",
  "postback_url": "https://postback.mycompany.io/lightnings"
}

Paramêtros para a busca em relação a pontos

Properties

Name Type Required Restrictions Description
from string(date-time) true none Início do período de busca.
to string(date-time) true none Final do período de busca.
geometry object true none none
» type string true none Geometria de referência utilizada na busca.
» coordinates position true none Posição com as coordenadas x, y (ordenado por longitude, latitude).
» properties radius true none Distância de busca em relação aos pontos (unidade graus).
postback_url string(uri) false none URL para a devolução do arquivo - Ela deve possuir https para que seja aceita. Caso nenhum valor seja informado a operação não sera realizada, sendo responsabilidade do solicitante pegar o arquivo resultado.

Enumerated Values

Property Value
geometry point
geometry polygon
type Point

polygonQuery

{
  "geometry": "point",
  "to": "2019-01-02 00:00:00Z",
  "from": "2019-01-01 00:00:00Z",
  "postback_url": "https://postback.mycompany.io/lightnings"
}

Parâmetros para busca em polígonos

Properties

Name Type Required Restrictions Description
Parâmetros para busca em polígonos any false none Query para a busca de raios em uma geometria de ponto e em uma distância máxima do mesmo.

allOf

Name Type Required Restrictions Description
anonymous object false none none
» geometry object true none Geometria de referência utilizada na busca.
»» type string false none none
»» coordinates [array] false none none

and

Name Type Required Restrictions Description
» anonymous genericParameters false none Parâmetros utilizados em todos as solicitações de eventos climáticos.

Enumerated Values

Property Value
geometry point
geometry polygon

standardError

{
  "error_message": "string"
}

Erro padrão

Properties

Name Type Required Restrictions Description
error_message string true none Descrição do erro com o motivo e possível solução, quando cabe.

createdResponse

{
  "id": "string",
  "query": {
    "from": "2019-01-01 00:00:00Z",
    "to": "2019-01-02 00:00:00Z",
    "geometry": "point",
    "postback_url": "https://postback.mycompany.io/lightnings"
  }
}

Requisição criada

Properties

Name Type Required Restrictions Description
id string(uuid) true none Id que será utilizado como identificador em toda a aplicação.
query any false none Descrição da query utilizada na busca das informações.

oneOf

Name Type Required Restrictions Description
» anonymous pointQuery false none Query para a busca de raios em uma geometria de ponto e em uma distância máxima do mesmo.

xor

Name Type Required Restrictions Description
» anonymous polygonQuery false none Query para a busca de raios em uma geometria de ponto e em uma distância máxima do mesmo.

xor

Name Type Required Restrictions Description
» anonymous multiPointQuery false none Query para a busca de raios em uma geometria de multi pontos e em uma distância máxima do mesmos.

statusResponse

{
  "id": "string",
  "status": "in queue",
  "url": "string",
  "error": "string"
}

Resposta de status

Properties

Name Type Required Restrictions Description
id string(uuid) true none Id informado na solicitação.
status string true none Status da solicitação.
url string false none URL para a aquisição dos dados.
error string false none Descrição do erro o qual a aplicação enfrentou.

Enumerated Values

Property Value
status in queue
status runnning
status canceled
status finished
status failed

multiPointQuery

{
  "postback_url": "https://postback.mycompany.io/lightnings",
  "geometry": "point",
  "to": "2019-01-02 00:00:00Z",
  "from": "2019-01-01 00:00:00Z"
}

Paramêtros para a busca em relação a pontos

Properties

Name Type Required Restrictions Description
postback_url string(uri) false none URL para a devolução do arquivo - Ela deve possuir https para que seja aceita. Caso nenhum valor seja informado a operação não sera realizada, sendo responsabilidade do solicitante pegar o arquivo resultado.
geometry object true none none
» type string true none Geometria de referência utilizada na busca.
» coordinates [position] true none [Posição com as coordenadas x, y (ordenado por longitude, latitude).]
» properties radius true none Distância de busca em relação aos pontos (unidade graus).
to string(date-time) true none Final do período de busca.
from string(date-time) true none Início do período de busca.

Enumerated Values

Property Value
geometry point
geometry polygon
type MultiPoint

position

"[ 100, 0 ]"

position

Properties

Name Type Required Restrictions Description
position [number] false none Posição com as coordenadas x, y (ordenado por longitude, latitude).

radius

{
  "radius": "0.01"
}

radius

Properties

Name Type Required Restrictions Description
radius number true none none

genericParameters

{
  "to": "2019-01-02 00:00:00Z",
  "from": "2019-01-01 00:00:00Z",
  "postback_url": "https://postback.mycompany.io/lightnings"
}

genericParameters

Properties

Name Type Required Restrictions Description
to string(date-time) true none Final do período de busca.
from string(date-time) true none Início do período de busca.
postback_url string(uri) false none URL para a devolução do arquivo - Ela deve possuir https para que seja aceita. Caso nenhum valor seja informado a operação não sera realizada, sendo responsabilidade do solicitante pegar o arquivo resultado.

cityQuery

{
  "to": "2019-01-02 00:00:00Z",
  "from": "2019-01-01 00:00:00Z",
  "postback_url": "https://postback.mycompany.io/lightnings",
  "city": "string"
}

Parâmetros para a busca de cidades

Properties

Name Type Required Restrictions Description
Parâmetros para a busca de cidades any false none Modelo de requisição para capturar as informações baseadas em cidades.

allOf

Name Type Required Restrictions Description
anonymous genericParameters false none Parâmetros utilizados em todos as solicitações de eventos climáticos.

and

Name Type Required Restrictions Description
anonymous object false none none
» city string true none none

stateQuery

{
  "to": "2019-01-02 00:00:00Z",
  "from": "2019-01-01 00:00:00Z",
  "postback_url": "https://postback.mycompany.io/lightnings",
  "state": "string"
}

Parâmetros para a busca de cidades

Properties

Name Type Required Restrictions Description
Parâmetros para a busca de cidades any false none Modelo de requisição para capturar as informações baseadas em municipios.

allOf

Name Type Required Restrictions Description
anonymous genericParameters false none Parâmetros utilizados em todos as solicitações de eventos climáticos.

and

Name Type Required Restrictions Description
anonymous object false none none
» state string true none none