Headers

Os seguintes headers são obrigatórios em todas as requisições:

NomeValor
Content-Typeapplication/json
AuthorizationApiKey EMAIL:API_KEY

Veja aqui como gerar o header de autorização.

GraphQL

Todos os comandos da API usam GraphQL para fazer uma requisição POST no endpoint https://www.loggi.com/graphql. Antes de fazer uma requisição com um comando GraphQL, é necessário convertê-lo para JSON. Sugestão de ferramenta: GraphQL to JSON. Após converter o comando, basta utilizá-lo como paylodad de uma requisição HTTP normal:

curl --location --request POST 'https://www.loggi.com/graphql' \
--header 'Content-Type: application/json' \
--header 'Authorization: ApiKey EMAIL:API_KEY' \
--data-raw 'GRAPHQL_CONVERTIDO_PARA_JSON'

Exemplo

A seguir, temos um comando GraphQL de exemplo:

mutation {
  createOrder(
    input: {
      paymentMethod: 4665540
      pickups: [
        {
          address: {
            address: "Alameda Santos, 2400 - Jardim Paulista, São Paulo - SP, Brasil"
            complement: "8o andar"
          }
          instructions: "Retirar pacote na portaria."
        }
      ]
      packages: [
        {
          pickupIndex: 0
          recipient: { name: "Engenharia Reversa Corp", phone: "1122819603" }
          address: {
            address: "Alameda Santos, 2444 - Jardim Paulista, São Paulo - SP, Brasil"
            complement: "Sala 1"
          }
          dimensions: { width: 10, height: 10, length: 10, weight: 10 }
          instructions: "Entregar pacote."
        }
      ]
    }
  ) {
    success
    orders {
      pk
      pricing {
        totalCm
      }
      packages {
        pickupWaypoint {
          index
          eta
          legDistance
        }
        waypoint {
          index
          eta
          legDistance
        }
      }
    }
    errors {
      field
      message
    }
  }
}

Após convertê-lo para JSON, obtemos:

{
  "query": "mutation { createOrder( input: { paymentMethod: 4665540 pickups: [ { address: { address: \"Alameda Santos, 2400 - Jardim Paulista, São Paulo - SP, Brasil\" complement: \"8o andar\" } instructions: \"Retirar pacote na portaria.\" } ] packages: [ { pickupIndex: 0 recipient: { name: \"Engenharia Reversa Corp\", phone: \"1122819603\" } address: { address: \"Alameda Santos, 2444 - Jardim Paulista, São Paulo - SP, Brasil\" complement: \"Sala 1\" } dimensions: { width: 10, height: 10, length: 10, weight: 10 } instructions: \"Entregar pacote.\" } ] } ) { success orders { pk pricing { totalCm } packages { pickupWaypoint { index eta legDistance } waypoint { index eta legDistance } } } errors { field message } }}"
}

Agora, basta substituir as variáveis e fazer a requisição:

curl --location --request POST 'https://www.loggi.com/graphql' \
--header 'Content-Type: application/json' \
--header 'Authorization: ApiKey [email protected]:5f4acc56194fa397e71fa7b3350a9625473bf274' \
--data-raw '{
  "query": "mutation { createOrder( input: { paymentMethod: 4665540 pickups: [ { address: { address: \"Alameda Santos, 2400 - Jardim Paulista, São Paulo - SP, Brasil\" complement: \"8o andar\" } instructions: \"Retirar pacote na portaria.\" } ] packages: [ { pickupIndex: 0 recipient: { name: \"Engenharia Reversa Corp\", phone: \"1122819603\" } address: { address: \"Alameda Santos, 2444 - Jardim Paulista, São Paulo - SP, Brasil\" complement: \"Sala 1\" } dimensions: { width: 10, height: 10, length: 10, weight: 10 } instructions: \"Entregar pacote.\" } ] } ) { success orders { pk pricing { totalCm } packages { pickupWaypoint { index eta legDistance } waypoint { index eta legDistance } } } errors { field message } }}"
}'