BridgeStick

Documentación

Referencia de la API de datos

Tus propias herramientas leen las tablas de tus orígenes — o la copia de un destino, para no cargar el origen — por REST y WebSocket, con claves API que limitas, haces caducar y revocas. Cada valor llega exactamente como lo guarda el origen.

URL base y claves

Todas las rutas están bajo https://api.bridgestick.com/api/v1/data y llevan la clave en la cabecera Authorization (Bearer bsk_…). Crea una clave en Claves API → Nueva clave API: se muestra una sola vez, se guarda solo como hash y lee solo lo que se le concede — todos tus orígenes, los orígenes que marques o las tablas de las conexiones que marques — y solo orígenes que expusiste (Exponer vía API de datos).

  • Una clave puede caducar, y se puede revocar en cualquier momento; se muestra su último uso.
  • La concesión de una conexión abre solo las rutas de esa conexión — sus tablas, en el origen o en un destino — nunca las demás tablas del origen.
  • Una clave lee solo su propio espacio: un slug nombra uno de tus orígenes o conexiones.
  • Una clave conoce el nombre, el tipo y la salud de un origen — nunca su equipo, su usuario ni un error que nombre tu red.

Rutas

Las rutas de la API de datos
RutaMétodoQué responde
/sourcesGETLos orígenes que la clave puede leer
/sources/{slug}/tablesGETSus tablas y campos
/sources/{slug}/tables/rowsGETUna página de filas: ?table=&fields=&cursor=&limit= (límite hasta 10.000)
/sources/{slug}/tables/previewGETUna muestra pequeña: ?table=&limit= (hasta 200), servida desde una caché (refresh=true vuelve a leer)
/sources/{slug}/healthGETSi el origen responde
/connectionsGETLas conexiones que la clave puede leer, con su estado
/connections/{slug}GETUna conexión
/connections/{slug}/tablesGETLas tablas que sincroniza la conexión
/connections/{slug}/tables/rowsGETUna página de filas de una tabla sincronizada — en el origen, o como la guarda un destino (abajo)

El nombre de una tabla siempre va en el parámetro ?table=, nunca en la ruta: los nombres de SAP como /CEEIS/RU_DEBTS pasan tal cual.

Una página de filas
curl -H "Authorization: Bearer bsk_…" "https://api.bridgestick.com/api/v1/data/sources/sap-prod/tables/rows?table=MARA&fields=MATNR,MTART&limit=1000"

Paginación

Una página trae rows, row_count y next_cursor: pásalo como cursor para la página siguiente; null indica la última. Una tabla con clave se lee en orden de clave, así cada fila llega exactamente una vez aunque cambie mientras tanto.

  • Una tabla sin clave se lee en una pasada, entregada página a página (cursores one:), abierta hasta 30 minutos entre páginas.
  • Pedir la misma página dos veces (una petición reintentada) responde la misma página.
  • Las sincronizaciones nunca cuentan contra tus lecturas, y tus lecturas nunca frenan una sincronización.
Todas las páginas, en Python
import requestsurl = "https://api.bridgestick.com/api/v1/data/sources/sap-prod/tables/rows"headers = {"Authorization": "Bearer bsk_…"}params = {"table": "MARA", "limit": 10000, "decimals": "string"}while True:    page = requests.get(url, headers=headers, params=params, timeout=120).json()    for row in page["rows"]:        print(row)    if page["next_cursor"] is None:        break    params["cursor"] = page["next_cursor"]

Leer la copia de un destino

Mediante una conexión, from=destination lee la tabla como la guarda uno de sus destinos — para no cargar el origen — con destination=<slug> (se puede omitir cuando solo uno se puede leer). El interruptor API de datos del destino debe estar activo, en su formulario. Con fallback=source, si un destino no puede servir la primera página — inaccesible, con fallos o sin la tabla todavía — la sirve el origen.

  • Cada página dice dónde se leyó: served_from (tipo, slug, nombre, tabla y, para un destino, cuándo se sincronizó por última vez).
  • Un cursor vale para el extremo que lo emitió; una sincronización que vuelve a publicar la tabla entre dos páginas termina la lectura (400: empiézala de nuevo).
Desde la copia de un destino, con el origen de respaldo
curl -H "Authorization: Bearer bsk_…" "https://api.bridgestick.com/api/v1/data/connections/sap-to-warehouse/tables/rows?table=MARA&from=destination&fallback=source"

Valores

Cada valor llega en una forma exacta, sea cual sea el origen: un decimal es un número JSON con todos los dígitos que guarda el origen (1234.5600) — léelo con un analizador que respete los decimales, o pide decimals=string para recibir esos dígitos como texto; un flotante es un número JSON; las fechas y horas, ISO 8601; los datos binarios, Base64. El campo types de cada página nombra el tipo de cada columna (decimal, number, string, …).

Errores y límites

Un error es un objeto JSON con un campo detail.

Códigos de error
CódigoQué significa
400Una petición o un cursor inválidos, un campo que la tabla no tiene, o uno que la conexión no sincroniza
401Una clave ausente, desconocida, revocada o caducada — o su usuario desactivado
403Un origen fuera del alcance de la clave, no expuesto, o una conexión desactivada
404No existe ese origen, conexión o tabla (el catálogo propio de la base nunca se lee)
429Por encima de un límite de la clave — 600 peticiones por minuto, 1.000.000 de filas por minuto, 4 lecturas en vuelo (8 por origen) —: espera Retry-After segundos
502Falló el origen o el destino (con su propio código de error, cuando lo tiene)

Eventos en vivo

Un WebSocket transmite lo que cambia, en el momento: wss://api.bridgestick.com/ws?key=bsk_…&topics=health,jobs — los eventos de una clave son la salud (health) de sus orígenes y los trabajos (jobs) de sus sincronizaciones, de los orígenes que puede leer. Revocar la clave, o que caduque, cierra la transmisión.

Conecta tus datos sin que nada cambie por el camino.

Crea tu espacio, conecta un origen y ejecuta tu primera sincronización — gratis en acceso anticipado. Si tus sistemas son privados, un agente está a un comando de distancia.