Docs/Account & organization

Account & organization

Accounts, membership, and access for Particles Quant Cloud.

Register and sign in

  1. Register with email and organization details (approval-gated by default).
  2. After an operator approves your application, verify your email if prompted, then Sign in.
  3. Use Forgot password if you need a reset link.

Production email verification may still be off until SMTP is fully wired; operators approve accounts from Admin.

Organizations

Each customer works inside an organization. Dashboard, usage, jobs, artifacts, and API keys are scoped to the active org.

Platform admins can disable market-data access for an org (data_plane_enabled). Catalog coverage can still show; Explore / SDK data.query and true-compute jobs then return 403 data_plane_disabled. Demo jobs (demo: true) are unaffected.

Roles

RoleCan typically
OwnerManage members, billing / plans, and all org resources
AdminInvite and manage members; full operational access
MemberQuery data, run jobs, manage own API keys, and delete artifacts from their own jobs
ViewerRead-only access

Invitations

Owners and Admins invite collaborators from Settings → Members. Invitees receive an email link to join (or create an account and join in one step).

API keys

Create keys under Settings. The secret is shown once at creation — store it safely. Use the key as a Bearer token (Authorization: Bearer pk_live_…) from curl, your own HTTP client, or the Python SDK (pqc.Client).

Production base URL: https://particles-data.com/backend. Compacted ticks use POST /v1/data/query; normalized quotes/trades use the normalized API.

New keys include data:read, jobs:read, jobs:write, artifacts:read, and usage:read. Console login does not use these scopes. Revoke keys you no longer need.

The console keeps you signed in with a short-lived access token and a refresh cookie. Change password or reset password signs out other browser sessions. Use Logout to end the current session. API keys are unaffected.

Plans and billing

Owners open Plans to review Free / Pro options. When Stripe is configured, Owners can Upgrade (Checkout) or Manage billing (Customer Portal). Past-due subscriptions may reduce the org to Free limits until payment is restored.

A platform operator can also set the org plan in Admin → Customers (offline contracts). That does not create a Stripe subscription. After any plan change, sign in again so the session shows the new tier.

Job webhook

Owners and Admins configure this from Settings → Job webhook while signed in to the console. An API key cannot change it.

  1. Enter a public HTTPS URL and choose Save and enable. Private, loopback, and link-local addresses are rejected.
  2. Copy the signing secret (whsec_…). It is shown once, on first save and again when you Rotate secret.
  3. Disable stops further callbacks. The URL stays stored.

When a job reaches succeeded or failed, the platform POSTs a JSON body. Deliveries retry with backoff and stop after 8 failed attempts. Your endpoint must return a 2xx status.

Headers:

HeaderMeaning
X-PQC-Eventjob.succeeded or job.failed
X-PQC-DeliveryDelivery id. Treat a repeat of the same id as the same event.
X-PQC-TimestampUnix seconds
X-PQC-Signaturev1= plus hex HMAC-SHA256

The signature is HMAC-SHA256 of timestamp + "." + raw_body, using the signing secret as the key. Compare against the raw request body, not a re-serialized JSON object. Reject timestamps older than 5 minutes.

The body includes event, job_id, attempt, org_id, type, status, run_id, and finished_at.