Download OpenAPI specification:
La API REST de Ragic le permite consultar, crear, actualizar y eliminar datos de forma programática. Todas las solicitudes de API deben realizarse a través de HTTPS.
La API HTTP de Ragic es una interfaz de estilo REST que permite leer, crear, actualizar y eliminar registros en cualquier formulario de Ragic. Puede utilizar cualquier cliente HTTP: cURL, Postman o la biblioteca HTTP de su lenguaje de programación.
La API REST de Ragic te permite consultar (query) los datos que tengas en Ragic, ejecutar para crear / actualizar / eliminar operaciones mediante programación para integrar con propias aplicaciones. Ya que la API está basada en principios REST, es muy fácil escribir y hacer pruebas en aplicaciones. Puedes usar tu explorador para acceder a URLs y puedes usar cualquier cliente HTTP en cualquier lenguaje de programación para interactuar con la API. Las solicitudes HTTP pueden enviarse con dos tipos de contenido, datos de formulario y JSON. Sin embargo, para cargar archivos, datos de formulario es la única opción
Puedes probar la mayoría de los métodos GET en APIs fácilmente al ingresar el URL de punto final de la API en tu explorador. Por ejemplo, puedes probar el siguiente URL para acceder a la información de la cuenta del cliente en el demo de Ragic:
https://www.ragic.com/demo/sales/1?api
Nótese que quizá debas modificar www a na3 , ap5 , ó eu2 en tu URL según el URL de tu cuenta Ragic. Ya que no es tan fácil como crear solicitudes con el método POST en tu explorador, te recomendamos usar una herramienta llamada cURL para crear todo tipo de solicitudes HTTP que quieras probar en nuestra API. Nuestro documento también usará comandos cURL como muestras de llamadas API, pero puedes usar cualquier herramienta que te sea familiar para crear las solicitudes HTTP y respuestas parse. Puedes descargar cURL para tu plataforma desde https://curl.haxx.se/download.html y también puedes leer la documentación completa en https://curl.haxx.se/docs/manpage.html . Pero no te preocupes, te diremos los usos necesarios de cURL mientras explicamos la API HTTP de Ragic. Después de descargar cURL, puedes usar el siguiente comando para acceder al mismo punto final mencionado anteriormente, y debes ver el mismo resultado que verías en un explorador.
curl --get -d api https://www.ragic.com/demo/sales/1
Por favor nótese que al usar CURL, -d no codifica el contenido de la cadena de URL. Si tu cadena de contenido tiene caracteres como % o & por favor usa la opción --data-urlencode en lugar de -d.
Postman es una herramienta que ayuda a enviar solicitudes HTTP sin tener que escribir código. Puedes consultar la documentación de Postman aquí y puedes descargar Postman aquí. Postman se recomienda para usuarios con poca experiencia técnica. En este tutorial se explicarán los conceptos básicos. La interfaz de usuario de Postman se parece a la siguiente imagen: 
En la imagen de arriba, la solicitud HTTP es una solicitud GET y se envía a https://www.ragic.com/demo/sales/1 con un parámetro de consulta "api" que no tiene ningún valor asociado. La siguiente imagen muestra la lista de métodos HTTP del menú desplegable. 
En muchos casos, deberás encontrar el ID de campo para un campo. El ID de campo es un número único que Ragic asigna a cada campo que has creado. Esto le da tu programa una forma precisa para referirse a un campo. Con este diseño, los campos pueden tener el mismo nombre en una hoja pero Ragic podrá distinguir entre ellos. Ve al Modo Diseño y haz clic en el campo que deseas referenciar. En la barra lateral izquierda, verás el Nombre de Campo , el ID de campo está bajo el nombre de campo. 
Puedes encontrar el punto final de la API para tu formulario Ragic o registro al pasar api como un parámetro en cadena query para especificar que esta es una solicitud API.
https://www.ragic.com/{ACCOUNT_NAME}>/{TAB_FOLDER}>/{SHEET_INDEX}/{RECORD_ID}?v=3&api
Por favor nótese que está usando la versión 3 API al agregar una versión del parámetro v=3. Es buena práctica para especificar la versión de API cada vez que envíes tu solicitud para asegurar una versión correcta. Si la versión no es especificada, se usará la última versión, pero cambios imprevistos en la API podrían causar problemas en tu aplicación. Por ejemplo, si usualmente accedes a tu formulario de Ragic usando el siguiente URL:
https://www.ragic.com/demo/sales/1
Su URL de punto final de la API HTTP sería:
https://www.ragic.com/demo/sales/1?v=3&api
O para un registro individual en tu hoja, incluirías un ID para especificar un registro:
https://www.ragic.com/demo/sales/1/6
Su URL de punto final de la API HTTP correspondiente sería:
https://www.ragic.com/demo/sales/1/6?v=3&api
No tenemos un límite en cuanto a nuestras llamadas API siempre y cuando esté bajo un uso razonable. Si no estás seguro sobre sus usos, puedes enviarnos un mensaje a support@ragic.com para consultar con nosotros. Esto es sólo para asegurar un uso razonable del sistema, para que no haya un uso excesivo en cuentas pequeñas. Si el uso excede 5 solicitudes por segundo, un proceso de revisión manual será activado para determinar si throttling será aplicado.
Puedes autenticar la API de Ragic al proveer una de tus claves API en la solicitud. Tus claves API tienen muchos privilegios, ¡asegúrate de mantenerlas en secreto! Cuando tu código accede a la API de Ragic vía una clave API, básicamente inicia sesión como el usuario de la clave API y ejecuta lectura y escritura como este usuario. Te recomendamos crear un usuario distinto para este acceso con clave API. De esta manera el acceso API no se mezclará con un usuario organizacional, lo cual hace que el registro de auditoría del sistema sea más claro y la depuración (debugging) de tu API sea más fácil. La autenticación de API se realiza vía autenticación básica HTTP. Provee tu clave API como el usuario básico de autenticación. No necesitas brindar una contraseña. Todas las solicitudes API deben ser realizadas a través de HTTPS. Las llamadas realizadas sobre HTTP fallarán. Debes autenticar para todas las solicitudes.
curl https://www.ragic.com/demo/sales/1\
--get -d api \
-H "Authorization:Basic TU_CLAVE_API_VA_AQUÍ"
Nótese que el nombre del encabezado del HTTP es Authorization, y el valor es tu clave API precedida de “Basic ”, Basic con un espacio al final y quizá necesites modificar www a na3 , ap5 , ó eu2 en tu URL según tu URL de cuenta Ragic. Puedes generar tu clave API desde configuración personal.
La mayoría de los clientes HTTP (incluyendo exploradores web) muestran un cuadro de diálogo o te indican que debes proveer un nombre de usuario y contraseña (vacía) para autenticación básica HTTP. La mayoría de las clientes te permitirán dar tus credenciales directamente en el URL. Si por alguna razón no puedes enviar la clave API como el encabezado de HTTP o autorización básica, puedes enviar la clave API como un parámetro con el nombre APIKey. Necesitarás agregar este parámetro para cada solicitud individual que envíes.
curl https://www.ragic.com/demo/sales/1\
--get -d api \
-d "APIKey=YOUR_API_KEY_GOES_HERE"

Si alguna vez tu plataforma no es compatible con la autenticación básica HTTP, puedes pasar el correo electrónico y contraseña del usuario como credenciales para autenticar tu programa. Si te registraste a través de Regístrate con Google, asegúrate de registrar una contraseña Ragic antes de seguir con este tutorial. Por favor usa este método sólo cuando no puedas realizar la Autenticación Básica HTTP. Puedes enviar una solicitud para una sesión id con correo y contraseña válidos. Puedes enviar una solicitud HTTP usando el argumento -d con el id y contraseña. El parámetro -c guardará el ID de sesión en el archivo cookie jar especificado:
curl --get -d "u=jeff@ragic.com" \
--data-urlencode "p=123456" \
-d "login_type=sessionId" \
-d api \
-c cookie.txt \
-k \
https://www.ragic.com/AUTH
Si la autenticación falló, el servidor devolverá -1. Si lo autenticó, recibirás un ID de sesión en la respuesta así:
2z5u940y2tnkes4zm49t2d4
Si deseas recuperar información detallada del usuario para inicio de sesión, también puedes proveer un parámetro adicional json-1 para que Ragic devuelva un objeto json con los detalles del usuario.
curl --get -d "u=jeff@ragic.com" \
--data-urlencode "p=123456" \
-d "login_type=sessionId" \
-d "json=1" \
-d api \
-c cookie.txt \
-k \
https://www.ragic.com/AUTH
El formato devuelto debe verse así:
{
"sid":"8xkz874fdftl116vkd3wgjq0t",
"email":"jeff@ragic.com",
"accounts":
{
"account":"demo",
"ragicId":25,
"external":false,
"groups":["EVERYONE","SYSADMIN"]
}
}
Autenticar un usuario con correo electrónico y contraseña para obtener un ID de sesión. Este es un método de autenticación secundario; se recomienda HTTP Basic Auth con claves API para la mayoría de los casos.
No se necesitan encabezados de autenticación para este endpoint — este ES el endpoint de autenticación.
Uso básico (devuelve ID de sesión como texto plano):
curl "https://www.ragic.com/AUTH?u=user@example.com&p=mypassword&api"
Con respuesta JSON (incluye lista de cuentas):
curl "https://www.ragic.com/AUTH?u=user@example.com&p=mypassword&json=1&api"
Respuesta JSON:
{
"status": "SUCCESS",
"sid": "abc123def456",
"email": "user@example.com",
"accounts": ["myaccount", "otheraccount"]
}
Usando el ID de sesión: Pasa el ID de sesión devuelto como cookie (JSESSIONID) o usa login_type=sessionId para obtener una cookie basada en sesión directamente.
| u required | string Example: u=user@example.com |
| p required | string Example: p=password123 |
| login_type | string Value: "sessionId" |
| json | integer Value: 1 |
| api | string |
abc123def456
Por ejemplo, esta una respuesta API para https://www.ragic.com/demo/sales/1?v=3 &api. Recuerda especificar tu archivo cookie jar en la llamada como "-b cookie.txt"
{
"17": {
"Account Name": "Dunder Mifflin",
"Account Owner": "Jim Halpert",
"Phone": "1-267-922-5599",...
"14": {
"Account Name": "Ratshotel",
"Account Owner": "Dwight Schrute",
"Phone": "1-267-922-5529",
...
El listado está predeterminado a 1000 registros. Puedes agregar parámetro de límite de paginado limit según las siguientes secciones para obtener más registros. Los datos en subtablas se mostrarán como en el siguiente ejemplo. El nombre del atributo empezará con subtable seguido por ID de subtabla para identificar cual subtabla es. El contenido de la subtabla es presentado de la misma forma que los campos en un formulario.
"14": {
"Account Name": "Ratshotel",
"Account Owner": "Dwight Schrute",
"Phone": "1-267-922-5529",
...
"_subtable_800014": {
"29": {
"Contact Name": "Arden Jacobs",
"Title": "Specialist",
"E-mail": "Arden@ratshotel.com",
},
"30": {
"Contact Name": "Kermit Moore2",
"Title": "Manager",
"E-mail": "Kermit@ratshotel.com",
}
}
}
Si tu aplicación no necesita los datos en las subtablas, puedes agregar el parámetro subtables=0 para desactivar la recuperación de datos de subtabla. Los comentarios de los registros también son recuperados como subtablas. Serán recuperados en una subtabla con el id de campo 61, pero deberás agregar el parámetro comment=true al recuperar datos de comentarios para que los datos sean devueltos.
Obtener una lista de registros de un formulario/hoja.
Los datos devueltos están predeterminados a 1000 registros. Puedes usar los parámetros limit y offset para especificar cuántos registros deseas obtener y cuántos deseas omitir.
Ejemplo: Obtener registros con paginación
curl -H "Authorization:Basic TU_CLAVE_API_VA_AQUÍ" \
"https://www.ragic.com/demo/sales/1?api&limit=50&offset=0"
Usa el parámetro subtables=0 para excluir datos de subtablas y obtener una respuesta más rápida.
Cuando una operación masiva devuelve un taskId, puedes consultar su progreso pasando el parámetro de consulta taskId a este endpoint.
Ejemplo:
curl -H "Authorization:Basic TU_CLAVE_API_VA_AQUÍ" \
"https://www.ragic.com/demo/sales/1?api&taskId=550e8400-e29b-41d4-a716-446655440000"
Respuesta:
{
"status": "RUNNING",
"progress": 45,
"total": 100,
"message": "Procesando registros..."
}
Cuando status es COMPLETED o FAILED, la tarea ha finalizado.
| apname required | string Example: myaccount Tu nombre de cuenta (el subdominio en tu URL de Ragic, ej., "demo" en www.ragic.com/demo/...) |
| path required | string Example: sales La ruta de la carpeta en tu URL (ej., "sales" o "hr/employees") |
| sheetIndex required | integer Example: 1 El número de hoja en tu URL (el número después de la ruta de carpeta) |
| where | Array of strings Examples:
Condición de filtro con argumentos delimitados por comas. Formato: Operadores disponibles:
Múltiples condiciones "eq", "regex" o "like" en el mismo campo actúan como operaciones OR. Combinar condiciones gte/gt y lte/lt en el mismo campo crea operaciones AND (útil para rangos de fechas). Los valores de fecha/hora deben usar el formato: Filtrar valores vacíos: deja el tercer argumento en blanco, ej., Comas en valores de filtro requieren codificación URL ( Doble codificación URL: Si un valor de filtro contiene Ejemplo: |
| fts | string Example: fts=search term Búsqueda de texto completo para coincidencia de palabras clave en todos los campos buscables. Ejemplo: |
| limit | string Examples:
Especificar cuántos registros deseas obtener. Los datos devueltos están predeterminados a 1000 registros, necesitarás proporcionar parámetros de límite si deseas que tu respuesta tenga más de 1000 registros. Ejemplo: |
| offset | integer Example: offset=0 Especificar cuántos registros deseas omitir. Usar con limit para paginación. Por ejemplo, para omitir los primeros 5 registros y devolver del 6 al 13 (un total de 8 registros): |
| order | string Examples:
Orden de clasificación. Formato: Por defecto, los datos se ordenan por fecha y hora de creación, del más antiguo al más reciente. Ejemplo: |
| reverse | string Value: "true" Invertir el orden predeterminado de la respuesta de la página de listado. Para obtener los registros más recientes primero, usa Ejemplo: |
| subtables | string Default: "1" Incluir datos de subtabla en la respuesta.
|
| listing | string Devolver solo los campos configurados para aparecer en la vista de lista de la hoja (las columnas visibles al navegar registros en Ragic). Usa esto cuando construyas una interfaz de tabla/lista donde no necesites todos los campos — la respuesta es más pequeña y rápida.
|
| naming | string Enum: "EID" "FNAME" Elegir cómo se nombran los campos en las claves JSON de la respuesta.
|
| info | string Incluir metadatos del registro (quién lo creó/modificó y cuándo). Útil para registros de auditoría u operaciones de sincronización.
|
| ignoreMask | string Algunos campos en Ragic pueden configurarse para enmascarar datos sensibles (ej., mostrar un número de teléfono como
|
| ignoreFixedFilter | string Value: "true" Los filtros fijos son filtros permanentes establecidos por el diseñador del formulario que restringen qué registros pueden ver todos los usuarios (ej., "solo mostrar clientes activos"). Este parámetro los omite. Requiere privilegios de SYSAdmin.
|
| filterId | integer Aplicar un filtro guardado por su ID. Los filtros guardados son criterios de búsqueda preconfigurados creados en la interfaz de Ragic (accesibles desde el menú desplegable de filtros en cualquier hoja). Usa esto en lugar de construir parámetros |
| defaultFilter | string Aplicar el filtro predeterminado de la hoja (un filtro preconfigurado establecido por el diseñador del formulario en la configuración del formulario). Devuelve los mismos resultados filtrados que los usuarios ven por defecto en la interfaz de Ragic.
|
| bbcode | string Value: "true" Los campos de texto enriquecido de Ragic almacenan formato en sintaxis BBCode (ej.,
|
| comment | string Incluir el hilo de comentarios/notas adjunto a cada registro. Los comentarios son notas de discusión que los usuarios agregan a través de la interfaz de Ragic.
|
| history | string Incluir el historial de cambios de campo para cada registro — un registro de quién cambió qué campo, cuándo, y cuáles fueron los valores anteriores/nuevos. Útil para seguimiento de auditoría.
|
| approval | string Incluir el estado del flujo de aprobación. La función de aprobación de Ragic te permite configurar procesos de aprobación de múltiples pasos para registros. Esto devuelve el estado de aprobación actual, la lista de aprobadores y el historial de aprobación.
|
| conversation | string Incluir el hilo de conversación por correo electrónico vinculado a un registro. Cuando los registros tienen hilos de correo asociados (a través de las funciones de correo de Ragic), esto devuelve esos mensajes.
|
| tz | number Example: tz=-8 Desfase de zona horaria en horas para campos de fecha/hora. Ejemplo: Los valores de fecha en la respuesta se ajustarán a esta zona horaria. |
| version | string Example: version=2025-01-01 Versión de API usando versionado basado en fecha (recomendado). Formato: Usar versionado asegura que tu integración permanezca estable cuando Ragic introduzca cambios importantes. La API se comportará según la versión que especifiques. Ejemplo: |
| v | integer Enum: 1 2 3 Número de versión de API heredado. Usa el parámetro
|
| taskId | string <uuid> Consultar el progreso de una operación masiva asíncrona. Pasa el ID de tarea devuelto por un endpoint de operación masiva. Ejemplo: |
| api | string Clave API para autenticación (alternativa a HTTP Basic Auth). Ejemplo: |
| callback | string Nombre de función callback JSONP. Agregar un parámetro de función callback envolverá el objeto JSON devuelto como argumento en una llamada a la función callback especificada por ti. Esto es especialmente útil cuando accedes a nuestra API usando Javascript para llamadas Ajax entre dominios. Ejemplo: La respuesta se envolverá así: |
{- "12345": {
- "1000001": "Acme Corp",
- "1000002": "2024-01-15",
- "1000003": "Active",
- "_ragicId": 12345
}, - "12346": {
- "1000001": "Beta Inc",
- "1000002": "2024-01-16",
- "1000003": "Pending",
- "_ragicId": 12346
}
}Obtener un registro específico por su ID (rootNodeId).
Ejemplo: Obtener registro #12345
curl -H "Authorization:Basic TU_CLAVE_API_VA_AQUÍ" \
"https://www.ragic.com/demo/sales/1/12345?api"
| apname required | string Example: myaccount Tu nombre de cuenta (el subdominio en tu URL de Ragic, ej., "demo" en www.ragic.com/demo/...) |
| path required | string Example: sales La ruta de la carpeta en tu URL (ej., "sales" o "hr/employees") |
| sheetIndex required | integer Example: 1 El número de hoja en tu URL (el número después de la ruta de carpeta) |
| rootNodeId required | integer Example: 12345 El ID del registro en tu URL (se muestra al ver un registro individual) |
| subtables | string Default: "1" Incluir datos de subtabla en la respuesta.
|
| naming | string Enum: "EID" "FNAME" Elegir cómo se nombran los campos en las claves JSON de la respuesta.
|
| info | string Incluir metadatos del registro (quién lo creó/modificó y cuándo). Útil para registros de auditoría u operaciones de sincronización.
|
| ignoreMask | string Algunos campos en Ragic pueden configurarse para enmascarar datos sensibles (ej., mostrar un número de teléfono como
|
| bbcode | string Value: "true" Los campos de texto enriquecido de Ragic almacenan formato en sintaxis BBCode (ej.,
|
| comment | string Incluir el hilo de comentarios/notas adjunto a cada registro. Los comentarios son notas de discusión que los usuarios agregan a través de la interfaz de Ragic.
|
| history | string Incluir el historial de cambios de campo para cada registro — un registro de quién cambió qué campo, cuándo, y cuáles fueron los valores anteriores/nuevos. Útil para seguimiento de auditoría.
|
| approval | string Incluir el estado del flujo de aprobación. La función de aprobación de Ragic te permite configurar procesos de aprobación de múltiples pasos para registros. Esto devuelve el estado de aprobación actual, la lista de aprobadores y el historial de aprobación.
|
| conversation | string Incluir el hilo de conversación por correo electrónico vinculado a un registro. Cuando los registros tienen hilos de correo asociados (a través de las funciones de correo de Ragic), esto devuelve esos mensajes.
|
| tz | number Example: tz=-8 Desfase de zona horaria en horas para campos de fecha/hora. Ejemplo: Los valores de fecha en la respuesta se ajustarán a esta zona horaria. |
| version | string Example: version=2025-01-01 Versión de API usando versionado basado en fecha (recomendado). Formato: Usar versionado asegura que tu integración permanezca estable cuando Ragic introduzca cambios importantes. La API se comportará según la versión que especifiques. Ejemplo: |
| v | integer Enum: 1 2 3 Número de versión de API heredado. Usa el parámetro
|
| api | string Clave API para autenticación (alternativa a HTTP Basic Auth). Ejemplo: |
{- "12345": {
- "1000001": "Acme Corp",
- "1000002": "2024-01-15",
- "_ragicId": 12345
}
}Con frecuencia, tu base de datos puede tener una gran cantidad de registros, asique es mejor aplicar filtros al recuperar datos. Los filtros de API Ragic están en un formato especial. Puedes usar el parámetro “where” para agregar una condición e3 filtro hacer query como a continuación:
curl --get -d "where=800003,eq,Dwight Schrute" \
-H "Authorization:Basic YOUR_API_KEY_GOES_HERE" \
-d api \
https://www.ragic.com/demo/sales/1
El parámetro es un formato delimitado por comas “,” con al menos 3 argumentos.
Puedes hacer una query con múltiples condiciones de filtro como se muestra a continuación:
curl --get -d "where=800003,eq,Dwight Schrute" \
-d "where=800007,eq,Reseller" \
-H "Authorization:Basic YOUR_API_KEY_GOES_HERE" \
-d api \
https://www.ragic.com/demo/sales/1
Esta es la lista de los operadores que puedes usar:
| Nombre del Operador | Valor del Operador |
|---|---|
| Es igual a | eq |
| Expresión Regular | regex |
| Mayor o igual que | gte |
| Menor o igual que | lte |
| Mayor que | gt |
| Menor que | lt |
| Contiene | like |
| Igual al id de nodo | eqeq |
Por favor nótese que:
Cuando filtras por fecha o fecha y hora, deberán estar en el siguiente formato: yyyy/MM/dd o yyyy/MM/dd HH:mm:ss.
No necesitas rellenar el tercer argumento si deseas filtrar por valores vacíos, por ejemplo, **"where=800003,eq," **.
Hay algunos campos de sistema que tienen IDs especiales de campo los cuales puedes usar en tu query. Los campos de sistemas se muestran a continuación:
| Nombre del campo
| de sistema | ID de campo |
|---|---|
| Fecha de creación | 105 |
| Administrador de Registro | 106 |
| Usuario Creador | 108 |
| Notificar al usuario | 110 |
| Si está bloqueado | 111 |
| Si está destacado | 112 |
Puedes usar una búsqueda de texto completo como filtro de query. Sólo provee tu término de búsqueda en el parámetro fts y el resultado coincidente será devuelto.
curl --get -d "fts=Dwight" \
-H "Authorization:Basic TU_CLAVE_API_VA_AQUÍ" \
-d api \
https://www.ragic.com/demo/sales/1
También puedes aplicar una Vista Compartida. Sólo fija el id como se muestra a continuación:
curl --get -d "filterId=EL_ID_DE_TU_VISTA_COMPARTIDA" \
-H "Authorization:Basic TU_CLAVE_API_VA_AQUÍ" \
-d api \
https://www.ragic.com/demo/sales/1
Puedes obtener el id al hacer clic en compartir URL de la vista. 
Con frecuencia, quizá no quieras incluir todos los registros en una solicitud, puedes usar los parámetros limit y b>offset para especificar cuántos registros deseas recuperar, y cuántos registros deseas omitir al principio, para que los clientes puedan implementar páginas para ver los registros. El uso los parámetros limit y b>offset es similar al parámetro de límite SQL. Offset es cuántos registros deseas omitir al principio, y limit es cuántos registros deseas devolver. Los datos devueltos están predeterminado a 1000 registros , debes proveer parámetros de límite si quieres que tu respuesta tenga más de 1000 registros. El formato es el siguiente:
limit=<offset>,<page size>
</page></offset>
El parámetro offset es el número de registros que deben ser omitidos antes de devolver datos, es usado para buscar entre páginas que han sido recuperadas. El parámetro limit es el número máximo de registros que debe devolver por llamada. Por ejemplo, en la siguiente llamada omitiremos los primeros 5 registros, y devolveremos 6 – 13, un total de 8 registros.
curl --get -d "limit=5,8" \
-H "Authorization:Basic TU_CLAVE_API_VA_AQUÍ" \
-d api \
https://www.ragic.com/demo/sales/1

Si no hay un orden, por defecto los datos serán ordenados por fecha y hora de creación, del más antiguo al más reciente. Si deseas obtener los datos más recientes primero, puedes especificar reverse=true así:
curl --get -d "reverse=true" \
-H "Authorization:Basic TU_CLAVE_API_VA_AQUÍ" \
-d api \
https://www.ragic.com/demo/sales/1
También puedes especificar cómo los registros son ordenados al agregar el parámetro order. También es similar a la cláusula ORDER BY en SQL, su valor es una cadena separada por comas con dos argumentos. El primero es el id de campo del dominio según el cual deseas ordenar los registros, el segundo es el orden: ya sea ASC para orden ascendente, o DESC para orden descendente.
curl --get -d "order=800236,DESC" \
-H "Authorization:Basic TU_CLAVE_API_VA_AQUÍ" \
-d api \
https://www.ragic.com/demo/sales/1

Al agregar un parámetro de función callback adjuntará el objeto JSON devuelto como un argumento en una llamada a la función callback especificada por ti. Esto es especialmente útil cuando estás accediendo a nuestra API usando Javascript, debes hacer esto para llamadas cross domain y Ajax. Por ejemplo, agregar callback=testFunc como se muestra a continuación:
curl --get -d "callback=testFunc" \
-H "Authorization:Basic TU_CLAVE_API_VA_AQUÍ" \
-d api \
https://www.ragic.com/demo/sales/1
Adjuntaremos el objeto JSON devuelto en una función llamada para que puedas procesar los datos devueltos en tu función callback:
testFunc({"17": {
"Account Name": "Dunder Mifflin",
"Account Owner": "Jim Halpert",
"Phone": "1-267-922-5599",
...
...
});
El formato de datos JSON usa la cadena de nombre de campo como el nombre de atributo, puedes usar un parámetro “naming” para especificar que deseas usar el id de campo como el nombre de atributo para identificar un campo. Entre los valores posibles incluyen: EID (ID de campo), FNAME (Nombre del campo).
curl --get -d "naming=EID" \
-H "Authorization:Basic TU_CLAVE_API_VA_AQUÍ" \
-d api \
https://www.ragic.com/demo/sales/1

Hay varios parámetros útiles que puedes aplicar a tu solicitud GET HTTP para cambiar el contenido de la respuesta:
| Nombre del Parámetro | Descripción |
|---|---|
| subtables | Al especificar subtables=0 se ordena a la API Ragic que no incluya información de subtabla en la respuesta. |
| listing | Al especificar listing=true se ordena a la API de Ragic sólo incluir campos en la página de listado. |
| reverse | Al especificar reverse=true se ordena a la API de Ragic que revierta el orden predeterminado de la respuesta de la página de listado. |
| info | Al agregar el parámetro info=true se agregará la información “Fecha de Creación” y “Usuario Creador” a la respuesta. |
| conversation | Al agregar el parámetro conversation=true se agregará la conversación del correo electrónico relacionado a este registro en la respuesta. |
| approval | Al agregar el parámetro approval=true se agregará la información de la aprobación relacionada a este registro a la respuesta. |
| comment | Al agregar el parámetro comment=true se agregará el hilo de comentarios relacionado a este registro en la respuesta. |
| bbcode | Al agregar el parámetro bbcode=true recuperará el valor bruto del valor BBCode guardado en el campo en lugar de convertirlo a HTML. |
| history | Agregar el parámetro history=true agregará el historial de edición relacionado al registro a la respuesta. El historial de edición estan en formato JSON, el cual contiene información sobre la hora, tipo, hoja, usuario, detalles. |
CODEBLOCK_0_PLACEHOLDER | | ignoreMask | Al agregar ignoreMask=true, el valor del texto enmascarado será desenmascarado si estás en los grupos que tienen acceso. Haz clic aquí para más información sobre el campo Texto Enmascarado | | ignoreFixedFilter | Al agregar ignoreFixedFilter=true, la vista fija en esta hoja será ignorada. Pero ten en cuenta que esto solo funcionará cuando la llamada API se realice con una clave API de un usuario con privilegios de SYSAdmin. |
En la respuesta JSON devuelta por tu llamada API HTTP, verás algo así para los campos de archivo o imagen adjunta:
"1000537": "Ni92W2luv@My_Picture.jpg",
Podrás descargar el archivo usando una llamada diferente (asumiendo que el nombre de tu cuenta es “demo” y el URL de la llamada API es https://www.ragic.com/demo/sales/1?v=3&api):
https://www.ragic.com/sims/file.jsp?a=demo&f=Ni92W2luv@My_Picture.jpg
El formato es:
https://www.ragic.com/sims/file.jsp?a=<nombre de cuenta>&f=<nombre de archivo>
</nombre></nombre>
Recuerda codificar el nombre de tu archivo cuando lo envíes como un URL. El nombre real de tu archivo debe empezar después del caracter @, esto es para evitar colisiones en los nombres de archivos.
Descargar un archivo cargado, imagen o adjunto de correo electrónico.
Las referencias de archivos aparecen en las respuestas JSON con formato: "1000537": "Ni92W2luv@My_Picture.jpg"
El nombre real del archivo sigue después del carácter "@" para evitar colisiones de nombres.
Ejemplo: Descargar un archivo
curl "https://www.ragic.com/sims/file.jsp?a=demo&f=Ni92W2luv@My_Picture.jpg"
Nota: Los nombres de archivo deben estar codificados con URL cuando se envían como parámetros.
| a required | string Example: a=demo |
| f required | string Example: f=Ni92W2luv@My_Picture.jpg |
{- "status": "ERROR",
- "errorCode": 104,
- "msg": "The record you are updating is not found."
}Por ejemplo, si tienes un URL de un registro como el siguiente
https://www.ragic.com/demo/sales/1/41
Puedes obtener una versión HTML apta para imprimir como ésta, agregando un .xhtml al final:
https://www.ragic.com/demo/sales/1/41.xhtml
You can add a .pdf for a PDF version, .xlsx for an Excel version: Puedes agregar .pdf para una versión PDF , .xlsx para una versión Excel :
https://www.ragic.com/demo/sales/1/41.pdf
https://www.ragic.com/demo/sales/1/41.xlsx
Puedes obtener una Combinación de correspondencia de un registro agregando .custom? y un CID de combinación de correspondencia para especificar qué plantilla (que es 1 para la plantilla de combinación de correspondencia utilizada en este caso):
https://www.ragic.com/demo/sales/1/41.custom?cid=1
Para obtener el cid de una combinación de correspondencia, primero puedes descargar manualmente una combinación de correspondencia desde la interfaz de usuario de Ragic y prestar atención al parámetro cid en la URL de descarga.
https://www.ragic.com/demo/sales/1/41.custom?rn=41&<b>cid=1</b>
You can retrieve a Custom Print Report of a record by appending .carbone? to the URL, along with the following parameters (joined with &). Puedes obtener un reporte de impresión personalizada de un registro agregando .carbone? a la URL, junto con los siguientes parámetros (unidos con &).
https://www.ragic.com/demo/sales/1/41.carbone?fileFormat=pdf&ragicCustomPrintTemplateId=1&fileNameRefDomainId=1001000
(1) Sintaxis de Formato de archivo : fileFormat="formato de archivo" (ej.:, pdf, png, docx). Ejemplo: fileFormat=pdf (2) ID de plantilla personalizada syntax: ragicCustomPrintTemplateId="ID de Plantilla". Ejemplo: ragicCustomPrintTemplateId=1 Para obtener el "ID de plantilla", primero descarga manualmente el Reporte de impresión personalizado y busque el parámetro ID de plantilla en la URL de descarga:
https://www.ragic.com/demo/sales/1/41.carbone?fileFormat=pdf&fileNameRefDomainId=-1&<b>ragicCustomPrintTemplateId=2</b>
(3) Sintaxis del campo de referencia del nombre de archivo (opcional): fileNameRefDomainId="ID de campo". Ejemplo: fileNameRefDomainId=1001000
Obtener una versión HTML para imprimir agregando .xhtml al final de la URL del registro.
Ejemplo:
https://www.ragic.com/demo/sales/1/41.xhtml
| apname required | string Example: myaccount Tu nombre de cuenta (el subdominio en tu URL de Ragic, ej., "demo" en www.ragic.com/demo/...) |
| path required | string Example: sales La ruta de la carpeta en tu URL (ej., "sales" o "hr/employees") |
| sheetIndex required | integer Example: 1 El número de hoja en tu URL (el número después de la ruta de carpeta) |
| rootNodeId required | integer Example: 12345 El ID del registro en tu URL (se muestra al ver un registro individual) |
Obtener la versión PDF de un registro agregando .pdf al final de la URL.
Ejemplo:
https://www.ragic.com/demo/sales/1/41.pdf
| apname required | string Example: myaccount Tu nombre de cuenta (el subdominio en tu URL de Ragic, ej., "demo" en www.ragic.com/demo/...) |
| path required | string Example: sales La ruta de la carpeta en tu URL (ej., "sales" o "hr/employees") |
| sheetIndex required | integer Example: 1 El número de hoja en tu URL (el número después de la ruta de carpeta) |
| rootNodeId required | integer Example: 12345 El ID del registro en tu URL (se muestra al ver un registro individual) |
Obtener la versión Excel de un registro agregando .xlsx al final de la URL.
Ejemplo:
https://www.ragic.com/demo/sales/1/41.xlsx
| apname required | string Example: myaccount Tu nombre de cuenta (el subdominio en tu URL de Ragic, ej., "demo" en www.ragic.com/demo/...) |
| path required | string Example: sales La ruta de la carpeta en tu URL (ej., "sales" o "hr/employees") |
| sheetIndex required | integer Example: 1 El número de hoja en tu URL (el número después de la ruta de carpeta) |
| rootNodeId required | integer Example: 12345 El ID del registro en tu URL (se muestra al ver un registro individual) |
La combinación de correspondencia genera un documento (por ejemplo, un contrato, factura o carta) a partir de una plantilla que se llena con datos del registro. Agrega .custom y un ID de plantilla (cid) para descargar el documento generado.
Para encontrar el cid, descarga manualmente un documento de combinación de correspondencia desde la interfaz de Ragic y busca el parámetro cid en la URL de descarga.
Ejemplo:
https://www.ragic.com/demo/sales/1/41.custom?cid=1
| apname required | string Example: myaccount Tu nombre de cuenta (el subdominio en tu URL de Ragic, ej., "demo" en www.ragic.com/demo/...) |
| path required | string Example: sales La ruta de la carpeta en tu URL (ej., "sales" o "hr/employees") |
| sheetIndex required | integer Example: 1 El número de hoja en tu URL (el número después de la ruta de carpeta) |
| rootNodeId required | integer Example: 12345 El ID del registro en tu URL (se muestra al ver un registro individual) |
| cid required | integer Example: cid=1 |
Si no estás usando formularios simples HTML para crear registros en Ragic, deberás crear solicitudes API para crear los registros. Los puntos finales (endpoints) para escribir en un formulario es el mismo para leerlos, pero envías una solicitud POST and lugar de una solicitud GET. La API ahora es compatible con datos JSON, y la forma recomendada para hacer solicitudes HTTP. Para agregar datos JSON (POST), debes cambiar la configuración de la pestaña Body a raw JSON, como se muestra a continuación.
Lo que necesitas hacer es usar los IDs de campos como nombres de los campos, y los valores que deseas ingresar como valores de parámetro. Por favor nótese que el usuario deberá escribir acceso al formulario para que esto funcione.
curl -F "800001=Dunder Mifflin" \
-F "800002=1-267-922-5599" \
-F "800003=Jim Halpert" \
-F "800007=Customer" \
-F "api=" \
-H "Authorization:Basic TU_CLAVE_API_VA_AQUÍ" \
https://www.ragic.com/demo/sales/1
El formato JSON equivalente es como a continuación:
{
"800001": "Dunder Mifflin"
"800002": "1-267-922-5599"
"800003": "Jim Halpert"
"800007": "Customer
}
Si el campo es un tipo selección múltiple que puede tener múltiples valores, puedes tener múltiples parámetros con el mismo ID de campo como nombres. Si el campo es de tipo Fecha , el valor debe estar en el formato yyyy/MM/dd o yyyy/MM/dd HH:mm:ss si hay períodos de tiempo. Asique la solicitud se vería así:
curl -F "800001=Dunder Mifflin" \
-F "800002=1-267-922-5599" \
-F "800003=Jim Halpert" \
-F "800007=Customer" \
-F "800007=Reseller" \
-F "800008=2018/12/25 23:30:00" \
-F "api=" \
-H "Authorization:Basic TU_CLAVE_API_VA_AQUÍ" \
https://www.ragic.com/demo/sales/1
El formato JSON equivalente es como a continuación los corchetes para el ID de campo 1000143 permite múltiples valores en una oración
{
"800001": "Dunder Mifflin",
"800002": "1-267-922-5599",
"800003": "Jim Halpert",
"800007": ["Customer", "Reseller"],
"800008": "2018/12/25 23:30:00"
}
Si deseas insertar datos a las subtablas el mismo tiempo, necesitarás un formato ligeramente diferente para los campos en las subtablas ya que Ragic necesita una forma para determinar si los valores de campo pertenecen al mismo registro de subtabla. Si los valores están en la misma fila de subtabla, asígnales el mismo ID de fila negativo a cada uno. Puede ser un entero negativo. Es la única forma de determinar que están en la misma fila.
1000014_-1=Bill
1000015_-1=Manager
1000016_-1=billg@microsoft.com
1000014_-2=Satya
1000015_-2=VP
1000016_-2=satyan@microsoft.com
La solicitud completa se vería así:
curl -F "800001=Dunder Mifflin" \
-F "800002=1-267-922-5599" \
-F "800003=Jim Halpert" \
-F "800007=Customer" \
-F "800007=Reseller" \
-F "1000014_-1=Bill" \
-F "1000015_-1=Manager" \
-F "1000016_-1=billg@microsoft.com" \
-F "1000014_-2=Satya" \
-F "1000015_-2=VP" \
-F "1000016_-2=satyan@microsoft.com" \
-F 'api=' \
-H "Authorization:Basic TU_CLAVE_API_VA_AQUÍ" \
https://www.ragic.com/demo/sales/1
El formato JSON equivalente es como a continuación
{
"800001": "Dunder Mifflin",
"800002": "1-267-922-5599",
"800003": "Jim Halpert",
"800007": ["Customer", "Reseller"],
"_subtable_800014": {
"-1": {
"1000014": "Bill",
"1000015": "Manager",
"1000016": "billg@microsoft.com"
},
"-2": {
"1000014": "Satya",
"1000015": "VP",
"1000016": "satyan@microsoft.com"
}
}
}
Si deseas rellenar un campo de tipo archivo adjunto , asegúrate de que el tipo de codificación de la solicitud sea multipart/form-data. El equivalente HTML sería enctype='multipart/form-data'. Con una solicitud de partes múltiples, puedes agregar tu archivo a la solicitud, y sólo pon el nombre del archivo como valor de campo.
1000088=test.jpg
Para crear registros vía API en lugar de formularios HTML, usa una solicitud POST (no GET) al mismo endpoint usado para lectura.
La API ahora soporta datos JSON, y es la forma recomendada para hacer solicitudes HTTP.
Los IDs de campo sirven como nombres de parámetro, con los valores deseados como valores. Los usuarios necesitan acceso de escritura al formulario para que esto funcione.
Si el campo es un campo de fecha, el valor debe estar en formato yyyy/MM/dd o yyyy/MM/dd HH:mm:ss cuando se incluye la hora.
Ejemplo cURL:
curl -F "1000001=Nuevo Pedido" \
-F "1000002=2024/01/15" \
-F "api=" \
-H "Authorization:Basic TU_CLAVE_API_VA_AQUÍ" \
https://www.ragic.com/demo/sales/1
Equivalente JSON:
{
"1000001": "Nuevo Pedido",
"1000002": "2024/01/15"
}
Con filas de subtabla: Al llenar subtablas simultáneamente, los valores de campo en la misma fila deben compartir identificadores negativos idénticos (cualquier entero negativo).
{
"1000001": "Nuevo Pedido",
"_subtable_1000010": {
"-1": {"1000011": "Artículo A", "1000012": 2},
"-2": {"1000011": "Artículo B", "1000012": 5}
}
}
| apname required | string Example: myaccount Tu nombre de cuenta (el subdominio en tu URL de Ragic, ej., "demo" en www.ragic.com/demo/...) |
| path required | string Example: sales La ruta de la carpeta en tu URL (ej., "sales" o "hr/employees") |
| sheetIndex required | integer Example: 1 El número de hoja en tu URL (el número después de la ruta de carpeta) |
| doFormula | string Default: "false" Enum: "true" "false" Ejecutar fórmulas después de guardar.
|
| doDefaultValue | string Default: "false" Enum: "true" "false" Aplicar valores predeterminados para campos vacíos.
|
| doLinkLoad | string Default: "false" Enum: "true" "false" "first" Ejecutar operaciones "Enlazar y Cargar". En Ragic, Enlazar y Cargar copia automáticamente datos de un registro enlazado al registro actual (ej., seleccionar un cliente auto-completa su dirección). Por defecto, la API omite esto por rendimiento.
|
| doWorkflow | string Default: "true" Enum: "true" "false" Activar acciones de flujo de trabajo (pre-flujo, post-flujo).
|
| notification | string Default: "true" Enum: "true" "false" Enviar notificaciones (correo electrónico, notificaciones de aprobación).
|
| info | string Incluir metadatos del registro (quién lo creó/modificó y cuándo). Útil para registros de auditoría u operaciones de sincronización.
|
| importData | string Importar datos desde una URL a la hoja. Requiere privilegios de SYSAdmin. Ejemplo: |
| tz | number Example: tz=-8 Desfase de zona horaria en horas para campos de fecha/hora. Ejemplo: Los valores de fecha en la respuesta se ajustarán a esta zona horaria. |
| version | string Example: version=2025-01-01 Versión de API usando versionado basado en fecha (recomendado). Formato: Usar versionado asegura que tu integración permanezca estable cuando Ragic introduzca cambios importantes. La API se comportará según la versión que especifiques. Ejemplo: |
| v | integer Enum: 1 2 3 Número de versión de API heredado. Usa el parámetro
|
| api | string Clave API para autenticación (alternativa a HTTP Basic Auth). Ejemplo: |
| callback | string Nombre de función callback JSONP. Agregar un parámetro de función callback envolverá el objeto JSON devuelto como argumento en una llamada a la función callback especificada por ti. Esto es especialmente útil cuando accedes a nuestra API usando Javascript para llamadas Ajax entre dominios. Ejemplo: La respuesta se envolverá así: |
additional property | string or number or object or Array of strings |
{- "1000001": "New Customer",
- "1000002": "2024-01-15",
- "1000003": "Active"
}{- "status": "SUCCESS",
- "rv": "12345",
- "ragicId": 12345
}El punto final (endpoint) para modificar un registro es el mismo para leer un registro existente. Nótese que al crear un registro, el punto final apunta a una hoja Ragic, pero cuando editas un registro, tu punto final necesitará un ID de registro extra para apuntar al registro exacto.
https://www.ragic.com/<account>/<tab folder>/<sheet index><b>/<record id></record></b>?api
</sheet></tab></account>
Todo lo que necesitas proveer son los IDs de los campos que deseas modificar. Si el campo es de tipo Fecha , el valor debe estar en el formato yyyy/MM/dd o yyyy/MM/dd HH:mm:ss si hay períodos de tiempo.
curl -F "800003=Dwight Schrute" \
-F "800007=Partner" \
-F "api=" \
-H "Authorization:Basic TU_CLAVE_API_VA_AQUÍ" \
https://www.ragic.com/demo/sales/1<b>/3</b>
Para subtablas, es poco más complicado ya que Ragic necesita saber cuál fila estás editando, asique debes encontrar el ID de la fila que estás editando. Esta información puedes obtenerla desde una llamada API. Como hemos mencionado en un capítulo anterior, el formato devuelto para un registro con subtablas se ve así:
"14": {
"Account Name": "Ratshotel",
"Account Owner": "Dwight Schrute",
"Phone": "1-267-922-5529",
...
"_subtable_800014": {
"29": {
"Contact Name": "Arden Jacobs",
"Title": "Specialist",
"E-mail": "Arden@ratshotel.com",
},
"30": {
"Contact Name": "Kermit Moore",
"Title": "Manager",
"E-mail": "Kermit@ratshotel.com",
}
}
}
El formato JSON equivalente es el siguiente:
{
"800003": "Dwight Schrute",
"800007": "Partner"
}
Para subtablas, es un poco más complejo, ya que Ragic necesitará cuál fila estás editando. Asique debes encontrar el ID de fila de la fila que estás editando. Esta información puedes encontrarla en una llamada API. Como se mencionó en un capítulo anterior, el formato devuelto para un registro con subtablas se ve así:
"14": {
"Account Name": "Ratshotel",
"Account Owner": "Dwight Schrute",
"Phone": "1-267-922-5529",
...
"_subtable_800014": {
"29": {
"Contact Name": "Arden Jacobs",
"Title": "Specialist",
"E-mail": "Arden@ratshotel.com",
},
"30": {
"Contact Name": "Kermit Moore",
"Title": "Manager",
"E-mail": "Kermit@ratshotel.com",
}
}
}
En la subtabla, 29 es el ID de fila para el contacto Arden Jacobs, y 30 es el ID de fila para el contacto Kermit Moore. Con este ID de fila, puedes modificar datos de la subtabla, así como creas registro en subtablas. Usa el ID de fila como identificador después del ID de campo. Sólo debes incluir los campos que deseas modificar:
1000015_29=Senior Specialist
1000016_29=arden2@ratshotel.com
1000015_30=Senior Manager
La solicitud completa se vería así:
curl -F "800003=Dwight Schrute" \
-F "800007=Partner" \
-F "1000015_29=Senior Specialist" \
-F "1000016_29=arden2@ratshotel.com" \
-F "1000015_30=Senior Manager" \
-F "api=" \
-H "Authorization:Basic TU_CLAVE_API_VA_AQUÍ" \
https://www.ragic.com/demo/sales/1<b>/3</b>
El formato JSON equivalente es el siguiente:
{
"800003": "Dwight Schrute",
"800007": "Partner" ,
"_subtable_800014": {
"29" :{
"1000015": "Senior Specialist",
"1000016": "arden2@ratshotel.com"
},
"30" :{
"1000015": "Senior Manager"
}
}
}
Si deseas eliminar una fila de subtabla, puedes crear una solicitud así:
DELSUB_<subtable key>=<subtable row id>
</subtable></subtable>
El formato JSON equivalente es el siguiente:
_DELSUB_<subtable key>=[<subtable row id>,<subtable row id>,...,<subtable row id>];
</subtable></subtable></subtable></subtable>
Por ejemplo, si quieres eliminar el contacto Arden Jacobs, la solicitud completa se vería así:
curl -F "DELSUB_800014=29" \
-F "api=" \
-H "Authorization:Basic TU_CLAVE_API_VA_AQUÍ" \
https://www.ragic.com/demo/sales/1<b>/3</b>
El formato JSON equivalente es el siguiente:
{
"_DELSUB_800014": [26]
}
Usar el formato JSON para eliminar filas te permite especificar filas de una forma simple,
{
"_DELSUB_subtable key": [<subtable row id>,..., <subtable row id>]
}
</subtable></subtable>
La API de Ragic soporta los métodos POST, PUT y PATCH para modificar registros. Cuando editas un registro, tu endpoint necesitará un ID de registro adicional para apuntar al registro exacto.
Solo necesitas proporcionar los IDs de los campos que deseas cambiar. Los campos de fecha requieren formato yyyy/MM/dd o yyyy/MM/dd HH:mm:ss.
Ejemplo cURL:
curl -F "2000123=Dunder Mifflin" \
-F "2000127=Jim Halpert" \
-F "api=" \
-H "Authorization:Basic TU_CLAVE_API_VA_AQUÍ" \
https://www.ragic.com/demo/sales/1/3
Equivalente JSON:
{
"2000123": "Dunder Mifflin",
"2000127": "Jim Halpert"
}
Modificaciones de subtabla:
Para filas de subtabla, debes identificar el ID de fila desde las respuestas de la API. El formato usa la notación idCampo_idFila.
{
"_subtable_2000154": {
"29": {
"2000147": "Amy Tsai",
"2000148": "Especialista Senior"
}
}
}
Eliminar filas de subtabla:
Usa _DELSUB_{idCampoSubtabla} con un arreglo de IDs de fila:
{
"_DELSUB_2000154": [3]
}
Eliminar múltiples filas: "_DELSUB_2000154": [3, 7, 12]
| apname required | string Example: myaccount Tu nombre de cuenta (el subdominio en tu URL de Ragic, ej., "demo" en www.ragic.com/demo/...) |
| path required | string Example: sales La ruta de la carpeta en tu URL (ej., "sales" o "hr/employees") |
| sheetIndex required | integer Example: 1 El número de hoja en tu URL (el número después de la ruta de carpeta) |
| rootNodeId required | integer Example: 12345 El ID del registro en tu URL (se muestra al ver un registro individual) |
| doFormula | string Default: "false" Enum: "true" "false" Ejecutar fórmulas después de guardar.
|
| doDefaultValue | string Default: "false" Enum: "true" "false" Aplicar valores predeterminados para campos vacíos.
|
| doLinkLoad | string Default: "false" Enum: "true" "false" "first" Ejecutar operaciones "Enlazar y Cargar". En Ragic, Enlazar y Cargar copia automáticamente datos de un registro enlazado al registro actual (ej., seleccionar un cliente auto-completa su dirección). Por defecto, la API omite esto por rendimiento.
|
| doWorkflow | string Default: "true" Enum: "true" "false" Activar acciones de flujo de trabajo (pre-flujo, post-flujo).
|
| notification | string Default: "true" Enum: "true" "false" Enviar notificaciones (correo electrónico, notificaciones de aprobación).
|
| checkLock | string Value: "true" Verificar si el registro está bloqueado antes de una actualización, y no editar el registro si está bloqueado.
|
| lock | string Bloquear un registro para evitar que otros usuarios lo editen. Usa este parámetro con una solicitud POST al endpoint del registro. No se necesita cuerpo de solicitud. Ejemplo: |
| unlock | string Desbloquear un registro previamente bloqueado. Usa este parámetro con una solicitud POST al endpoint del registro. No se necesita cuerpo de solicitud. Ejemplo: |
| bId | string Ejecutar un botón de acción en un registro. Pasa el ID del botón obtenido del endpoint de Metadatos de Botones de Acción. Ejemplo: |
| info | string Incluir metadatos del registro (quién lo creó/modificó y cuándo). Útil para registros de auditoría u operaciones de sincronización.
|
| tz | number Example: tz=-8 Desfase de zona horaria en horas para campos de fecha/hora. Ejemplo: Los valores de fecha en la respuesta se ajustarán a esta zona horaria. |
| version | string Example: version=2025-01-01 Versión de API usando versionado basado en fecha (recomendado). Formato: Usar versionado asegura que tu integración permanezca estable cuando Ragic introduzca cambios importantes. La API se comportará según la versión que especifiques. Ejemplo: |
| v | integer Enum: 1 2 3 Número de versión de API heredado. Usa el parámetro
|
| api | string Clave API para autenticación (alternativa a HTTP Basic Auth). Ejemplo: |
additional property | string or number or object or Array of strings |
{- "1000003": "Completed",
- "1000004": "2024-01-20"
}{- "status": "SUCCESS",
- "rv": "string",
- "ragicId": 0,
- "msg": "string",
- "warning": "string"
}Hay muchos parámetros útiles que puedes usar al crear o actualizar registros en Ragic para ahorrar tiempo al escribir código duplicado para lo que puede realizarse en Ragic.
| Nombre del Parámetro | Descripción |
|---|---|
| doFormula | Al especificar doFormula=true ordena a la API de Ragic recalcular todas las fórmulas primero cuando un registro es creado o actualizado. Nótese que cuando este es configurado a true, los scripts de workflow que has configurado en la hoja no se ejecutarán para evitar bucles infinitos. |
| doDefaultValue | Al especificar doDefaultValue=true ordena a la API de Ragic cargar todos los valores predeterminados cuando un registro sea creado o actualizado. |
| doLinkLoad | Al especificar doLinkLoad=true ordena a la API de Ragic recalcular todas las fórmulas primero y luego cargar todos valores de enlazar y cargar cuando un registro es creado o actualizado. |
Al especificar doLinkLoad=first ordena a la API de Ragic cargar todos los valores de enlazar y cargar primero, cuando un registro es creado o actualizado y luego recalcular todas las fórmulas. | | doWorkflow | Al especificar doWorkflow=true ordena a la API de Ragic ejecutar el script de workflow asociado con esta llamada API. | | checkLock | Al especificar checkLock=true ordena a la API de Ragic verificar si el registro está bloqueado antes de una actualización, y no editarlo si está bloqueado. |
Eliminar un registro es similar a leer un registro. Todo lo que debes hacer es cambiar el método de solicitud de GET a DELETE. Cuando es una solicitud DELETE, el registro al punto final de la API será eliminado.
curl -X DELETE \
-H "Authorization:Basic TU_CLAVE_API_VA_AQUÍ" \
-d "api" \
https://www.ragic.com/demo/sales/1/3

Eliminar un registro por su ID.
Advertencia: Esta acción no se puede deshacer.
Ejemplo:
curl -X DELETE \
-H "Authorization:Basic TU_CLAVE_API_VA_AQUÍ" \
"https://www.ragic.com/demo/sales/1/12345?api"
| apname required | string Example: myaccount Tu nombre de cuenta (el subdominio en tu URL de Ragic, ej., "demo" en www.ragic.com/demo/...) |
| path required | string Example: sales La ruta de la carpeta en tu URL (ej., "sales" o "hr/employees") |
| sheetIndex required | integer Example: 1 El número de hoja en tu URL (el número después de la ruta de carpeta) |
| rootNodeId required | integer Example: 12345 El ID del registro en tu URL (se muestra al ver un registro individual) |
| version | string Example: version=2025-01-01 Versión de API usando versionado basado en fecha (recomendado). Formato: Usar versionado asegura que tu integración permanezca estable cuando Ragic introduzca cambios importantes. La API se comportará según la versión que especifiques. Ejemplo: |
| v | integer Enum: 1 2 3 Número de versión de API heredado. Usa el parámetro
|
| api | string Clave API para autenticación (alternativa a HTTP Basic Auth). Ejemplo: |
{- "status": "SUCCESS"
}Asegúrate que el tipo de contenido sea multipart/form-data , y podrás cargar archivos.
curl -F "1000088=@/your/file/path" \
-F "api=" \
-F "v=3" \
-H "Authorization:Basic TU_CLAVE_API_VA_AQUÍ" \
https://www.ragic.com/demo/sales/1
Después de cargarlos exitosamente, recibirás tu archivo en este formato.
"1000088": "Ni92W2luv@test.jpg",
Desplaza tu cursor sobre la flecha del menú desplegable y selecciona la opción "File" (archivo) para permirtir la carga de archivos.
Si quieres obtener los archivos cargados, sigue estas instrucciones. Si quieres cargar los archivos vía enlace, primero descárgalos y luego sigue las instrucciones anteriores.
curl -o __TEMP_FILE__ ENLACE_DE_TU_IMAGEN
curl -F "1000002=@__TEMP_FILE__" -F "api=" -F "v=3" -H "Authorization:Basic TU_CLAVE_API" https://www.ragic.com/demo/sales/1
Recuerda reemplazar el ENLACE_DE_TU_IMAGEN y TU_CLAVE_API Puedes obtener tu clave API aquí.
Asegúrese de que su tipo de contenido sea multipart/form-data.
curl -F "at=@/your/file/path" \
-F "c=yourComment"
-F "api=" \
-H "Authorization:Basic TU_CLAVE_API_VA_AQUÍ" \
https://www.ragic.com/demo/ragicsales-order-management/10001/2
En el cuerpo de la solicitud, el valor del parámetro c es el comentario (obligatorio) y el valor del parámetro at es el archivo adjunto (opcional). Su clave API podría obtenerse aquí.
Respuesta:
{
"61": "2025/02/13 14:30",
"65": "Juan García",
"66": "Por favor revise este pedido.",
"67": "",
"73": "1739425800000"
}
El campo 61 es la marca de tiempo formateada, 65 es el nombre del autor del comentario, 66 es el texto del comentario, 67 es el nombre del archivo adjunto (vacío si no hay ninguno) y 73 es la marca de tiempo en milisegundos.
Debes tener privilegios de SYSAdmin para usar esta API. Antes de utilizar esta API, habilita la función "Importación periódica desde URL". Una vez completada la configuración, puedes activar la importación llamando a la siguiente API:
curl -F "importData="
-F "api=" \
-H "Authorization:Basic TU_CLAVE_API_VA_AQUÍ" \
https://www.ragic.com/demo/ragicsales-order-management/10001
Cuando necesites crear o actualizar una gran cantidad de datos, también puedes usar este método para importar todo de una vez en lugar de hacer múltiples llamadas API. Puedes encontrar tu clave API en tu página de Configuración personal.
Respuesta:
{
"status": "SUCCESS",
"msg": "Import completed."
}
Para bloquear o desbloquear datos usando la API HTTP, simplemente agrega las cadenas de consulta "api" y "lock"/"unlock" a la URL del registro de destino y envía la solicitud usando el método POST.
curl -X POST https://www.ragic.com/demo/ragicforms23/10004/102?api&lock
curl -X POST https://www.ragic.com/demo/ragicforms23/10004/102?api&unlock
Los permisos para bloquear/desbloquear son los mismos que al realizar la acción a través de la interfaz del formulario. Puedes encontrar tu clave API en tu página de Configuración personal.
Respuesta:
{
"status": "SUCCESS",
"code": 200
}
Para ejecutar un Botón de Acción a través de la API HTTP, primero necesitas obtener el ID del Botón de Acción. Usa el método GET para enviar la siguiente solicitud:
curl "https://{nombreServidor}/{nombreCuenta}{ruta}/{índiceHoja}/metadata/actionButton?api&category=massOperation" \
-H "Authorization: {Basic claveAPI}"
Después de obtener el ID del Botón de Acción, puedes usar el método POST para enviar la siguiente solicitud y ejecutar el Botón de Acción especificado en el registro de destino:
curl -X POST "https://{nombreServidor}/{nombreCuenta}{ruta}/{índiceHoja}/{idRegistro}?api&bId={idBotón}" \
-H "Authorization: Basic claveAPI"
Nota: Además de tener permiso para ejecutar el Botón de Acción, también debes tener permiso para ver el registro de destino para poder usar esta API HTTP. Puedes encontrar tu clave API en tu página de Configuración personal.
Respuesta:
{
"status": "SUCCESS",
"msg": "Action completed."
}
Obtener la lista de botones de acción configurados en un formulario/hoja.
Usa el parámetro opcional category=massOperation para filtrar botones que soportan operaciones masivas.
Ejemplo:
curl -H "Authorization:Basic TU_CLAVE_API_VA_AQUÍ" \
"https://www.ragic.com/demo/sales/1/metadata/actionButton?api"
Filtrar botones de operación masiva:
curl -H "Authorization:Basic TU_CLAVE_API_VA_AQUÍ" \
"https://www.ragic.com/demo/sales/1/metadata/actionButton?api&category=massOperation"
Respuesta:
[
{"id": "btn_001", "name": "Enviar Notificación"},
{"id": "btn_002", "name": "Generar Reporte"}
]
| apname required | string Example: myaccount Tu nombre de cuenta (el subdominio en tu URL de Ragic, ej., "demo" en www.ragic.com/demo/...) |
| path required | string Example: sales La ruta de la carpeta en tu URL (ej., "sales" o "hr/employees") |
| sheetIndex required | integer Example: 1 El número de hoja en tu URL (el número después de la ruta de carpeta) |
| category | string Value: "massOperation" |
| api | string Clave API para autenticación (alternativa a HTTP Basic Auth). Ejemplo: |
[- {
- "id": "btn_001",
- "name": "Send Notification"
}, - {
- "id": "btn_002",
- "name": "Generate Report"
}
]Si la solicitud devuelve un error, se verá algo así:
{
"status": "ERROR",
"code": 303,
"msg": "Su cuenta ha expirado."
}
Esta es una lista de los códigos de estado HTTP que podrían ser devueltos en una solicitud Ragic:
| Estado HTTP | Descripción |
|---|---|
| 200 | OK. Todo funcionó como se esperaba. |
| 400 | Solicitud inválida – Con frecuencia hace falta un parámetro requerido. |
| 401 | Sin Autorización – No hay clave API válida. |
| 402 | Solicitud Fallida - Los parámetros son válidos pero la solicitud falló. |
| 404 | No se encuentra – El elemento solicitado no existe. |
| 500, 502, 503, 504 | Errores del servidor – Algo resultó mal en Ragic. |
Si hay un error al procesar tu solicitud, generalmente tendrá un código de error y una descripción. Aquí hay una lista de códigos de errores que podrías recibir como respuesta a una solicitud Ragic:
| ID del código de error | Descripción del error |
|---|---|
| 101 | Nombre de cuenta inválido. |
| 102 | Ruta inválida. |
| 103 | Índice de formulario inválido. |
| 104 | No puedes ingresar datos en un formulario personalizado. |
| 105 | Se requiere iniciar sesión antes de usar POST API. |
| 106 | Sin derechos de acceso. |
| 107 | No se ha encontrado Resource bundle. |
| 108 | Error al cargar tu formulario de solicitud. |
| 201 | Error al procesar tus parámetros de solicitud. |
| 202 | Error al ejecutar tu solicitud. |
| 203 | La solicitud POST no finalizó. |
| 301 | Tu parámetro sid ha caducado. |
| 302 | Tu sesión ha caducado. |
| 303 | Tu cuenta ha expirado. |
| 304 | Tu clave secreta es inválida. |
Las API de operaciones masivas están diseñadas para realizar el mismo conjunto de operaciones para varios registros de una hoja en una única solicitud. Hay dos formas de especificar los registros que se actualizarán:
https://www.ragic.com/< cuenta >/< carpeta de pestañas >/< índice de hoja >/massOperation/< tipo de operación masiva >?api&where=< ID de campo >,< Operando de filtro >,< Valor >
https://www.ragic.com/< cuenta >/< carpeta de pestañas >/< índice de hoja >/massOperation/< tipo de operación masiva >?api&recordId=< recordId >
Método HTTP: POST
URL: https://www.ragic.com/< cuenta >/< carpeta de pestañas >/< índice de hoja >/massOperation/< tipo de operación masiva >?api
Encabezados
Autorización: Básica < Clave API >
Cuerpo
{
// Datos JSON que describen la operación a realizar
}
==========
Response
{
"taskId": < A UUID Que Identifica la Tarea >
}
La API de bloqueo masivo permite bloquear o desbloquear varios registros a la vez. Bloqueo masivo de documentos
Método HTTP - POST
URL - https://www.ragic.com/< cuenta >/< tarea de pestaña >/< índice de hoja >/massOperation/massLock?api
{
"action": < bloquear o desbloquear >
}
==========
Response
{
"taskId": "6dbc796a-07d5-475b-b578-d254eb30f7d2"
}
La API de aprobación masiva permite la aprobación o el rechazo de varios registros a la vez. Documento de aprobación masiva
Método HTTP: POST
URL: https://www.ragic.com/< cuenta >/< carpeta de pestañas >/< índice de hoja >/massOperation/massApproval?api
{
"action": < aprobar o rechazar >,
"comment": < comentario opcional > // opcional
}
==========
Response
{
"taskId": "6dbc796a-07d5-475b-b578-d254eb30f7d2"
}
La API del botón de acción masiva permite la ejecución de un botón de acción en varios registros a la vez. Documento del botón de acción masiva
Método HTTP: POST
URL: https://www.ragic.com/< cuenta >/< carpeta de pestaña >/< índice de hoja >/massOperation/massActionButton?api
{
"buttonId": < ID del botón >
}
==========
Response
{
"taskId": "6dbc796a-07d5-475b-b578-d254eb30f7d2"
}
Para obtener la lista de botones de acción disponibles en una hoja
Método HTTP: GET
URL: https://www.ragic.com/< cuenta >/< carpeta de pestañas >/< índice de hoja >/metadata/actionButton?api&category=massOperation
==========
Respuesta
{
"actionButtons": [
{
"id": < ID del botón 1 >,
"name": < nombre del botón 1 >
},
.....
,{
"id": < ID del botón 2 >,
"name": < nombre del botón 2 >
}
]
}
La API de actualización masiva permite actualizaciones de valores de campo en varios registros a la vez. Documento de Actualización masiva
Método HTTP: POST
URL: https://www.ragic.com/< cuenta >/< carpeta de pestañas >/< índice de hoja >/massOperation/massUpdate?api
{
"action": [
{
"field": < ID de Campo >,
"value": < Nuevo Valor de Campo >
}
]
}
==========
Response
{
"taskId": "6dbc796a-07d5-475b-b578-d254eb30f7d2"
}
La API de actualización masiva también admite el uso de usuarios internos y usuarios externos, pero existen algunas restricciones.
Los siguientes campos no se pueden actualizar de forma masiva:
La actualización masiva de grupos Ragic (domainId: 3) debe seguir las siguientes reglas:
Método HTTP: POST
URL: https://www.ragic.com/< cuenta >/< carpeta pestaña >/< índice de hoja >/massOperation/massUpdate?api
{
"action": [
{
"field": 3,
"value": "[\"SYSAdmin\"]"
}
]
}
==========
Respuesta
{
"taskId": "6dbc796a-07d5-475b-b578-d254eb30f7d2"
}
La API de búsqueda y reemplazo masivo permite reemplazar valores en varios registros a la vez. Búsqueda y reemplazo masivo de documentos
HTTP Method - POST
URL - https://www.ragic.com/< cuenta >/< carpeta de pestañas >/< índice de hoja >/massOperation/massSearchReplace?api
{
"action": [
{
"field": < ID de campo >,
"valueReplaced": < Valor a Reemplazar >,
"valueNew": < Nuevo Valor >,
}
]
}
==========
Respuesta
{
"taskId": "6dbc796a-07d5-475b-b578-d254eb30f7d2"
}
Las operaciones masivas son operaciones asincrónicas. El identificador de la tarea de la operación se puede utilizar para supervisar su progreso.
Método HTTP - GET
URL - https://www.ragic.com/< account >?api&taskId=< ID de Tarea >
==========
Respuesta
{
"id": "6dbc796a-07d5-475b-b578-d254eb30f7d2",
"ap": "myaccount",
"taskName": "Mass Update",
"status": "PROCESSING",
"processed": 50,
"success": 48,
"fail": 2,
"message": ""
}
El campo status puede ser NOT_STARTED (no iniciado), PROCESSING (en proceso) o DONE (completado). Los campos processed, success y fail indican el número de registros procesados, exitosos y fallidos respectivamente.
Ejecutar una operación masiva en múltiples registros a la vez. Todas las operaciones masivas son asíncronas y devuelven un taskId que se puede usar para consultar el progreso.
Selección de registros: Usa el parámetro de consulta where o recordId para seleccionar qué registros operar.
Tipos de operación:
Actualizar valores de campo en múltiples registros.
{
"1000001": "Nuevo Valor",
"1000002": "2024/06/01"
}
Buscar texto en un campo y reemplazarlo en múltiples registros.
{
"fieldId": "1000001",
"search": "texto antiguo",
"replace": "texto nuevo"
}
Bloquear o desbloquear múltiples registros.
{"lock": true}
Aprobar o rechazar múltiples registros a la vez.
{"action": "approve"}
Ejecutar un botón de acción en múltiples registros.
{"bId": "btn_001"}
Respuesta:
{"taskId": "550e8400-e29b-41d4-a716-446655440000"}
Usa el taskId con el endpoint de Listar Registros para consultar el progreso.
| apname required | string Example: myaccount Tu nombre de cuenta (el subdominio en tu URL de Ragic, ej., "demo" en www.ragic.com/demo/...) |
| path required | string Example: sales La ruta de la carpeta en tu URL (ej., "sales" o "hr/employees") |
| sheetIndex required | integer Example: 1 El número de hoja en tu URL (el número después de la ruta de carpeta) |
| operationType required | string Enum: "massUpdate" "massSearchReplace" "massLock" "massApproval" "massActionButton" |
| where | Array of strings Examples:
Condición de filtro con argumentos delimitados por comas. Formato: Operadores disponibles:
Múltiples condiciones "eq", "regex" o "like" en el mismo campo actúan como operaciones OR. Combinar condiciones gte/gt y lte/lt en el mismo campo crea operaciones AND (útil para rangos de fechas). Los valores de fecha/hora deben usar el formato: Filtrar valores vacíos: deja el tercer argumento en blanco, ej., Comas en valores de filtro requieren codificación URL ( Doble codificación URL: Si un valor de filtro contiene Ejemplo: |
| recordId | Array of integers |
| api | string Clave API para autenticación (alternativa a HTTP Basic Auth). Ejemplo: |
| property name* additional property | any |
{- "1000001": "New Value",
- "1000002": "2024/06/01"
}{- "taskId": "550e8400-e29b-41d4-a716-446655440000"
}Un webhook es una forma para que tus aplicaciones externas puedan suscribirse a los cambios en tu aplicación Ragic. Al suscribirse a los cambios, cada vez que haya cambios realizados en Ragic, éste llamará al URL del webhook que hayas indicado para notificarte del cambio, incluyendo el ID del registro exacto que ha sido editado. La mayor ventaja de usar un webhook API en lugar de API RESTful, es que es más eficiente al procesar cambios. Ya no tienes que hacer polling en la API cada X horas para ver los cambios más recientes.
Puedes encontrar webhook para una hoja en Ragic al hacer clic en el botón Herramientas en la parte superior. Encontrarás el webhook en la sección Sincronizar.
Cosas que debes tener en cuenta sobre el webhook API:
Haz clic en la función “webhook” e ingresa el URL que debe recibir esta notificación y listo. También puedes optar por recibir información completa sobre los datos modificados marcando la casilla “enviar contenido completo sobre el registro modificado”. Para cancelar la configuración del webhook, haz clic en la x en la esquina del cuadro de configuración del webhook. El formato JSON sin contenido completo se vería así:
[1 ,2 ,4]
Para este ejemplo, significa que se modificaron los registros con ID de nodo 1, 2 y 4. El formato JSON con contenido completo se vería así
{
"data": [
< DATOS MODIFICADOS EN JSON >
]
"apname": "< NOMBRE DE CUENTA >",
"path": "< NOMBRE DE RUTA >",
"sheetIndex": <ÍNDICE DE HOJA >,
"eventType": "< TIPO DE EVENTO CREAR/ACTUALIZAR/ELIMINAR >"
}
Para garantizar que la solicitud de Webhook realmente proviene de Ragic y que su contenido no ha sido manipulado, los Webhooks configurados como "Enviar contenido completo del registro modificado" incluirán una firma en la solicitud. Después de recibir el Webhook, puedes usar la clave pública que proporcionamos para verificar la firma. Si la verificación falla, significa que la solicitud pudo haber sido manipulada, y se recomienda rechazar el procesamiento.
1.1. Extrae la propiedad data de la solicitud del Webhook. (La propiedad data debe estar en formato JSONArray) 1.2. Serialízala en una cadena JSON con claves ordenadas alfabéticamente, sin indentación y sin saltos de línea. En otras palabras, "para cada objeto en el JSONArray, reordena todos los campos alfabéticamente, luego genera como una sola línea JSON".
// Antes de la conversión (propiedad data original):
[
{
"1001030":"banana",
"1001029":"apple"
}
]
// Después de la conversión (string-to-sign):
[{"1001029":"apple","1001030":"banana"}]
Nota: Si el método de serialización es inconsistente con el nuestro, la verificación de la firma fallará.
2.1. Extrae la propiedad signature de la solicitud del Webhook. 2.2. Descarga la clave pública (ver "Obtener Clave Pública"). 2.3. Usa una herramienta de verificación que soporte SHA256withRSA.
2.4. Si la verificación es exitosa, significa que la solicitud proviene de Ragic y su contenido no ha sido manipulado.
Proporcionamos dos formas para obtener la clave pública. Elige la que mejor se adapte a tu caso de uso:
Se recomienda almacenar en caché la clave pública en tu servidor y solo volver a descargarla al inicio.