# API Endpoints Reference - Krayin CRM v2.1.6
Referência completa de todos os endpoints disponíveis na API REST.
📋 Índice
- Autenticação
- Leads
- Contacts/Persons
- Organizations
- Products
- Activities
- Quotes
- Webhooks
- Tags
- Paginação e Filtros
1. Autenticação
POST /api/v1/login
Obter token de acesso.
Request:
curl -X POST "https://crm.memudecore.com.br/api/v1/login" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "email=admin@example.com&password=admin123&device_name=MeuApp"
Response:
{
"token": "1|LargeRandomTokenString",
"message": "login successfully"
}
2. Leads
GET /api/v1/leads
Listar todos os leads.
curl -X GET "https://crm.memudecore.com.br/api/v1/leads" \
-H "Authorization: Bearer {token}"
Query Parameters:
| Param | Tipo | Descrição |
|---|---|---|
page |
int | Página atual |
per_page |
int | Itens por página (default: 15) |
search |
string | Busca por título |
source_id |
int | Filtrar por fonte |
status_id |
int | Filtrar por status |
sales_owner_id |
int | Filtrar por vendedor |
Exemplo com Filtros:
curl -X GET "https://crm.memudecore.com.br/api/v1/leads?page=1&per_page=10&source_id=1" \
-H "Authorization: Bearer {token}"
GET /api/v1/leads/{id}
Obter lead específico.
curl -X GET "https://crm.memudecore.com.br/api/v1/leads/42" \
-H "Authorization: Bearer {token}"
Response:
{
"data": {
"id": 42,
"title": "Empresa ABC",
"source_id": 1,
"lead_type_id": 2,
"sales_owner_id": 1,
"status_id": 1,
"value": 5000,
"expected_close_date": "2026-02-28",
"description": "Lead interessado no produto X",
"contact_person": { ... },
"organization": { ... },
"activities": [ ... ],
"created_at": "2026-01-18T10:30:00Z",
"updated_at": "2026-01-18T10:30:00Z"
}
}
POST /api/v1/leads
Criar novo lead.
curl -X POST "https://crm.memudecore.com.br/api/v1/leads" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"title": "Novo Lead - Empresa XYZ",
"source_id": 1,
"lead_type_id": 2,
"sales_owner_id": 1,
"value": 10000,
"expected_close_date": "2026-03-15",
"description": "Lead capturado via WhatsApp",
"contact_person_id": 5,
"organization_id": 3,
"product_ids": [1, 2],
"tags": ["whatsapp", "premium"]
}'
Campos Obrigatórios:
| Campo | Tipo | Descrição |
|---|---|---|
title |
string | Nome/título do lead |
source_id |
int | ID da fonte (Web, WhatsApp, etc) |
lead_type_id |
int | ID do tipo de lead |
sales_owner_id |
int | ID do vendedor responsável |
Campos Opcionais:
| Campo | Tipo | Descrição |
|---|---|---|
value |
decimal | Valor estimado |
expected_close_date |
date | Data prevista de fechamento |
description |
string | Descrição |
contact_person_id |
int | ID do contato |
organization_id |
int | ID da empresa |
product_ids |
array | IDs dos produtos |
tags |
array | Tags do lead |
PUT /api/v1/leads/{id}
Atualizar lead.
curl -X PUT "https://crm.memudecore.com.br/api/v1/leads/42" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"value": 15000,
"status_id": 2,
"description": "Atualização: cliente confirmou interesse"
}'
DELETE /api/v1/leads/{id}
Deletar lead.
curl -X DELETE "https://crm.memudecore.com.br/api/v1/leads/42" \
-H "Authorization: Bearer {token}"
POST /api/v1/leads/{id}/convert
Converter lead para oportunidade/cliente.
curl -X POST "https://crm.memudecore.com.br/api/v1/leads/42/convert" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"create_contact": true,
"create_organization": true
}'
3. Contacts/Persons
GET /api/v1/contacts/persons
Listar contatos.
curl -X GET "https://crm.memudecore.com.br/api/v1/contacts/persons?search=joao" \
-H "Authorization: Bearer {token}"
POST /api/v1/contacts/persons
Criar contato.
curl -X POST "https://crm.memudecore.com.br/api/v1/contacts/persons" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"name": "João Silva",
"emails": [
{"value": "joao@empresa.com", "label": "work"}
],
"contact_numbers": [
{"value": "+5511987654321", "label": "work"}
],
"organization_id": 1
}'
GET /api/v1/contacts/persons/{id}
Obter contato específico.
curl -X GET "https://crm.memudecore.com.br/api/v1/contacts/persons/5" \
-H "Authorization: Bearer {token}"
PUT /api/v1/contacts/persons/{id}
Atualizar contato.
curl -X PUT "https://crm.memudecore.com.br/api/v1/contacts/persons/5" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"name": "João Silva Santos",
"job_title": "Diretor Comercial"
}'
DELETE /api/v1/contacts/persons/{id}
Deletar contato.
curl -X DELETE "https://crm.memudecore.com.br/api/v1/contacts/persons/5" \
-H "Authorization: Bearer {token}"
4. Organizations
GET /api/v1/contacts/organizations
Listar organizações.
curl -X GET "https://crm.memudecore.com.br/api/v1/contacts/organizations" \
-H "Authorization: Bearer {token}"
POST /api/v1/contacts/organizations
Criar organização.
curl -X POST "https://crm.memudecore.com.br/api/v1/contacts/organizations" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"name": "Empresa ABC Ltda",
"address": {
"address": "Rua das Flores, 123",
"city": "São Paulo",
"state": "SP",
"postcode": "01234-567",
"country": "BR"
}
}'
5. Products
GET /api/v1/products
Listar produtos.
curl -X GET "https://crm.memudecore.com.br/api/v1/products" \
-H "Authorization: Bearer {token}"
POST /api/v1/products
Criar produto.
curl -X POST "https://crm.memudecore.com.br/api/v1/products" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"name": "Plano Premium",
"description": "Plano com todos os recursos",
"sku": "PLAN-PREMIUM",
"price": 299.90,
"quantity": 1
}'
6. Activities
GET /api/v1/activities
Listar atividades.
curl -X GET "https://crm.memudecore.com.br/api/v1/activities?lead_id=42" \
-H "Authorization: Bearer {token}"
Filtros:
| Param | Descrição |
|---|---|
lead_id |
Filtrar por lead |
type |
Tipo: call, meeting, lunch, email, note |
is_done |
Status: 0 ou 1 |
POST /api/v1/activities
Criar atividade.
curl -X POST "https://crm.memudecore.com.br/api/v1/activities" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"type": "call",
"title": "Ligação de follow-up",
"description": "Confirmar interesse no plano premium",
"lead_id": 42,
"scheduled_from": "2026-01-20T14:00:00",
"scheduled_to": "2026-01-20T14:30:00",
"is_done": 0
}'
Tipos de Atividade:
| Tipo | Descrição |
|---|---|
call |
Ligação telefônica |
meeting |
Reunião |
lunch |
Almoço de negócios |
email |
|
note |
Nota/Observação |
7. Quotes
GET /api/v1/quotes
Listar cotações.
curl -X GET "https://crm.memudecore.com.br/api/v1/quotes?lead_id=42" \
-H "Authorization: Bearer {token}"
POST /api/v1/quotes
Criar cotação.
curl -X POST "https://crm.memudecore.com.br/api/v1/quotes" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"subject": "Proposta Comercial - Plano Premium",
"lead_id": 42,
"person_id": 5,
"billing_address": {
"address": "Rua das Flores, 123",
"city": "São Paulo",
"state": "SP",
"postcode": "01234-567",
"country": "BR"
},
"items": [
{
"product_id": 1,
"quantity": 1,
"price": 299.90,
"discount_percent": 10
}
],
"discount_percent": 5,
"expired_at": "2026-02-18"
}'
8. Webhooks
GET /api/v1/webhooks
Listar webhooks configurados.
curl -X GET "https://crm.memudecore.com.br/api/v1/webhooks" \
-H "Authorization: Bearer {token}"
POST /api/v1/webhooks
Criar webhook.
curl -X POST "https://crm.memudecore.com.br/api/v1/webhooks" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"name": "N8N - Novos Leads",
"entity_type": "leads",
"events": ["created", "updated"],
"url": "https://n8n.memudecore.com.br/webhook/krayin-leads",
"headers": {
"Authorization": "Bearer webhook_secret_token"
},
"is_active": true
}'
9. Tags
GET /api/v1/tags
curl -X GET "https://crm.memudecore.com.br/api/v1/tags" \
-H "Authorization: Bearer {token}"
POST /api/v1/tags
Criar tag.
curl -X POST "https://crm.memudecore.com.br/api/v1/tags" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"name": "WhatsApp",
"color": "#25D366"
}'
10. Paginação e Filtros
Estrutura de Resposta Paginada
{
"data": [ ... ],
"links": {
"first": "https://crm.memudecore.com.br/api/v1/leads?page=1",
"last": "https://crm.memudecore.com.br/api/v1/leads?page=5",
"prev": null,
"next": "https://crm.memudecore.com.br/api/v1/leads?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 5,
"per_page": 15,
"to": 15,
"total": 72
}
}
Parâmetros de Paginação
| Param | Default | Descrição |
|---|---|---|
page |
1 | Página atual |
per_page |
15 | Itens por página (máx: 100) |
Exemplo de Iteração por Páginas
async function getAllLeads() {
let allLeads = [];
let page = 1;
let hasMore = true;
while (hasMore) {
const response = await fetch(
`https://crm.memudecore.com.br/api/v1/leads?page=${page}&per_page=50`,
{ headers: { 'Authorization': `Bearer ${token}` } }
);
const data = await response.json();
allLeads = [...allLeads, ...data.data];
hasMore = data.links.next !== null;
page++;
}
return allLeads;
}
📊 Tabela Resumo
| Recurso | Create | Read | Update | Delete | Filtros |
|---|---|---|---|---|---|
| Leads | ✅ POST | ✅ GET | ✅ PUT | ✅ DELETE | source_id, status_id, sales_owner_id |
| Persons | ✅ POST | ✅ GET | ✅ PUT | ✅ DELETE | organization_id, search |
| Organizations | ✅ POST | ✅ GET | ✅ PUT | ✅ DELETE | search |
| Products | ✅ POST | ✅ GET | ✅ PUT | ✅ DELETE | search |
| Activities | ✅ POST | ✅ GET | ✅ PUT | ✅ DELETE | lead_id, type |
| Quotes | ✅ POST | ✅ GET | ✅ PUT | ✅ DELETE | lead_id |
| Webhooks | ✅ POST | ✅ GET | ✅ PUT | ✅ DELETE | entity_type |
| Tags | ✅ POST | ✅ GET | ✅ PUT | ✅ DELETE | - |
Última atualização: Janeiro 2026
No Comments