API Key External API (/api/ext)
Documentação de endpoints externos protegidos com API Key.
Autenticação
Todos os endpoints deste documento usam:
Authorization: X-API-Key YOUR_API_KEY
Content-Type: application/json
Base URL:
https://api-staging.minotaursales.io/api/ext
Exemplo:
curl --location '{API_GATEWAY_URL}/api/ext/contacts/list' \
--header 'Authorization: X-API-Key YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{}'
Formatos de resposta comuns
DefaultResponse
Muitos endpoints de create/update/delete respondem com:
{
"success": true,
"data": {},
"message": "Operation completed"
}
PaginateResponse<T>
{
"data": [],
"pagination": {
"total_records": 0,
"current_page": 1,
"total_pages": 1
}
}
Contacts (/contacts)
POST /contacts/list (contacts:read)
Request (exemplo mínimo):
{
"filters": {},
"paginate": {
"page": 1,
"limit": 25
}
}
Response 200 (ContactsResponse[]):
[
{
"id": "7b9c3df7-0eb5-4be2-af74-7e48d4b43b9c",
"first_name": "Ana",
"last_name": "Perez",
"work_email": "ana@example.com",
"industry": "Software",
"job_title": "Engineer",
"location_locality": "Bogota",
"location_country": "CO",
"score": 87,
"verification_status": "verified",
"last_verified": "2026-04-01T10:30:00.000Z",
"custom_fields": {}
}
]
POST /contacts (contacts:create)
Campos obrigatórios para create:
first_namelast_namework_emailphone_numbers(pode ser array vazio)
Request:
{
"first_name": "Ana",
"last_name": "Perez",
"work_email": "ana@example.com",
"phone_numbers": [],
"job_title": "Engineer",
"company": "Acme"
}
Response 200 (DefaultResponse):
{
"success": true,
"data": {
"id": "7b9c3df7-0eb5-4be2-af74-7e48d4b43b9c"
},
"message": "Contact created"
}
PATCH /contacts/:id (contacts:update)
Request:
{
"job_title": "Senior Engineer",
"phone_numbers": ["+573001234567"]
}
Response 200 (DefaultResponse):
{
"success": true,
"data": {},
"message": "Contact updated"
}
DELETE /contacts/:id (contacts:delete)
Response 200 (DefaultResponse):
{
"success": true,
"data": {},
"message": "Contact deleted"
}
Companies (/company)
POST /company/list (companies:read)
Request:
{
"filters": {},
"paginate": { "page": 1, "limit": 25 }
}
POST /company (companies:create)
Campos obrigatórios:
typecompany_name
Request:
{
"type": "company",
"company_name": "Acme Inc",
"industry": "Software"
}
PATCH /company/:id (companies:update)
Request:
{
"industry": "SaaS",
"location_country": "CO"
}
DELETE /company/:id (companies:delete)
Response 200 (DefaultResponse):
{
"success": true,
"data": {},
"message": "Company deleted"
}
Lists (/list-contact)
POST /list-contact (list_contacts:create)
Request:
{
"name": "Prospects Latam",
"description": "Lista inicial",
"rules": [
{
"field": "location_country",
"operator": "contains",
"value": "CO"
}
]
}
PATCH /list-contact/:id (list_contacts:update)
Request:
{
"name": "Prospects Latam v2",
"description": "Lista atualizada"
}
POST /list-contact/duplicate (list_contacts:read)
Request:
{
"list_id": "9f720ce2-f5d1-4ef4-a0c8-3399f68d386d",
"new_name": "Prospects Latam Copy"
}
POST /list-contact/verify-contacts/:id (list_contacts:read)
Request: sem body.
Response 200 (DefaultResponse):
{
"success": true,
"data": {},
"message": "Verification started"
}
Prospect (/prospect)
POST /prospect/filters (prospect:read)
Request:
{
"source": "job_title",
"search": "engineer"
}
Response 200 (lista de valores sugeridos):
[
{
"type": "job_title",
"value": "Software Engineer"
}
]
Service Handler (/service-handler)
POST /service-handler/unlock-contacts (payment_prospect:create)
Request:
{
"filters": {},
"order_by": { "score": "DESC" },
"total_records": 100,
"sync_hubspot": false
}
POST /service-handler/unlock-selected-contacts (payment_prospect:create)
Request:
{
"ids": [
"7b9c3df7-0eb5-4be2-af74-7e48d4b43b9c",
"a96f2d7f-743f-4747-9198-7ca35ccab774"
],
"sync_hubspot": false
}
POST /service-handler/verify-email (verify_email:create)
Request:
{
"emails": [
{
"email": "ana@example.com",
"contact_id": "7b9c3df7-0eb5-4be2-af74-7e48d4b43b9c"
}
],
"sync_hubspot": false
}
Erros frequentes
401 Unauthorized
Quando o header Authorization está ausente ou inválido:
{
"statusCode": 401,
"message": "The provided API key is invalid or unauthorized."
}
400 Bad Request
Quando o body não passa nas validações (campos obrigatórios, UUID inválido, tipos incorretos).