REST API, AccessKey and scheduling
Bridge is driven through a REST API authenticated by an AccessKey and SecretKey pair issued by a system administrator. This page documents the credential model, the scheduling modes an external orchestrator can use, the hard limits that shape automation design, and the other integration surfaces to plan around.
Docs · Integration and automation · Updated 2026-11-03 · Applies to current Bridge releases
Bridge exposes a REST API authenticated with an AccessKey and SecretKey pair that a system administrator issues to users approved for integration. API-triggered execution is one of ten scheduling modes — manual, per-second, per-minute, daily, weekly, monthly, quarterly, yearly, real-time and API — so an external orchestrator can start a job without taking ownership of its schedule.
Credential model
API calls are authenticated with an AccessKey and SecretKey pair. AccessKeys are issued by a system administrator to the users who are approved to integrate, so a key carries the permissions of the user it was issued to. Pair the key with a dedicated integration account holding the narrowest role that can run the required jobs, rather than issuing a key to an administrator.
| Credential | Issued by | What it establishes | Handling rule |
|---|---|---|---|
| AccessKey | System administrator, to users approved for integration | The identity of the calling account | Treat as an identifier, not a secret |
| SecretKey | Paired with its AccessKey; displaying it requires re-entering the user's password | Possession of the key | Hold in a secret manager, never in job definitions or repositories |
| Regeneration | The generate action on the credential page replaces the pair | The previous key stops being the current one | Rotate on staff change and on a fixed schedule |
Field-level endpoint parameters are versioned with the product and ship in the release package, because paths change between releases while the model below does not. This page documents the part that stays stable: who can call, what can be triggered, and which operations the API cannot perform.
Scheduling modes
A job is a task that runs on a schedule. Bridge supports ten scheduling modes, and the mode is a property of the job rather than of the caller — which is why an API-triggered run inherits the job's retry and timeout settings.
| Mode | Trigger | Validity period | Typical use |
|---|---|---|---|
| Manual | Operator action in the console | Not applicable | Ad-hoc backfill and troubleshooting |
| Per-second | Interval | Not supported | High-frequency ingestion |
| Per-minute | Interval | Not supported | Near-real-time micro-batches |
| Daily | Calendar | Supported | Nightly warehouse loads |
| Weekly | Calendar | Supported | Weekly consolidation |
| Monthly | Calendar | Supported | Period close |
| Quarterly | Calendar | Supported | Regulatory reporting cycles |
| Yearly | Calendar | Supported | Annual snapshots |
| Real-time | Continuous; no trigger condition once set | Not applicable | Always-on replication |
| API-triggered | External call through the REST API | Not supported | Orchestrator-controlled runs |
Two scheduling behaviours are worth knowing before you design an orchestrator. Per-second and real-time schedules can be set to exclusive resource mode, which reserves capacity so the job starts on time — at the cost of delaying other jobs. And retry, validity period and timeout alerts are configured on the schedule itself, so they belong in your go-live checklist, not in a later hardening pass.
Limits that shape automation design
| Limit | Value | How to design around it |
|---|---|---|
| Jobs per single-node deployment | 512 | Consolidate related transformations into fewer jobs, or move to the integrated form |
| Jobs in the integrated form | 512 × N, where N is the number of dxt-core instances and N ≤ 10 | Scale horizontally by adding instances, up to the ten-instance ceiling |
| Validity period on per-second, per-minute and API schedules | Not supported | Put start and stop logic in the orchestrator instead |
| Exclusive resource mode | Available on per-second and real-time schedules | Reserve it for latency-critical jobs; it delays everything else |
| Retry, validity period and timeout alerts | Configured per schedule | Set them at creation time; a retry policy added after an incident is a guess |
What the API can and cannot change
The API is not a second, more powerful console. Several operations are deliberately blocked, and knowing which ones prevents building automation that fails halfway.
| Operation | Permitted | Constraint that applies |
|---|---|---|
| Trigger a job run | Yes — API is a scheduling type | The run inherits the job's retry, timeout and concurrency settings |
| Create a transformation from an external system | Yes | The result is an internal transformation, which cannot be edited or deleted in the console |
| Edit a running transformation, or one referenced by a running job | No | Stop the transformation and the jobs that reference it first |
| Delete a transformation referenced by any job | No | Delete the referencing jobs before the transformation |
| Promote definitions between environments | Yes | Export and import a password-protected archive, described below |
Promoting definitions between environments
Promotion between environments runs through password-protected archives rather than a direct push. The mechanics are specific enough to plan around:
- Export. Select the transformations or jobs, choose export from the more-actions menu, set an archive password, and the browser downloads a
.zipfile. Export-all is available for a full environment snapshot. - Import. Choose import, enter the archive password and upload the
.zip. Imported transformations arrive in a ready state. - Incremental transformations. These are deactivated on import. The first run sets the incremental start position from the current table position, so imported incrementals do not replay history unless you design them to.
- Name collisions. A resource whose name already exists is skipped rather than overwritten. When you then import a job, references are re-established against the existing resource of that name.
The last rule is the important one for pipelines run in both directions: an import is additive and never a merge. If you are promoting a changed definition into an environment that already has one, the existing resource wins and your change is silently skipped — so diff by hand or rename before import.
Other integration surfaces
Automation does not only run through the API. Three surfaces are documented here, and each one is worth exercising in the same POC as the API itself:
| Surface | What it covers | Where to find it |
|---|---|---|
| REST API | Programmatic creation and triggering, authenticated with the AccessKey and SecretKey pair described above | Credentials issued by your system administrator |
| Job templates | Bulk creation of jobs from a template, plus template management, data import and export, and file validation | The tools section of the console |
| Archive export and import | Password-protected .zip archives for transformations and jobs, plus CSV export of jobs and their reference relationships | The more-actions menu on the job and transformation lists |
Whatever the surface, the advice is the same: test promotion into a second environment before you depend on it. Environment promotion is where integration designs usually break, and archive import carries two behaviours — name-collision skipping and incremental deactivation — that quietly change what "promoted" means.
Audit trail
The operation log records who logged into the system, from which IP address, and what they then changed across connection management, transformation management and job management. Auditors can read every user's log; non-auditors see their own entries and their tenant's.
For automation this matters in one specific way: a key issued to an integration account produces entries attributable to that account, so a misbehaving orchestrator is visible as a distinct actor rather than blended into a human operator's history.
API and automation questions
Which automation surfaces are documented?
Three: the REST API authenticated with an AccessKey and SecretKey pair, job templates for bulk creation and data import inside the console, and archive export and import for promotion between environments. Command-line and infrastructure-as-code tooling are release-dependent — confirm the exact surface for your build with your solutions engineer.
Can an API-triggered schedule have a validity period?
No. Per-second, per-minute and API-triggered schedules do not support a validity period. If a run must be bounded by dates, enforce that in the orchestrator.
How is the SecretKey protected?
Displaying the SecretKey requires re-entering the user's password, so an exposed AccessKey alone is not enough to authenticate. Rotate by generating a new pair from the credential page.
Can a transformation created through the API be edited later?
No. Transformations created internally by another function through the interface cannot be edited or deleted in the console. Design generated transformations to be replaced rather than patched.
What is the maximum number of jobs?
512 in a single-node deployment. The integrated form supports 512 × N, where N is the number of dxt-core instances and N is at most 10.
Does the API inherit the permissions of the user it was issued to?
Yes. AccessKeys are issued by a system administrator to users approved for integration, so grant a dedicated integration account the narrowest role that can run the required jobs.
Verify the interface in your own environment
Request API access for a trial deployment and run the scheduling and promotion paths against your own sources.
