Visão Geral

A API Curtos.pt permite chamar métodos pelo protocolo HTTP e envia a respostas no estilo REST JSON.

Autenticação

Para autenticação é necessário enviar a chave da API no Header Authorization de cada pedido. A chave da API pode ser configurada na tua conta depois de te registares.

A autenticação é necessária em todos os pedidos.

Encoding

Usa a codificação UTF-8 em todos os pedidos à API.

Versão

1.0.0 (Draft)
Data criação: 2020/05/03
Última atualização: 2021/06/28
Root URL: https://curtos.pt/

Testar

A melhor maneira de testar o serviço é criar uma conta. Dessa forma, podes testar todas as funcionalidades e obter controle total dos dados.

Criar conta

Códigos de Resposta

Os códigos de resposta são baseados no formato HTTP.

Code           Message
200            OK
201            Created
400            Bad Request
401            Unauthorized
403            Forbidden
404            Not Found
405            Method Not Allowed
500            Internal Server Error
501            Not Implemented

Endpoints

Criar Link

Criar um link curto para o determinado target longo.

Pedido

POSTEndpoint: /api/v1/create
Host: https://curtos.pt

Payload

JSON{
	"target": "https://curtos.pt",
	"expires_after": 60 //Opcional
}

Resposta

JSON{
    "name": "Created",
    "message": "Short link created with success",
    "code": 201,
    "status": "OK",
    "data": {
        "code": "183adb",
        "target": "https://curtos.pt/",
        "short": "https://www.curtos.pt/183adb",
        "expires_after": "2020-07-02 23:53:46"
    }
}

Apagar Link

Apagar um link curto com determinado código.

Pedido

DELETEEndpoint: /api/v1/delete
Host: https://curtos.pt

Payload

JSON{
	"code": "183adb"
}

Resposta

JSON{
    "name": "OK",
    "message": "Short link deleted with success",
    "code": 200,
    "status": "OK",
    "data": []
}

Estatísticas

Obter estatísticas de um link curto com determinado código.

Pedido

GETEndpoint: /api/v1/stats?code={code}
Host: https://curtos.pt

Resposta

JSON{
    "name": "OK",
    "message": "Data retrieved with success",
    "code": 200,
    "status": "OK",
    "data": {
        "code": "183adb",
        "target": "https://curtos.pt",
        "short": "https://curtos.pt/183adb",
        "expires_after": "2021-02-21 23:05:12",
        "visits": 37,
        "byBrowser": {
            "Chrome": 12,
            "Firefox": 6,
            "Safari": 6,
            "Opera": 6,
            "Internet Explorer": 5,
            "Edge": 5,
            "Boots": 0
        },
        "byCountry": {
            "ES": {
                "name": "España",
                "count": 2
            },
            "FR": {
                "name": "France",
                "count": 1
            },
            "IT": {
                "name": "Italia",
                "count": 2
            },
            "PT": {
                "name": "Portugal",
                "count": 17
            },
            "US": {
                "name": "United States",
                "count": 1
            }
        }
    }
}

Changelog

2021/06/28

  • Passa a permitir apenas utilizadores registados

2021/01/21

  • Barrar endereços não seguros (sem https)

2020/11/22

  • Adicionar endpoint para estatisticas

2020/05/04

  • Atualização da documentação

2020/05/03

  • Lançamento