Ragic HTTP API (3.0)

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.

Introducción

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.

Interfaz de Servicio Web Ragic REST

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

Usar cURL para acceder a API HTTP

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.

Usar Postman para Acceder a API HTTP

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:

  1. El menú desplegable que enumera todos los métodos HTTP para seleccionar
  2. La URL de destino a la que se envía la solicitud HTTP
  3. El botón de acción que envía la solicitud HTTP
  4. Atributos asociados con la solicitud HTTP

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.

Encontrar el ID de un Campo

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.

Encontrar los Puntos Finales API (Endpoints)

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

Límites de 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.

Autenticación Básica HTTP con Clave API Ragic

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"

Autenticación de Contraseña

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"]
  }
}

Autenticación por contraseña

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.

query Parameters
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

Responses

Response samples

Content type
abc123def456

Devolver Datos en Formato JSON

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.

Listar registros

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.


Consultar Progreso de Tarea

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.

Authorizations:
basicAuthapiKey
path Parameters
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)

query Parameters
where
Array of strings
Examples:
  • where=1000001,eq,Active - Filtro de igualdad
  • where=1000001,eq,Active&where=1000002,gt,100 - Filtros múltiples (AND)
  • where=1000001,lk,Corp - Contiene (LIKE)
  • where=1000002,range,2024/01/01~2024/12/31 - Rango de fechas

Condición de filtro con argumentos delimitados por comas. Formato: idCampo,operador,valor

Operadores disponibles:

  • eq - Igual a
  • regex - Expresión regular
  • gte - Mayor o igual que
  • lte - Menor o igual que
  • gt - Mayor que
  • lt - Menor que
  • like - Contiene
  • eqeq - Coincidencia exacta por ID interno de registro (avanzado; raramente necesario)

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: yyyy/MM/dd o yyyy/MM/dd HH:mm:ss

Filtrar valores vacíos: deja el tercer argumento en blanco, ej., where=2000127,eq,

Comas en valores de filtro requieren codificación URL (%2C)

Doble codificación URL: Si un valor de filtro contiene % seguido de caracteres hexadecimales (ej., %20), el % debe codificarse doblemente como %25 para evitar que el servidor lo interprete como un carácter ya codificado. Por ejemplo, para buscar el texto literal 100%, codifícalo como 100%2525.

Ejemplo: where=2000123,eq,Alphabet Inc.

fts
string
Example: fts=search term

Búsqueda de texto completo para coincidencia de palabras clave en todos los campos buscables.

Ejemplo: fts=término de búsqueda

limit
string
Examples:
  • limit=50 - Primeros N registros
  • limit=100,50 - Omitir y obtener

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: limit=50 - Devolver 50 registros

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): limit=8&offset=5

order
string
Examples:
  • order=1000001,ASC - Orden ascendente
  • order=1000001,DESC - Orden descendente

Orden de clasificación. Formato: idCampo,ASC o idCampo,DESC

Por defecto, los datos se ordenan por fecha y hora de creación, del más antiguo al más reciente.

Ejemplo: order=800236,DESC - Ordenar por campo 800236 en orden descendente

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 reverse=true

Ejemplo: reverse=true

subtables
string
Default: "1"

Incluir datos de subtabla en la respuesta.

  • 1 (predeterminado) - Incluir subtablas
  • 0 - Excluir subtablas (respuesta más rápida para conjuntos de datos grandes)
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.

  • No establecido (predeterminado) - Datos completos del registro (todos los campos)
  • 1 - Solo campos de vista de lista
naming
string
Enum: "EID" "FNAME"

Elegir cómo se nombran los campos en las claves JSON de la respuesta.

  • EID (predeterminado) - Usar IDs numéricos de campo (ej., "1000001": "Empresa Ejemplo"). Recomendado para integraciones porque los IDs nunca cambian.
  • FNAME - Usar nombres de campo legibles (ej., "Nombre del Cliente": "Empresa Ejemplo"). Útil para depuración, pero puede fallar si los nombres de campo contienen caracteres especiales o se renombran.
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.

  • No establecido (predeterminado) - Solo valores de campo
  • 1 - Incluir también _create_date, _create_user, _update_date, _update_user, _seq (número secuencial autogenerado)
ignoreMask
string

Algunos campos en Ragic pueden configurarse para enmascarar datos sensibles (ej., mostrar un número de teléfono como ***-**1234). Este parámetro revela los valores completos sin enmascarar. Requiere permisos apropiados.

  • No establecido (predeterminado) - Aplicar enmascaramiento de campo
  • 1 - Mostrar valores sin enmascarar
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.

  • No establecido (predeterminado) - Aplicar filtros fijos
  • true - Ignorar filtros fijos
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 where complejos.

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.

  • No establecido (predeterminado) - No aplicar filtro predeterminado
  • 1 - Aplicar el filtro predeterminado
bbcode
string
Value: "true"

Los campos de texto enriquecido de Ragic almacenan formato en sintaxis BBCode (ej., [b]negrita[/b]). Por defecto, la API convierte esto a HTML. Usa este parámetro para obtener el BBCode sin procesar.

  • No establecido (predeterminado) - Devolver contenido formateado en HTML
  • true - Devolver formato BBCode sin procesar
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.

  • No establecido (predeterminado) - Excluir comentarios
  • 1 - Incluir comentarios en la respuesta
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.

  • No establecido (predeterminado) - Excluir historial
  • 1 - Incluir historial de modificaciones
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.

  • No establecido (predeterminado) - Excluir información de aprobación
  • 1 - Incluir estado e 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.

  • No establecido (predeterminado) - Excluir conversación
  • 1 - Incluir mensajes de conversación
tz
number
Example: tz=-8

Desfase de zona horaria en horas para campos de fecha/hora.

Ejemplo: tz=-5 para UTC-5 (Hora del Este)

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: YYYY-MM-DD

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: version=2025-01-01

v
integer
Enum: 1 2 3

Número de versión de API heredado. Usa el parámetro version en su lugar para nuevas integraciones.

  • 1 - Versión 1
  • 2 - Versión 2
  • 3 - Versión 3 (última versión heredada)
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: GET /demo/sales/1?api&taskId=550e8400-e29b-41d4-a716-446655440000

api
string

Clave API para autenticación (alternativa a HTTP Basic Auth).

Ejemplo: api=TU_CLAVE_API

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: callback=testFunc

La respuesta se envolverá así: testFunc({"17": {"Account Name": "Dunder Mifflin", ...}});

Responses

Response samples

Content type
application/json
Example
{
  • "12345": {
    },
  • "12346": {
    }
}

Obtener un registro

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"
Authorizations:
basicAuthapiKey
path Parameters
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)

query Parameters
subtables
string
Default: "1"

Incluir datos de subtabla en la respuesta.

  • 1 (predeterminado) - Incluir subtablas
  • 0 - Excluir subtablas (respuesta más rápida para conjuntos de datos grandes)
naming
string
Enum: "EID" "FNAME"

Elegir cómo se nombran los campos en las claves JSON de la respuesta.

  • EID (predeterminado) - Usar IDs numéricos de campo (ej., "1000001": "Empresa Ejemplo"). Recomendado para integraciones porque los IDs nunca cambian.
  • FNAME - Usar nombres de campo legibles (ej., "Nombre del Cliente": "Empresa Ejemplo"). Útil para depuración, pero puede fallar si los nombres de campo contienen caracteres especiales o se renombran.
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.

  • No establecido (predeterminado) - Solo valores de campo
  • 1 - Incluir también _create_date, _create_user, _update_date, _update_user, _seq (número secuencial autogenerado)
ignoreMask
string

Algunos campos en Ragic pueden configurarse para enmascarar datos sensibles (ej., mostrar un número de teléfono como ***-**1234). Este parámetro revela los valores completos sin enmascarar. Requiere permisos apropiados.

  • No establecido (predeterminado) - Aplicar enmascaramiento de campo
  • 1 - Mostrar valores sin enmascarar
bbcode
string
Value: "true"

Los campos de texto enriquecido de Ragic almacenan formato en sintaxis BBCode (ej., [b]negrita[/b]). Por defecto, la API convierte esto a HTML. Usa este parámetro para obtener el BBCode sin procesar.

  • No establecido (predeterminado) - Devolver contenido formateado en HTML
  • true - Devolver formato BBCode sin procesar
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.

  • No establecido (predeterminado) - Excluir comentarios
  • 1 - Incluir comentarios en la respuesta
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.

  • No establecido (predeterminado) - Excluir historial
  • 1 - Incluir historial de modificaciones
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.

  • No establecido (predeterminado) - Excluir información de aprobación
  • 1 - Incluir estado e 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.

  • No establecido (predeterminado) - Excluir conversación
  • 1 - Incluir mensajes de conversación
tz
number
Example: tz=-8

Desfase de zona horaria en horas para campos de fecha/hora.

Ejemplo: tz=-5 para UTC-5 (Hora del Este)

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: YYYY-MM-DD

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: version=2025-01-01

v
integer
Enum: 1 2 3

Número de versión de API heredado. Usa el parámetro version en su lugar para nuevas integraciones.

  • 1 - Versión 1
  • 2 - Versión 2
  • 3 - Versión 3 (última versión heredada)
api
string

Clave API para autenticación (alternativa a HTTP Basic Auth).

Ejemplo: api=TU_CLAVE_API

Responses

Response samples

Content type
application/json
{
  • "12345": {
    }
}

Condiciones de Filtro

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.

  1. El ID de campo que deseas filtrar.
  2. El operador en la forma de entero para especificar tu filtro de operación. La lista de operadores se muestra en la parte inferior.
  3. El valor con el que deseas filtrar el campo. Recuerda, si tu valor puede incluir un caracter de coma “,” por favor usa codificación de URL o usa %2C para evitar colisiones.

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:

  1. 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.

  2. 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.

Limitar Número de Registros / Paginado

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

Clasificar y Ordenar

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

Función Callback (JSONP)

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",

 ...

 ...

});

Nombrar Campos

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

Otros Parámetros HTTP GET

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. |

Recuperar Archivos e Imágenes Adjuntas

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.

Obtener archivos, imágenes y adjuntos

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.

Authorizations:
basicAuthapiKey
query Parameters
a
required
string
Example: a=demo
f
required
string
Example: f=Ni92W2luv@My_Picture.jpg

Responses

Response samples

Content type
application/json
Example
{
  • "status": "ERROR",
  • "errorCode": 104,
  • "msg": "The record you are updating is not found."
}

Obtener HTML, PDF, Excel, Combinación de Correspondencia

Por ejemplo, si tienes un URL de un registro como el siguiente

https://www.ragic.com/demo/sales/1/41

1. Print Friendly

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

2. PDF o versión Excel

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

3. Combinación de Correspondencia

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>

4. Reporte de Impresión Personalizada

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 versión HTML para imprimir

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
Authorizations:
basicAuthapiKey
path Parameters
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)

Responses

Obtener versión PDF

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
Authorizations:
basicAuthapiKey
path Parameters
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)

Responses

Obtener versión Excel

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
Authorizations:
basicAuthapiKey
path Parameters
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)

Responses

Obtener documento de combinación de correspondencia

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
Authorizations:
basicAuthapiKey
path Parameters
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)

query Parameters
cid
required
integer
Example: cid=1

Responses

Crear un Nuevo Registro

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

Crear un nuevo registro

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}
  }
}
Authorizations:
basicAuthapiKey
path Parameters
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)

query Parameters
doFormula
string
Default: "false"
Enum: "true" "false"

Ejecutar fórmulas después de guardar.

  • false (predeterminado para API) - Omitir ejecución de fórmulas
  • true - Ejecutar fórmulas (puede afectar el rendimiento)
doDefaultValue
string
Default: "false"
Enum: "true" "false"

Aplicar valores predeterminados para campos vacíos.

  • false (predeterminado para API) - Omitir valores predeterminados
  • true - Aplicar valores predeterminados configurados
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.

  • false (predeterminado para API) - Omitir enlazar y cargar
  • true - Ejecutar enlazar y cargar para todos los campos enlazados
  • first - Ejecutar enlazar y cargar solo para el primer campo enlazado
doWorkflow
string
Default: "true"
Enum: "true" "false"

Activar acciones de flujo de trabajo (pre-flujo, post-flujo).

  • true (predeterminado) - Activar flujos de trabajo
  • false - Omitir ejecución de flujos de trabajo
notification
string
Default: "true"
Enum: "true" "false"

Enviar notificaciones (correo electrónico, notificaciones de aprobación).

  • true (predeterminado) - Enviar notificaciones
  • false - Omitir todas las notificaciones
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.

  • No establecido (predeterminado) - Solo valores de campo
  • 1 - Incluir también _create_date, _create_user, _update_date, _update_user, _seq (número secuencial autogenerado)
importData
string

Importar datos desde una URL a la hoja. Requiere privilegios de SYSAdmin.

Ejemplo: POST /demo/sales/1?api&importData

tz
number
Example: tz=-8

Desfase de zona horaria en horas para campos de fecha/hora.

Ejemplo: tz=-5 para UTC-5 (Hora del Este)

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: YYYY-MM-DD

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: version=2025-01-01

v
integer
Enum: 1 2 3

Número de versión de API heredado. Usa el parámetro version en su lugar para nuevas integraciones.

  • 1 - Versión 1
  • 2 - Versión 2
  • 3 - Versión 3 (última versión heredada)
api
string

Clave API para autenticación (alternativa a HTTP Basic Auth).

Ejemplo: api=TU_CLAVE_API

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: callback=testFunc

La respuesta se envolverá así: testFunc({"17": {"Account Name": "Dunder Mifflin", ...}});

Request Body schema:
required
additional property
string or number or object or Array of strings

Responses

Request samples

Content type
Example
{
  • "1000001": "New Customer",
  • "1000002": "2024-01-15",
  • "1000003": "Active"
}

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "rv": "12345",
  • "ragicId": 12345
}

Modificar un Registro

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>

Modificar un registro

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]

Authorizations:
basicAuthapiKey
path Parameters
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)

query Parameters
doFormula
string
Default: "false"
Enum: "true" "false"

Ejecutar fórmulas después de guardar.

  • false (predeterminado para API) - Omitir ejecución de fórmulas
  • true - Ejecutar fórmulas (puede afectar el rendimiento)
doDefaultValue
string
Default: "false"
Enum: "true" "false"

Aplicar valores predeterminados para campos vacíos.

  • false (predeterminado para API) - Omitir valores predeterminados
  • true - Aplicar valores predeterminados configurados
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.

  • false (predeterminado para API) - Omitir enlazar y cargar
  • true - Ejecutar enlazar y cargar para todos los campos enlazados
  • first - Ejecutar enlazar y cargar solo para el primer campo enlazado
doWorkflow
string
Default: "true"
Enum: "true" "false"

Activar acciones de flujo de trabajo (pre-flujo, post-flujo).

  • true (predeterminado) - Activar flujos de trabajo
  • false - Omitir ejecución de flujos de trabajo
notification
string
Default: "true"
Enum: "true" "false"

Enviar notificaciones (correo electrónico, notificaciones de aprobación).

  • true (predeterminado) - Enviar notificaciones
  • false - Omitir todas las notificaciones
checkLock
string
Value: "true"

Verificar si el registro está bloqueado antes de una actualización, y no editar el registro si está bloqueado.

  • No establecido (predeterminado) - Actualizar independientemente del estado de bloqueo
  • true - Verificar estado de bloqueo antes de actualizar
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: POST /demo/sales/1/12345?api&lock

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: POST /demo/sales/1/12345?api&unlock

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: POST /demo/sales/1/12345?api&bId=btn_001

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.

  • No establecido (predeterminado) - Solo valores de campo
  • 1 - Incluir también _create_date, _create_user, _update_date, _update_user, _seq (número secuencial autogenerado)
tz
number
Example: tz=-8

Desfase de zona horaria en horas para campos de fecha/hora.

Ejemplo: tz=-5 para UTC-5 (Hora del Este)

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: YYYY-MM-DD

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: version=2025-01-01

v
integer
Enum: 1 2 3

Número de versión de API heredado. Usa el parámetro version en su lugar para nuevas integraciones.

  • 1 - Versión 1
  • 2 - Versión 2
  • 3 - Versión 3 (última versión heredada)
api
string

Clave API para autenticación (alternativa a HTTP Basic Auth).

Ejemplo: api=TU_CLAVE_API

Request Body schema:
required
additional property
string or number or object or Array of strings

Responses

Request samples

Content type
Example
{
  • "1000003": "Completed",
  • "1000004": "2024-01-20"
}

Response samples

Content type
application/json
{
  • "status": "SUCCESS",
  • "rv": "string",
  • "ragicId": 0,
  • "msg": "string",
  • "warning": "string"
}

Crear/Actualizar Parámetros

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

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

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"
Authorizations:
basicAuthapiKey
path Parameters
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)

query Parameters
version
string
Example: version=2025-01-01

Versión de API usando versionado basado en fecha (recomendado). Formato: YYYY-MM-DD

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: version=2025-01-01

v
integer
Enum: 1 2 3

Número de versión de API heredado. Usa el parámetro version en su lugar para nuevas integraciones.

  • 1 - Versión 1
  • 2 - Versión 2
  • 3 - Versión 3 (última versión heredada)
api
string

Clave API para autenticación (alternativa a HTTP Basic Auth).

Ejemplo: api=TU_CLAVE_API

Responses

Response samples

Content type
application/json
{
  • "status": "SUCCESS"
}

Cargar Archivos e Imágenes

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í.

Comentario

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.

Importar Datos Desde URL

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."
}

Bloquear/Desbloquear

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
}

Ejecutar Botón de Acción

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 metadatos de botones de acción

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"}
]
Authorizations:
basicAuthapiKey
path Parameters
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)

query Parameters
category
string
Value: "massOperation"
api
string

Clave API para autenticación (alternativa a HTTP Basic Auth).

Ejemplo: api=TU_CLAVE_API

Responses

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

Respuesta de Error de Solicitud API

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.

Operaciones Masivas

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 >
  • recordId en la cadena de consulta, recordId=< recordId >. p. ej. recordId=1&recordId=2
https://www.ragic.com/< cuenta >/< carpeta de pestañas >/< índice de hoja >/massOperation/< tipo de operación masiva >?api&recordId=< recordId >

Formato de Solicitud

  • Las API de operaciones masivas son operaciones sincronizadas.
    • Es necesario modificar www a na3, ap5 o eu2 en la URL de la API según la URL de la cuenta de la base de datos de Ragic.
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 >
}

Bloqueo Masivo

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"
}

Aprobación Masiva

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"
}

Botón de Acción Masiva

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 >
}
]
}

Actualización Masiva

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:

  • Correo electrónico (domainId: 1)
  • Nombre completo (domainId: 4)
  • Registro del sistema (domainId: 10)
  • Estado (domainId: 31)
  • Interno/Externo (domainId: 43)

La actualización masiva de grupos Ragic (domainId: 3) debe seguir las siguientes reglas:

  • El valor de la clave "valor" debe escribirse en una matriz JSON, que tiene cadenas como contenido.
  • Todos los caracteres especiales deben usarse con el carácter de escape (\), especialmente " debe usarse como ".
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"
}
  • En Usuarios internos, es necesario tener al menos un usuario cuyo Grupo Ragic sea SYSAdmin.
    • En Usuarios externos, el nombre del Grupo Ragic de los usuarios debe comenzar con "x-" o "X-".

Búsqueda y Reemplazo Masivo

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"
}

Seguimiento del Progreso de las Tareas

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 operación masiva

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:

massUpdate

Actualizar valores de campo en múltiples registros.

{
  "1000001": "Nuevo Valor",
  "1000002": "2024/06/01"
}

massSearchReplace

Buscar texto en un campo y reemplazarlo en múltiples registros.

{
  "fieldId": "1000001",
  "search": "texto antiguo",
  "replace": "texto nuevo"
}

massLock

Bloquear o desbloquear múltiples registros.

{"lock": true}

massApproval

Aprobar o rechazar múltiples registros a la vez.

{"action": "approve"}

massActionButton

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.

Authorizations:
basicAuthapiKey
path Parameters
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"
query Parameters
where
Array of strings
Examples:
  • where=1000001,eq,Active - Filtro de igualdad
  • where=1000001,eq,Active&where=1000002,gt,100 - Filtros múltiples (AND)
  • where=1000001,lk,Corp - Contiene (LIKE)
  • where=1000002,range,2024/01/01~2024/12/31 - Rango de fechas

Condición de filtro con argumentos delimitados por comas. Formato: idCampo,operador,valor

Operadores disponibles:

  • eq - Igual a
  • regex - Expresión regular
  • gte - Mayor o igual que
  • lte - Menor o igual que
  • gt - Mayor que
  • lt - Menor que
  • like - Contiene
  • eqeq - Coincidencia exacta por ID interno de registro (avanzado; raramente necesario)

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: yyyy/MM/dd o yyyy/MM/dd HH:mm:ss

Filtrar valores vacíos: deja el tercer argumento en blanco, ej., where=2000127,eq,

Comas en valores de filtro requieren codificación URL (%2C)

Doble codificación URL: Si un valor de filtro contiene % seguido de caracteres hexadecimales (ej., %20), el % debe codificarse doblemente como %25 para evitar que el servidor lo interprete como un carácter ya codificado. Por ejemplo, para buscar el texto literal 100%, codifícalo como 100%2525.

Ejemplo: where=2000123,eq,Alphabet Inc.

recordId
Array of integers
api
string

Clave API para autenticación (alternativa a HTTP Basic Auth).

Ejemplo: api=TU_CLAVE_API

Request Body schema: application/json
required
property name*
additional property
any

Responses

Request samples

Content type
application/json
Example
{
  • "1000001": "New Value",
  • "1000002": "2024/06/01"
}

Response samples

Content type
application/json
{
  • "taskId": "550e8400-e29b-41d4-a716-446655440000"
}

¿Qué es un Webhook?

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.

Webhook en Ragic

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:

  1. Se activará al crear, actualizar y eliminar.
  2. No está completamente sincronizado, podría haber un ligero retraso si la carga está elevada.
  3. Los cambios no incluirán los cambios de hojas relacionadas tales como versiones múltiples.

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 >"
}

Firma de Webhook

Propósito de la Firma

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.

Proceso de Verificación

1. Obtener la cadena a firmar (string-to-sign)

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. Verificar la firma

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.

  1. Convierte la cadena a firmar en un array de bytes UTF-8
  2. Verifica la firma usando la clave pública y el algoritmo

2.4. Si la verificación es exitosa, significa que la solicitud proviene de Ragic y su contenido no ha sido manipulado.

Obtener Clave Pública

Proporcionamos dos formas para obtener la clave pública. Elige la que mejor se adapte a tu caso de uso:

  1. Obtén la cadena de clave pública directamente llamando a: https://www.ragic.com/api/http/getWebhookSignaturePublicKey.jsp?type=string
  2. Haz clic aquí para descargar el archivo PEM.

Se recomienda almacenar en caché la clave pública en tu servidor y solo volver a descargarla al inicio.

Otras Notas

  • Si estás usando la versión de Servidor Privado, o si "Enviar contenido completo del registro modificado" no está habilitado, el Webhook no soportará verificación de firma.
    • Asegúrate de que tu programa maneje la serialización JSON de manera consistente; de lo contrario, ocurrirán errores de verificación.