Poner la foto de un contacto
Sube la foto que se muestra para un contacto y sustituye la que hubiera. El cuerpo es la propia imagen, no JSON, con su tipo en `Content-Type`: `image/png`, `image/jpeg`, `image/webp` o `image/gif`, hasta 5 MB. Se ajusta a un cuadrado de 512 píxeles y se guarda como WebP, y de una imagen animada se queda el primer fotograma.
Ejecuta la llamada real contra tu espacio de trabajo, con tu propia clave.
PUT /contacts/{email}/photo
Sube la foto que se muestra para un contacto y sustituye la que hubiera. El cuerpo es la propia imagen, no JSON, con su tipo en Content-Type: image/png, image/jpeg, image/webp o image/gif, hasta 5 MB. Se ajusta a un cuadrado de 512 píxeles y se guarda como WebP, y de una imagen animada se queda el primer fotograma.
Ejemplo
Requiere contacts:write. La dirección tiene que ser un contacto guardado, así que guárdala antes con PUT /contacts/{email}.
curl -X PUT "$OE/contacts/grace%40example.com/photo" -H "$AUTH" -H 'content-type: image/jpeg' --data-binary @grace.jpg{ "object": "contact", "email": "[email protected]", "name": "Grace Hopper", "source": "manual", "notes": null, "photoUrl": "https://cdn-prod.openemail.uk/contacts/photos/5b0e2c7a-91d4-4f3e-8a26-c4f1d9e07b3a.webp", "lastSeenAt": null, "createdAt": "2026-09-18T09:00:00.000Z", "updatedAt": "2026-09-23T10:20:00.000Z", "audiences": [ { "id": "aud_9f2c4b7e1a0d63d84c5f2e7b", "name": "All contacts", "builtin": "default" } ]}Una dirección que no es un contacto guardado es un 404 contact_not_found. Un cuerpo que no es una imagen de un tipo aceptado, que pasa de 5 MB o que no se puede leer es un 422 invalid_image.
Un servicio de imágenes saturado responde 503 image_busy, que se puede reintentar sin riesgo. Cada subida recibe una photoUrl nueva, así que una foto antigua en caché nunca aparece en lugar de la nueva.