Snippets

Maiquel Ludwig Searchbar API Reference

Created by Maiquel Ludwig last modified

Searchbar.org API Reference

Este documento detalha as principais rotas da API para usuário desenvolvedor e integração com o Searchbar.


Antes de começar

A Url base da API do Searchbar é

https://api.searchbar.org/v1

Erros Genéricos

Código Descrição
401 Usuário não autorizado ou token inválida
400 Request mal formado
422 Payload/json com campos faltantes

Todos os requests possuem Rate Control (a fim de evitar ataques DDoS). Portanto, considere o limite de 3 requests simultâneos, aguardando a resposta para iniciar novos requests.


Autenticação

Para ter acesso à API Searchbar é necessário obter uma token de autorização, que deve ser incluída como Bearer Token no cabeçalho "Authentication" em todos os demais requests.

"Authorization" : "Bearer [sua_token_de_authorização]"


POST /account/login

{
    "email": "seuemail@exemplo.com",
    "password": "suasenha"
}
Parâmetro Tipo Descrição
email String O email da sua conta Searchbar
password String A senha da sua conta Searchbar

Exemplo Retorno

{
    "user": "meuemail@exemplo.com",
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCJ6IkpXVCJ9.eyJpZCI6IjViZWM2MzIxN2IartcwMjJlMDU3OGNlMyIsInRva2VuVHlwZSI6InByaXZhdGUiLCJyb2xlIjoiQURNSU4iLCJpYXQiOjE1OTE2NzYwNjksImV4cCI6MTU5MTc2MjQ2OX0.Gotjepi8xfa8oakzVg2eMkEm3GMpCuNvmkdcJejJEyc",
    "publicToken": "eyJhbGciOiJIUzI1NiPirnR5cCI6IkpXVCJ9.eyJpZCI6IjViZWM2MzIxN2IwYTcwMfg45sU3OGNlMyIsInRva2VuVHlwZSI6InB1YmxpYyIsImlhdCI6MTU5MTY3NjA2OSwiZXhwIjoxNTkxNzYyNDY5fQ.Ve68IS19aMrddWf800V1eDCKa_vy8Kqvek5UDT0o7b0",
    "expirationDate": "2020-04-21T04:14:29.000Z"
}
| Parâmetro | Tipo | Descrição | |:----------|:-----|:------------| | user | String | O email da sua conta Searchbar | token | String | Sua token privada para utilização da API. Não publique ou compartilhe a sua token privada. Expira após 24hrs | publicToken | String | Sua token pública para utilização em ambientes públicos e no seu site. Não Expira. | expirationDate | ISO Date | Data da expiração da sua token privada. Após esse período, é necessário novo login.


GET /account/site

Retorna os sites cadastrados e indexados na sua conta.

[
    {
        "name": "Site Principal",
        "sitemap": "https://meusite.com.br/sitemap.xml",
        "site": "https://meusite.com.br",
        "active": true
    }
]
| Parâmetro | Tipo | Descrição | |:----------|:-----|:------------| | name | String | Alias do site | sitemap | String | Caso seja informado um sitemap, ou o crowler encontre algum automaticamente, o endereço do Arquivo sitemap.xml é retornado | site | String | URL base do Site indexado | active | Boolean | Ativo ou Inativo


PUT /account/site

Define o site principal da sua conta.

Cuidado: este endpoint atualiza todas as páginas da sua conta, exceto as inseridas manualmente via POST /page.

{
    "site":"https://meunovosite.com.br"
}
| Parâmetro | Tipo | Descrição | |:----------|:-----|:------------| | site | String | URL do site a ser indexado


GET /page/

Efetua uma busca por texto nas páginas indexadas na sua conta

GET /page/?q=termo&offset=0&size=10&tag=news

Parâmetro Tipo Descrição
q String Query a ser buscada
offset Number Define o offset de paginação para retornar a busca
size Number Define a quantidade de resultados por página retornada (máximo 100)
tag String Se definida, filtra os resultados pela tag informada. Pode ser adicionada mais de uma tag à URL.

Exemplo de Retorno

{
    {
        "term": "termo",
        "total": 61,
        "from": "0",
        "to": 10,
        "tags": [
                {
                    "key": "news",
                    "doc_count": 25
                }
            ],
        "results": [
            {
                "_index": "pages",
                "_type": "page",
                "_id": "5edf0eded584ee21c924c732",
                "_score": 2,
                "_source": {
                    "url": "https://meunovosite.com.br/about-us/",
                    "account": "5bec63217b0a7022e0578ce3",
                    "status": "PROCESSED",
                    "origin": "SITEMAP",
                    "weight": 1,
                    "description": "This is the page result description...",
                    "title": "Page Title"
                },
                "highlight": {
                    "description.special": [
                        "This is a <em>highlighted</em> text description..."
                    ]
                }
            }
        }
    }
}
| Parâmetro | Tipo | Descrição | |:----------|:-----|:------------| | term | String | Termo buscado | total | Number | Quantidade total de páginas encontradas que atendem ao termo buscado | from | Number | Início da paginação atual | to | Number | Fim da paginação atual | tags | Array | Lista de tags relacionadas aos resultados e suas quantidades | results | Array | Lista de Resultados


POST /page/

Insere páginas customizadas ou atualiza páginas existentes.

Importante: O tamanho do Payload não deve ultrapassar 500 KBs.

{
    "pages": [
        {
            "url": "http://example.com/1",
            "title": "This is a title example",
            "description": "This is the description from the page. It can be a large text."
        },
        {
            "url": "http://example.com/2",
            "title": "This is a title example 2",
            "description": "This is the description from the page. It can be a large text.",
            "tags": ["blog", "news"],
            "image": "https://upload.wikimedia.org/wikipedia/commons/b/b6/Image_created_with_a_mobile_phone.png"
        },
        {
            "url": "http://example.com/3",
            "title": "This is a title example 3 ",
            "description": "This is the description from the page. It can be a large text.",
            "weight": "2"
        }
    ]
}
| Parâmetro | Tipo | Descrição | |:----------|:-----|:------------| | pages | Array | Array de Pages | url | String | URL da página a ser adicionada (Obrigatório) | title | String | Título da página a ser adicionada (Obrigatório) | description | String | Descrição da página a ser adicionada | tags | String Array | Tags opcionais para classificar páginas | weight | Number | Peso da página. Páginas multiplicam seu score com o seu peso para se tornarem artificialmente mais relevantes.


DELETE /page/

Remove a lista de páginas enviadas ou remove todas as páginas

{
    "deleteAll": false,
    "deleteList": [
        "http://example.com/1",
        "http://example.com/2",
        "http://example.com/3",
        "http://example.com/5"
    ]
}
| Parâmetro | Tipo | Descrição | |:----------|:-----|:------------| | deleteAll | Boolean | Quando true, remove todas as páginas indexadas na conta | deleteList | Array | Lista com as URLs das páginas a serem deletadas

Comments (0)

HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.