Gateway ImageTrend
Sign in
Gateway ImageTrend
Set up two-factor authentication

Two-factor is required. Scan this QR code with the Google Authenticator app (it appears as Gateway ImageTrend (your username)), then enter the current 6-digit code.

2FA QR code

Can't scan? Enter this key manually:

Gateway ImageTrend
Two-factor authentication

Enter the current 6-digit code from your Google Authenticator app.

Gateway ImageTrend
Facility Launcher
πŸ”
Clients & Facilities
Powered by Epicle, Inc
Admin Console
⬇ Download desktop app

Select a facility to manage

Pick a location from the left sidebar to view its details, or open Settings to create clients, facilities and users.

Users launch & sign in to these facilities from the desktop app.

Location
Site URL
Username
TOTP / 2FA

Settings

Users

Admin creates Gateway ImageTrend users. Each user signs in and manages only their own clients, facilities and ImageTrend logins.

    Login Site

    The site every facility opens for sign-in. Individual facilities may override this with their own URL.

    ImageTrend Elite shows the username, password and Sign In button on one page, so leave the login form URL blank to sign in directly on the site above. (Set it only if your site uses a separate login page.)

    Logout

    Used by the Logout session button (top-right). It clicks the user menu, then the Sign Out link, inside the live browser. Defaults match ImageTrend Elite.

    Two-Factor (2FA)

    When the 6-digit code screen appears, the app enters the TOTP code (2-second gap per digit). If you remember the device, the code screen is skipped until it expires β€” the app detects this automatically and only re-enters a code when the screen reappears.

    FoxyProxy (USA)

    The login screen only loads through the US proxy. Enable this so every browser launch routes through it automatically.

    Clients

      Add Facility

      Copies client, name, location, URL & selectors β€” not the username or password. Then just add the new entry's specifics.
      Current 6-digit code ------
      Advanced β€” custom field selectors (optional)

      API Management

      Expose Gateway ImageTrend as a service. Partner environments authenticate with their own credentials and pull captured PDF documents through the /v1 API.

      Add a partner

      A partner is an organisation that connects to the API. Each is pinned to a Gateway user, so it can only pull that user's facilities and documents.

      Partners

      Each partner gets one API key β€” a single bearer that consumes the whole API (like OpenAI/Claude). Send it as Authorization: Bearer gwk_…; no token step needed.

      ⚠ Copy this API key now β€” it is shown only once.
      partner api_key
      NameScopeStatusAPI KeyCreds
      No partners yet.

      Credentials

      Pick a partner on the Clients tab, then return here to issue credentials.

      ⚠ Copy this secret now β€” it is shown only once.
      client_id client_secret
      client_idLabelStatusLast used
      No credentials yet.

      Webhooks

      Pick a partner on the Clients tab first.

      When a job finishes, Gateway POSTs each captured document and a job summary to these URLs, signed with X-Gateway-Signature. The partner stores the secret (shown once) to verify it.

      ⚠ Copy this signing secret now β€” shown only once.
      secret
      URLEventsPayloadStatus
      No webhooks registered.

      Recent deliveries

      WhenEventTargetResultTries
      No deliveries yet.

      Captured documents

      PDFs captured by the engine, available to partners through the API.
      IncidentFacilityFormatScopeCaptured
      No documents captured yet.

      Base URL

      All endpoints are served under

      1 Β· Authenticate β€” pick one

      Simplest (recommended): use the partner's single API key directly as a bearer on every call β€” no token step. Generate it on the Clients tab.

      curl /v1/facilities \
        -H "Authorization: Bearer gwk_your_partner_api_key"

      Alternative (OAuth): exchange a client_id/secret for a 1-hour token, then send that token as the bearer.

      curl -X POST /v1/oauth/token \
        -H "Content-Type: application/json" \
        -d '{"grant_type":"client_credentials","client_id":"gw_…","client_secret":"gws_…"}'
      # β†’ { "access_token": "…" }  then:  Authorization: Bearer <access_token>

      2 Β· Set up your configuration (no Selenium on your side)

      Provision everything through the API β€” Gateway runs the browser; you only ever send queries.

      POST   /v1/clients            { "name": "Mercy EMS" }
      GET    /v1/clients
      DELETE /v1/clients/{id}
      
      POST   /v1/facilities         { "client_id": 1, "name": "Mercy North",
                                             "site_url": "…", "username": "…", "password": "…" }
      GET    /v1/facilities?client_id=1
      PUT    /v1/facilities/{id}    (update / rotate credentials)
      DELETE /v1/facilities/{id}

      3 Β· Submit a report job (async, single or batch)

      POST /v1/report-jobs
      { "facility_ids": [7, 8], "incident_numbers": ["2024-00123","2024-00124"],
        "mode": "parallel", "client_reference": "your-ticket-id" }
      β†’ 202 { "job_id": "…", "status": "queued", "status_url": "/v1/report-jobs/…" }

      4 Β· Poll the job

      GET /v1/report-jobs/{job_id}
      β†’ { "status": "completed|partial|failed|running",
          "counts": { "done": 2, "failed": 0, "queued": 0, "running": 0 },
          "items": [ { "incident_number": "…", "status": "done", "document_id": "…" } ] }

      5 Β· Fetch the PDF into your system

      GET /v1/documents                                 β†’ list (paged)
      GET /v1/documents/{document_id}                   β†’ metadata + sha256
      GET /v1/documents/{document_id}/content           β†’ application/pdf bytes
      GET /v1/documents/{document_id}/content?encoding=base64  β†’ JSON (save as .pdf)

      Your system writes the returned bytes (or decoded base64) straight to a .pdf file β€” no browser, no desktop agent needed.

      6 Β· (Optional) Get results PUSHED to you

      Instead of polling, register a webhook once. Gateway POSTs each captured document and a job summary to your URL when the job finishes.

      POST /v1/webhooks
      { "url": "https://you.example.com/hooks/gateway",
        "events": ["document.captured","job.completed"], "include": "download_url" }
      β†’ 201 { "id": 1, "secret": "whsec_…" }        # store the secret to verify signatures
      
      # Gateway β†’ your URL, on completion:
      POST https://you.example.com/hooks/gateway
      X-Gateway-Signature: sha256=<hmac of body with your secret>
      { "event": "document.captured", "job_id": "…",
        "document": { "document_id": "…", "incident_number": "…",
                      "download_url": "/v1/documents/…/content" } }
      
      GET  /v1/webhooks                       # list
      POST /v1/webhooks/{id}/test             # fire a ping
      GET  /v1/report-jobs/{job_id}/deliveries  # delivery log

      Verify the signature: HMAC_SHA256(secret, raw_body) must equal the hex in X-Gateway-Signature. Set include: "base64" to receive the PDF bytes inline.