Clique aqui e conheça nossos planos de API

Esta API fornece acesso ao cadastro dos produtos do Cosmos.

Autenticação

Todas as chamadas deverão conter no cabeçalho o campo X-Cosmos-Token com o seu token de acesso a API que estará disponível logo abaixo quando você estiver logado.


Modelagem da API

Todos os serviços disponibilizados através da API utilizam a tecnologia REST (Representational State Transfer), uma arquitetura para a disponibilização de recursos através de sistemas distribuídos, popularmente utilizado sobre HTTP.
HTTP 1.1
O protocolo padrão para comunicação com as APIs é o HTTP versão 1.1. Para maiores informações sobre esse protocolo, consulte: http://www.w3.org/Protocols/rfc2616/rfc2616.html http://www.ietf.org/rfc/rfc2616.txt
UTF-8
O Charset padrão para chamadas às APIs é o UTF-8. Para maiores informações sobre essa codificação, consulte: https://tools.ietf.org/html/rfc3629
JSON
JSON (JavaScript Object Notation) é um padrão para descrição de dados para intercâmbio entre sistemas e é mais simples e mais leve que o XML.

Endpoint

O endpoint para acessar a API é: https://api.cosmos.bluesoft.com.br

Serviços

Os serviços abaixo podem ser utilizados para fazer consultas no banco de dados geral do Cosmos:

/gtins/{código}
Recupera detalhes do produto atráves do GTIN/EAN informado.
/gpcs/{código}
Recupera detalhes do GPC e Produtos vínculados a ele, atráves do código informado.
/ncms/{código}/products
Recupera detalhes do NCM e Produtos vínculados a ele, atráves do código informado.
/products?query={descrição ou gtin}
Recupera lista de produtos paginados atráves da descrição ou GTIN.
Caso o usuário seja um varejista, é possível utilizar os seguintes serviços para consultar sua base de produtos:

/retailers/gtins/{código}
Recupera detalhes do produto de um varejista atráves do GTIN/EAN informado.
/retailers/gpcs/{código}
Recupera detalhes do GPC e Produtos vínculados a ele na base de produtos do varejista, atráves do código informado.
/retailers/ncms/{código}
Recupera detalhes do NCM e Produtos vínculados a ele na base de produtos do varejista, atráves do código informado.
/retailers/products?query={descrição ou gtin}
Recupera uma lista de produtos paginados da base do varejista atráves da descrição ou GTIN.

Lista de Códigos de Sucesso

A API usa os seguintes códigos HTTP para indicar retornos de sucesso comuns:

Lista de Códigos de Erro

A API usa os seguintes códigos HTTP para indicar erros comuns:

Políticas de Acesso

O acesso aos serviços da API do Cosmos são regulados por políticas de acesso (policy rules). Essas regras definem a quantidade de requisições que podem ser realizados para cada serviço. Toda vez que o limite de chamadas é excedido, a requisição é respondida com o status HTTP 429 acompanhado de uma mensagem informando a quantidade excedida.

Exemplos

Nos exemplos abaixo, estamos obtendo os detalhes de um produto com o GTIN 7891910000197.

      require 'net/http'
      uri = URI.parse('https://api.cosmos.bluesoft.com.br/gtins/7891910000197.json')
      http = Net::HTTP.new(uri.host, uri.port)
      http.use_ssl = true
      request = Net::HTTP::Get.new(uri.request_uri)
      request['Content-Type'] = 'application/json'
      request['X-Cosmos-Token'] = 'AUTH_TOKEN'
      response = http.request(request)
      puts response.body
    
      $url = 'https://api.cosmos.bluesoft.com.br/gtins/7891910000197.json';
      $headers = array(
        "Content-Type: application/json",
        "X-Cosmos-Token: AUTH_TOKEN"
      );

      $curl = curl_init($url);
      curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
      curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($curl, CURLOPT_FAILONERROR, true);

      $data = curl_exec($curl);
      if ($data === false || $data == NULL) {
        var_dump(curl_error($curl));
      } else {
        $object = json_decode($data);

        var_dump($object);
      }

      curl_close($curl);
    
      curl -i -X GET \
        -H "Content-Type:application/json" \
        -H "X-Cosmos-Token:AUTH_TOKEN" \
        'https://api.cosmos.bluesoft.com.br/gtins/7891910000197.json'
    
      import urllib2
      import json

      headers = {
          'X-Cosmos-Token': 'AUTH_TOKEN',
          'Content-Type': 'application/json'
      }

      req      = urllib2.Request('https://api.cosmos.bluesoft.com.br/gtins/7891910000197.json', None, headers)
      response = urllib2.urlopen(req)
      data     = json.loads(response.read())

      print json.dumps(data, indent=4)
    
Clique aqui para baixar o projeto em Delphi de exemplo.
      var str,url: string;
      begin
      try
          url := 'https://api.cosmos.bluesoft.com.br/gtins/7891910000197.json';

          IdHTTP1.Request.ExtraHeaders.Values['X-Cosmos-Token']:='AUTH_TOKEN';
          IdHTTP1.Request.ContentType := 'application/json;charset=UTF-8';

          Memo1.Clear;

          Screen.Cursor := crHourGlass;
          str := IdHTTP1.Get(url);

          except on E: Exception do
        Begin
          Memo1.Lines.Add('Resposta da exceção:');
          Memo1.Lines.Add('--> '+E.Message);
        End;
      end;

      Memo1.Lines.Add('HTTP Status Code:');
      Memo1.Lines.Add('--> '+IdHTTP1.ResponseText);

      Memo1.Lines.Add('Resposta da consulta:');
      Memo1.Lines.Add('--> ' + UTF8Decode(str));

      Screen.Cursor := crDefault;
    
      using System;
      using System.Net;
      using System.Net.Http;
      using System.Net.Http.Headers;

      class Cosmos
      {
          static void Main(string[] args) {
              var url = "https://api.cosmos.bluesoft.com.br/gtins/7891910000197.json";
              CosmosWebClient wc = new CosmosWebClient();
              string response = wc.DownloadString(url);
              Console.Write(response);
          }

          public class CosmosWebClient : WebClient {
              protected override WebRequest GetWebRequest(Uri address) {
                  HttpWebRequest request = (HttpWebRequest) base.GetWebRequest(address);
                  request.Headers["X-Cosmos-Token"] = "AUTH_TOKEN";
                  base.Encoding = System.Text.Encoding.UTF8;
                  return request;
              }
          }
      }
    
 $.ajax({type: 'GET', url: 'https://api.cosmos.bluesoft.com.br/gtins/7891910000197.json', dataType: 'jsonp', headers: {'Content-Type': 'application/json', 'X-Cosmos-Token': 'AUTH_TOKEN'} }).done(function(data) {alert(data); }); 
Retorno da Consulta Acima
{
    "avg_price": 2.99,
    "brand": {
        "name": "UNIÃO",
        "picture": ""
    },
    "description": "AÇÚCAR REFINADO UNIÃO 1KG",
    "gpc": {
        "code": "10000043",
        "description": "Açúcar / Substitutos do Açúcar (Não perecível)"
    },
    "gross_weight": 1000,
    "gtin": 7891910000197,
    "height": 0.0,
    "length": 0.0,
    "max_price": 2.99,
    "ncm": {
        "code": "17019900",
        "description": "Outros",
        "full_description": "Açúcares e produtos de confeitaria - Açúcares de cana ou de beterraba e sacarose quimicamente pura, no estado sólido - Outros: - Outros"
    },
    "net_weight": 1000,
    "price": "R$ 2,99",
    "thumbnail": "https://cdn-cosmos.bluesoft.com.br/products/7891910000197",
    "width": 0.0
}