Pular para o conteúdo principal

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_name
  • last_name
  • work_email
  • phone_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:

  • type
  • company_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).