curl -X GET https://api.whaapy.com/contacts/v1/fields \
-H "Authorization: Bearer wha_TU_API_KEY"
const response = await fetch('https://api.whaapy.com/contacts/v1/fields', {
headers: { 'Authorization': 'Bearer wha_TU_API_KEY' }
});
const data = await response.json();
console.log(data.fields);
import requests
response = requests.get(
'https://api.whaapy.com/contacts/v1/fields',
headers={'Authorization': 'Bearer wha_TU_API_KEY'}
)
print(response.json())
$ch = curl_init('https://api.whaapy.com/contacts/v1/fields');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer wha_TU_API_KEY'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
echo $response;
{
"fields": [
{
"id": "field-uuid-1",
"name": "company",
"type": "text",
"description": "Nombre de la empresa",
"is_required": false,
"category": "business"
},
{
"id": "field-uuid-2",
"name": "contract_value",
"type": "number",
"description": "Valor del contrato en USD",
"is_required": false,
"category": "sales"
},
{
"id": "field-uuid-3",
"name": "birth_date",
"type": "date",
"description": "Fecha de nacimiento",
"is_required": false,
"category": "personal"
},
{
"id": "field-uuid-4",
"name": "website",
"type": "url",
"description": "Sitio web del contacto",
"is_required": false,
"category": "business"
}
],
"total_fields": 4
}
Contactos
Listar Campos Personalizados
Obtiene las definiciones de campos personalizados configurados
GET
/
contacts
/
v1
/
fields
curl -X GET https://api.whaapy.com/contacts/v1/fields \
-H "Authorization: Bearer wha_TU_API_KEY"
const response = await fetch('https://api.whaapy.com/contacts/v1/fields', {
headers: { 'Authorization': 'Bearer wha_TU_API_KEY' }
});
const data = await response.json();
console.log(data.fields);
import requests
response = requests.get(
'https://api.whaapy.com/contacts/v1/fields',
headers={'Authorization': 'Bearer wha_TU_API_KEY'}
)
print(response.json())
$ch = curl_init('https://api.whaapy.com/contacts/v1/fields');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer wha_TU_API_KEY'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
echo $response;
{
"fields": [
{
"id": "field-uuid-1",
"name": "company",
"type": "text",
"description": "Nombre de la empresa",
"is_required": false,
"category": "business"
},
{
"id": "field-uuid-2",
"name": "contract_value",
"type": "number",
"description": "Valor del contrato en USD",
"is_required": false,
"category": "sales"
},
{
"id": "field-uuid-3",
"name": "birth_date",
"type": "date",
"description": "Fecha de nacimiento",
"is_required": false,
"category": "personal"
},
{
"id": "field-uuid-4",
"name": "website",
"type": "url",
"description": "Sitio web del contacto",
"is_required": false,
"category": "business"
}
],
"total_fields": 4
}
Obtén la lista de campos personalizados definidos para tu negocio. Estos campos están tipados y estructurados para consistencia en tu CRM.
Los campos personalizados definidos aquí son diferentes de los
custom_fields libres que puedes agregar a cualquier contacto. Estos campos tienen tipos específicos y pueden ser requeridos.Ejemplos
curl -X GET https://api.whaapy.com/contacts/v1/fields \
-H "Authorization: Bearer wha_TU_API_KEY"
const response = await fetch('https://api.whaapy.com/contacts/v1/fields', {
headers: { 'Authorization': 'Bearer wha_TU_API_KEY' }
});
const data = await response.json();
console.log(data.fields);
import requests
response = requests.get(
'https://api.whaapy.com/contacts/v1/fields',
headers={'Authorization': 'Bearer wha_TU_API_KEY'}
)
print(response.json())
$ch = curl_init('https://api.whaapy.com/contacts/v1/fields');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer wha_TU_API_KEY'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
echo $response;
Respuesta Exitosa
{
"fields": [
{
"id": "field-uuid-1",
"name": "company",
"type": "text",
"description": "Nombre de la empresa",
"is_required": false,
"category": "business"
},
{
"id": "field-uuid-2",
"name": "contract_value",
"type": "number",
"description": "Valor del contrato en USD",
"is_required": false,
"category": "sales"
},
{
"id": "field-uuid-3",
"name": "birth_date",
"type": "date",
"description": "Fecha de nacimiento",
"is_required": false,
"category": "personal"
},
{
"id": "field-uuid-4",
"name": "website",
"type": "url",
"description": "Sitio web del contacto",
"is_required": false,
"category": "business"
}
],
"total_fields": 4
}
Tipos de Campo
| Tipo | Descripción | Ejemplo de valor |
|---|---|---|
text | Texto libre | "Acme Corporation" |
number | Valor numérico | 50000 |
date | Fecha (ISO 8601) | "2026-01-28" |
email | Email válido | "ceo@acme.com" |
phone | Número de teléfono | "+5215512345678" |
url | URL válida | "https://acme.com" |
Campos de la Respuesta
| Campo | Tipo | Descripción |
|---|---|---|
fields | array | Array de definiciones de campos |
fields[].id | string | UUID único del campo |
fields[].name | string | Nombre del campo (snake_case) |
fields[].type | string | Tipo de dato del campo |
fields[].description | string | Descripción del campo |
fields[].is_required | boolean | Si el campo es obligatorio |
fields[].category | string | Categoría para agrupar campos |
total_fields | number | Total de campos definidos |
custom_fields vs Field Definitions
custom_fields (libres)
- Objeto JSON en cada contacto
- Sin tipos definidos
- Flexibilidad total
- Ejemplo:
{ "any_key": "any_value" }
Field Definitions (tipados)
- Definidos a nivel de negocio
- Tipos específicos (text, number, date, etc.)
- Pueden ser requeridos
- Validación automática
Usa Field Definitions para datos estructurados que necesitan consistencia (valor de contrato, fecha de renovación). Usa custom_fields para datos ad-hoc que varían por contacto.
Próximos Pasos
Crear Contacto
Usar campos personalizados
Actualizar Contacto
Modificar campos personalizados
Búsqueda Avanzada
Filtrar por campos personalizados
Listar Tags
Ver tags disponibles
Was this page helpful?