bitlync Docs

Quickstart

From key to first write.

This is the sandbox. Fixture data. Not a customer tenant.

MSP first connect for Halo or ConnectWise (company import from PSA, bulk unmatched, contacts list/match, boards): Connect checklist. Production badge OFF.

Copy the curl. You should get tickets back with sandbox: true.

Send the key as X-API-Key. Host is bitlync-sandbox-demo.onrender.com.

BITLYNC_BASE
export BITLYNC_BASE=https://bitlync-sandbox-demo.onrender.com
auth
X-API-Key: blk_b27562d334f68281b783571dd8aa2522f2dddb273fd30311

tenant_id: sandbox-mainstreet
# or sandbox-northline

sandbox-mainstreet and sandbox-northline are sandbox fixtures (PSA and RMM seed data). They are not production tenants.

GET tickets

GET tickets
curl -sS -H "X-API-Key: blk_b27562d334f68281b783571dd8aa2522f2dddb273fd30311" \
  https://bitlync-sandbox-demo.onrender.com/tenants/sandbox-mainstreet/tickets

Reads include vendor.native. .raw is the same payload and is read-only. Writes take optional vendor_native.

POST tickets

dry_run defaults true. Commit by sending dry_run: false plus an idempotency_key. The same key on a retry returns idempotent_replay.

POST /tenants/{tenant_id}/tickets

Header X-API-Key: blk_….

body · dry_run then commit

{
"summary": "Printer offline",
"dry_run": true,
"idempotency_key": "ticket-1"
}
then commit
{ "dry_run": false, "idempotency_key": "ticket-1" }

Register a webhook

Outbound Bitlync→ISV events. One register route for ticket / device / company kinds (grants required). Save secret once; verify Bitlync-Signature. Details: Webhooks.

register webhook
curl -sS -X POST "$BITLYNC_BASE/tenants/sandbox-mainstreet/ticket-events/webhook" \
  -H "X-API-Key: $BITLYNC_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/bitlync/hooks"}'

Sandbox day-one proof is registration plus GET /tenants/{id}/connections/events?kind=…. Live push needs a reachable HTTPS URL — example.com will not receive events.

GET audit

GET audit
curl -s "$BITLYNC_BASE/tenants/sandbox-mainstreet/audit" \
  -H "X-API-Key: $BITLYNC_KEY"

Sandbox reset

POST /sandbox/reset with {"tenant_id":"sandbox-mainstreet"}. Clears audit, re-syncs fixtures, writes one sandbox_reset event. Production tenants return 422 request_invalid.

POST /sandbox/reset
curl -s -X POST "$BITLYNC_BASE/sandbox/reset" \
  -H "X-API-Key: $BITLYNC_KEY" \
  -H "Content-Type: application/json" \
  -d '{"tenant_id":"sandbox-mainstreet"}'

MCP

Same CanonicalService as REST. Four tools: list_tickets, list_devices, list_installed_applications, route_finding. route_finding is the write. Use $BITLYNC_BASE.

MCP config
{
  "mcpServers": {
    "bitlync": {
      "url": "$BITLYNC_BASE",
      "headers": {
        "X-API-Key": "$BITLYNC_KEY"
      }
    }
  }
}
agent prompt
Use the Bitlync MCP. Tenant sandbox-mainstreet. Send X-API-Key.

Read with list_tickets, list_devices, or list_installed_applications.
The write tool is route_finding. Do not create tickets over MCP.
dry_run ticket create is REST-only.