curl --request GET \
--url https://api.revem.ai/contacts/public/v1/{id} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.revem.ai/contacts/public/v1/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.revem.ai/contacts/public/v1/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"id": "3f2b6c1e-8d4a-4f0b-9c2e-7a1d5e6f8b90",
"phone_number": "+56912345678",
"first_name": "Camila",
"last_name": "Rojas",
"email": "camila@ejemplo.cl",
"created_at": "2026-08-12T14:03:22.000Z",
"updated_at": "2026-09-01T09:41:05.000Z",
"programa": "Premium",
"fecha_ultima_compra": "2026-08-30"
}{
"error": "<string>",
"ok": false,
"message": "<string>",
"unknownAttributes": [
"<string>"
]
}{
"error": "Unauthorized",
"message": "Invalid API key"
}{
"ok": false,
"error": "Forbidden",
"message": "This endpoint is not available to API keys"
}{
"ok": false,
"error": "Not Found",
"message": "No existe un contacto con ese id"
}{
"ok": false,
"error": "Too many requests. Retry in 1 minute."
}Obtener un contacto
Devuelve un contacto por su id, en la misma forma plana que acepta el upsert. Responde el mismo 404 si el contacto no existe, está en la papelera o pertenece a otro tenant.
curl --request GET \
--url https://api.revem.ai/contacts/public/v1/{id} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.revem.ai/contacts/public/v1/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.revem.ai/contacts/public/v1/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"id": "3f2b6c1e-8d4a-4f0b-9c2e-7a1d5e6f8b90",
"phone_number": "+56912345678",
"first_name": "Camila",
"last_name": "Rojas",
"email": "camila@ejemplo.cl",
"created_at": "2026-08-12T14:03:22.000Z",
"updated_at": "2026-09-01T09:41:05.000Z",
"programa": "Premium",
"fecha_ultima_compra": "2026-08-30"
}{
"error": "<string>",
"ok": false,
"message": "<string>",
"unknownAttributes": [
"<string>"
]
}{
"error": "Unauthorized",
"message": "Invalid API key"
}{
"ok": false,
"error": "Forbidden",
"message": "This endpoint is not available to API keys"
}{
"ok": false,
"error": "Not Found",
"message": "No existe un contacto con ese id"
}{
"ok": false,
"error": "Too many requests. Retry in 1 minute."
}Authorizations
La API key de tu organización, con la forma rvm_<prefijo>.<secreto>, enviada como Authorization: Bearer rvm_…. Revem la emite y sólo se muestra una vez; si la pierdes se reemplaza, no se recupera.
Path Parameters
Id del contacto en Revem.
Response
El contacto.
Un contacto, con sus atributos personalizados al mismo nivel que los campos fijos, identificados por nombre. Un campo que no tiene valor se omite en vez de enviarse como null.
Identificador del contacto en Revem. Es el que acepta PATCH /contacts/public/v1/{id} y contact.id en webchat.
Siempre presente. Es null cuando el contacto llegó por un canal sin teléfono (por ejemplo Instagram); ese contacto no puede escribirse con POST, sólo con PATCH /{id}.
Fecha de creación, ISO 8601 en UTC.
Última modificación, ISO 8601 en UTC.
Nombre. Omitido cuando no se conoce.
Apellido. Omitido cuando no se conoce.
Omitido cuando no se conoce.
