API Reference
A API REST do Horas PJ permite integrar seu sistema de controle de horas com outras ferramentas, automatizar lançamentos e consultar dados.
https://horas.jonathantolotti.com.br/api/v1
Autenticação
A API utiliza Bearer Token. Envie o token em todas as requisições via header Authorization.
Como gerar um token
- Acesse Configurações → seção Tokens de API
- Digite um nome para identificar o token (ex: "Zapier", "Script Python")
- Clique em Gerar Token
- Copie o token exibido — ele não será exibido novamente
Usando o token
Erros
Todos os erros retornam JSON com o campo message. Erros de validação incluem o campo errors.
| Código | Significado |
|---|---|
401 | Token ausente ou inválido |
403 | Sem permissão (ex: recurso Premium) |
404 | Recurso não encontrado |
422 | Erro de validação — veja o campo errors |
429 | Rate limit excedido |
500 | Erro interno do servidor |
Rate Limiting
Limite de 60 requisições por minuto por token. Quando excedido, a API retorna HTTP 429.
Os headers X-RateLimit-Limit e X-RateLimit-Remaining indicam os limites em cada resposta.
Usuário
Retorna os dados do usuário autenticado.
Lançamentos de Horas
Lista os lançamentos do mês. Paginado em 50 por página.
Parâmetros de query
| Parâmetro | Tipo | Descrição |
|---|---|---|
| month | string opcional | Mês no formato YYYY-MM. Padrão: mês atual. |
| page | integer opcional | Número da página. Padrão: 1. |
Retorna as estatísticas mensais (horas, receita, etc.).
| Parâmetro | Tipo | Descrição |
|---|---|---|
| month | string opcional | Mês no formato YYYY-MM. Padrão: mês atual. |
Cria um novo lançamento de horas.
Body (JSON)
| Campo | Tipo | Descrição |
|---|---|---|
| date | string obrigatório | Data no formato YYYY-MM-DD |
| start_time | string obrigatório | Hora de início HH:MM |
| end_time | string obrigatório | Hora de fim HH:MM |
| project_id | integer opcional | ID do projeto |
| description | string opcional | Descrição do trabalho |
Exclui um lançamento. Retorna HTTP 200 com mensagem de confirmação.
Projetos
Lista os projetos ativos do usuário.
Cria um novo projeto.
| Campo | Tipo | Descrição |
|---|---|---|
| name | string obrigatório | Nome do projeto |
| active | boolean opcional | Padrão: true |
| is_default | boolean opcional | Projeto padrão para tracking automático |
| default_description | string opcional | Descrição padrão ao salvar tracking |
Atualiza um projeto. Mesmos campos do POST.
Exclui um projeto.
Empresas
Lista as empresas do usuário.
Retorna os dados de uma empresa específica, incluindo endereço e responsável.
Cria uma nova empresa.
| Campo | Tipo | Descrição |
|---|---|---|
| name | string obrigatório | Nome fantasia |
| cnpj | string obrigatório | CNPJ no formato XX.XXX.XXX/XXXX-XX |
| active | boolean opcional | Padrão: true |
| razao_social | string opcional | Razão social |
| string opcional | E-mail de contato | |
| telefone | string opcional | Telefone |
| cep / logradouro / numero / bairro / cidade / uf | string opcional | Endereço |
Atualiza uma empresa. Mesmos campos do POST.
Exclui uma empresa.
Configurações
Retorna as configurações do usuário (valor/hora, extras, descontos, etc.).
Atualiza as configurações do usuário.
| Campo | Tipo | Descrição |
|---|---|---|
| hourly_rate | number opcional | Valor por hora (R$) |
| extra_value | number opcional | Valor extra fixo (R$) |
| discount_value | number opcional | Desconto fixo (R$) |
| on_call_hourly_rate | number opcional | Valor por hora de sobreaviso (R$) |
| auto_save_tracking | boolean opcional | Salvar tracking automaticamente |
Tracking
Controle o tracking de horas em tempo real.
Retorna o status atual do tracking.
Inicia o tracking. Retorna HTTP 409 se já existe um tracking ativo.
Para o tracking e retorna as horas trabalhadas. Não salva o lançamento automaticamente — use POST /time-entries para registrar.
Sobreaviso Premium
Gerencie períodos de sobreaviso. Requer assinatura Premium.
Lista os períodos de sobreaviso do mês.
| Parâmetro | Tipo | Descrição |
|---|---|---|
| month | string opcional | Mês no formato YYYY-MM. Padrão: mês atual. |
Retorna estatísticas de sobreaviso do mês.
Cria um período de sobreaviso.
| Campo | Tipo | Descrição |
|---|---|---|
| start_datetime | datetime obrigatório | Início do sobreaviso YYYY-MM-DD HH:MM |
| end_datetime | datetime obrigatório | Fim do sobreaviso YYYY-MM-DD HH:MM |
| hourly_rate | number obrigatório | Valor por hora de sobreaviso (R$) |
| project_id | integer opcional | ID do projeto vinculado |
| description | string opcional | Descrição |
Atualiza um período de sobreaviso. Mesmos campos do POST.
Exclui um período de sobreaviso.
© 2026 Horas PJ · horas-pj.com