Paso 3 del patrón 2-step. Hace HEAD contra Storage para verificar que el binario llegó y su tamaño matchea el declarado, lee los primeros bytes para validar los magic bytes contra el mime_type, y si todo pasa marca el archivo como confirmed. Devuelve un download_url para adjuntar el archivo en mensajes.
Si la validación falla, borra el objeto y la fila — el cliente debe iniciar un nuevo /request-upload.
curl:
curl -X POST "https://app.1to1.ai/api/v1/public/$SLUG/files/confirm" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d "{\"file_uuid\":\"$FILE_UUID\"}"
JavaScript (fetch):
const res = await fetch(`${baseUrl}/files/confirm`, {
method: 'POST',
headers: { Authorization: `Bearer ${token}`, 'Content-Type': 'application/json' },
body: JSON.stringify({ file_uuid: prep.file_uuid }),
})
const { data } = await res.json() // { file_uuid, mime_type, size_bytes, download_url, expires_at }
Documentation Index
Fetch the complete documentation index at: https://docs.1to1ai.com/llms.txt
Use this file to discover all available pages before exploring further.
API token emitido desde Settings → API Token del dashboard 1TO1 AI. Enviar en header Authorization: Bearer sk_1to1_...
Slug del business, case-insensitive. Debe coincidir con el business del token.
"acme"
El file_uuid devuelto por /files/request-upload.
"550e8400-e29b-41d4-a716-446655440000"
Archivo confirmado. download_url válido para descargar el asset.
"550e8400-e29b-41d4-a716-446655440000"
MIME type re-validado contra los magic bytes del binario real. Puede diferir del declarado en /request-upload si el cliente mintió (en ese caso /confirm retorna MIME_MISMATCH en vez de 200).
image/jpeg, image/png, video/mp4, video/3gpp, audio/ogg, application/pdf, application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-powerpoint, application/vnd.openxmlformats-officedocument.presentationml.presentation, text/plain "application/pdf"
Tamaño real medido con HEAD contra Storage. Coincide con el declarado (strict equality).
524288
Signed URL con TTL de 30 minutos para descarga del asset. El servicio lo entrega a Meta al enviar mensajes con adjunto.
Instante (UTC) en que download_url deja de ser válido.