Skip to content

PulseFlow Bid Archive (HTTP)

Production dashboard and JSON helpers run on PulseFlow Bid Archive (for example https://archive.vuebillboards.com). This page describes how callers must authenticate when requesting campaign archive metadata.

GET /campaign-info/:campaignId

Authentication is required on every request. Unauthenticated requests are rejected (redirect to SSO for browser flows without a session, or 401 when a token is present but invalid).

Supported credentials

  1. Platform admin session (browser)
    After SSO, a valid HttpOnly session cookie (Firebase session cookie) for a user with admin: true in Firestore. Used by the hosted dashboard.

  2. Shared secret (automation and server-to-server)
    Every programmatic request must include the secret your operators configure on the Fly.io app as BID_ARCHIVE_CAMPAIGN_INFO_SECRET, using one of:

    • Authorization: Bearer <secret>
    • X-Archive-Campaign-Token: <secret>

    If a bearer or X-Archive-Campaign-Token header is sent and the value does not match the configured secret, the service responds with 401 and a JSON body { "error": "Unauthorized" }.

Operators must set BID_ARCHIVE_CAMPAIGN_INFO_SECRET on the pulseflow-bid-archive application for environments where non-browser clients call this route; clients integrating against that environment must send that secret on each request.

Example (curl)

bash
export ARCHIVE_HOST="https://archive.vuebillboards.com"
export BID_ARCHIVE_CAMPAIGN_INFO_SECRET="<value from your operator>"

curl -sS \
  -H "Authorization: Bearer ${BID_ARCHIVE_CAMPAIGN_INFO_SECRET}" \
  "${ARCHIVE_HOST}/campaign-info/<campaignId>"

Billing and play aggregates (same product)

The dashboard on this host loads summary, daily, hourly, signs, and records from the Postgres billing archive. Those JSON APIs are implemented on Pulseflow (https://pulseflow.vuebillboards.com/api/archive/billing/...) and use the same DSP_API_KEY as the main partner API — not the Bid Archive host.

Partner curl reference: Play and spend data (PulseFlow Bid Archive).

Other routes (brief)

  • GET / — Dashboard HTML: IP allowlist / VPN gate and platform admin session.
  • GET /health — Liveness probe; not used for campaign data.
  • GET /sign-info/:signId — Requires the same platform admin session as other admin tools (no shared-secret path on that route).

Vue Billboards