Settings

Configure how this dashboard connects to your Harpd Collector. These settings are stored in your browser and apply to every page.

How to use this page & what the results mean
How to use this page
  1. Enter your Collector URL (leave blank to use the hosted api.harpd.com) and paste an API key from Account.
  2. Decide whether to keep Demo Data Fallback ON (explore with sample data) or OFF (verify your live connection).
  3. Click Save & connect — the badge turns green when real data flows.
What the results mean
  • The connection badge (sidebar + top of this page) shows Live · connected (green) or Demo data (amber).
  • These settings are stored in your browser’s local storage and apply to every page.
  • Each section below has its own detailed explanation of what the field does and the result you’ll see.
Sample data
Fill in the fields below and click Save & connect to switch to live data.

Collector URL

The base URL of your Harpd Collector API server.

Optional
What is this?

The Collector is Harpd's backend API worker (Cloudflare Worker) that receives payment events, serves analytics, and manages your workspace data. This setting tells the dashboard which Collector instance to talk to.

Where is it used?

Every API call from this dashboard — Overview stats, Agent list, Reconciliation, Anomalies, Insights, Billing, Compliance — goes to this URL. It is the single source of truth for all your workspace's live data.

What result do you see?
  • Left blank (default) → connects to https://api.harpd.com (the hosted Harpd Collector). This is what 99% of users should use.
  • Set to a custom URL → all dashboard requests go to your self-hosted Collector worker instead. Only use this if you deploy your own Collector (e.g. for air-gapped / enterprise environments).

API Key (X-Harpd-Key)

Machine credential that authenticates SDK and agent traffic to your Collector.

Recommended
What is this?

An API key is a secret token that proves "this request comes from an authorized agent or integration." It is sent as the HTTP header X-Harpd-Key on every dashboard API call. Without it (and without a signed-in session), the Collector rejects private data requests with a 401.

Where is it used?

All authenticated endpoints: /v1/stats/*, /v1/reconcile, /v1/anomalies, /v1/insights, /v1/billing/*, /v1/compliance/*. Public endpoints like /v1/marketplace/* work without a key.

How do I get one?

Go to the Account page and click New API key. The plaintext key is shown exactly once — copy it immediately. You can create up to 10 keys per workspace (e.g. one for production agents, one for staging).

What result do you see?
  • No key set + not signed in → dashboard shows demo/fabricated data (or "Private beta" if not yet launched). No live data is fetched.
  • Key set (and valid) → after clicking Save & connect, every page refreshes with real data from your workspace. The connection badge turns green (Live · connected).
  • Key set but wrong/revoked → you'll see a HTTP 401 error. Check that you copied the full key without extra spaces.

Demo Data Fallback

Whether to show fabricated sample data when live data is unavailable.

What is this?

A toggle that controls the dashboard's behavior when it cannot reach the Collector (no key, wrong key, network error, or Collector offline). When ON, the dashboard falls back to built-in fabricated data so you can still explore the UI. When OFF, failed requests show an error message instead of fake data.

Where is it used?

Globally — on every page that fetches data through the API client (Overview, Agents, Endpoints, Reconcile, Anomalies, Insights, Billing, Compliance). The public Marketplace page always tries live first regardless of this toggle.

What result do you see?
  • ON (default) → if the dashboard can't fetch live data, you see realistic-looking sample data (fake agent names, fake USDC amounts, fake tx hashes). The connection badge shows amber (Sample data). Great for exploring the UI before connecting a real Collector.
  • OFF → if the dashboard can't reach the Collector, each panel shows an error like "Sign in or set a Collector URL + API key in Settings to see live data." Use this when you want to confirm your live connection is working — any remaining demo data means something is misconfigured.

Save & Connect

What does this button do?

Clicking Save & connect persists your settings (URL, key, demo toggle) to your browser's local storage, then immediately tests the connection by re-rendering the current open page(s) with the new configuration.

What result do you see after clicking?
  • Settings saved → values persist across browser tabs and sessions (until you clear localStorage). You won't need to re-enter them.
  • Connection tested → the sidebar/connection banner badge updates:
    • ● Live · connected = valid URL + valid key + demo OFF → real data flowing
    • ● Sample data = no key, or no URL, or demo ON → showing fallback data
  • Pages refresh → Overview, Account, Insights etc. re-fetch and display with the new connection state. If you're on another tab, it will refresh when you switch back.

Load Sample Data

What does this button do?

Sends a POST /v1/seed request to your configured Collector, asking it to generate realistic test events (payments, reconciliations, anomalies) for your workspace. This populates your actual database — not just the frontend — so you can test the full pipeline end-to-end.

When should I use it?

Only during development / testing. It requires your Collector to have the /v1/seed endpoint exposed (it may be disabled in production). After seeding, switch Demo Data Fallback OFF and click Save & connect to verify you're seeing real seeded data (not the built-in fabrications).

What result do you see?
  • Success → button text changes to "Sample data loaded ✓". All dashboard pages now show real (seeded) data. If the seed endpoint returns an API key, it is auto-filled into the API Key field above.
  • "Sample data unavailable" → your Collector doesn't expose /v1/seed (normal for production).
  • "Seed failed" → check that your Collector URL is correct and the Collector is running.