QSentia Platform

Quantitative products, agents, platforms, and Connect APIs are open for approved institutional partners.

Explore solutions
Developer documentation

QSentia Connect API.

A compact, versioned API for approved brokers, family offices, and allocator platforms to ingest QSentia agent outputs and evidence packages.

Authentication

Keys are issued from the QSentia admin console after customer approval and agent entitlement assignment.

Authorization: Bearer qs_sandbox_...

Controls

Use Authorization: Bearer qs_sandbox_... or x-qsentia-api-key.
Every request is logged against the customer, credential, entitlement, endpoint, agent, and status code.
Rate limits are enforced by entitlement quota, per-key minute/day budgets, and a customer-level daily backstop.
Rate-limit responses include total, remaining, minute remaining, day remaining, and reset headers.
Webhook signing secrets are displayed once. QSentia stores an encrypted secret plus hash and prefix for delivery.
Webhook deliveries are queued first and sent by the internal delivery worker with HMAC signatures.
Queued webhook delivery runs every five minutes when enabled; billing usage sync runs hourly.
Successful API calls create pending billing-usage rows for usage-meter review or Stripe metering.
Live execution scopes remain gated separately from read-only signal ingestion.
Custom agent candidates require explicit candidate-level entitlement; base agent entitlement alone never exposes private Risk Studio candidates.
QSentia Connect responses never expose private candidate artifact locations, agent packages, or internal metadata.

Webhook signing

Delivery requests are signed with HMAC-SHA256 over timestamp and raw JSON body.

signed_payload = timestamp + "." + raw_body
expected = hmac_sha256(signing_secret, signed_payload)

Worker operations

Scheduled jobs call internal endpoints with a worker secret. They can be manually dispatched from GitHub Actions during partner setup or incident review.

QSENTIA_CONNECT_WORKER_SECRET

Shared secret used by GitHub Actions and internal worker endpoints.

QSENTIA_CONNECT_WEBHOOKS_ENABLED

Set true when outbound webhook delivery should actively send queued events.

QSENTIA_CONNECT_WEBHOOK_SECRET_KEY

Server-side encryption key for stored webhook signing secrets.

QSENTIA_CONNECT_RATE_LIMIT_PER_KEY_PER_MINUTE

Optional per-key minute request limit. Defaults to 60.

QSENTIA_CONNECT_RATE_LIMIT_PER_KEY_PER_DAY

Optional per-key daily request limit. Defaults to 5,000.

QSENTIA_CONNECT_RATE_LIMIT_PER_CUSTOMER_DAY

Optional customer-level daily backstop across all keys. Defaults to 50,000.

QSENTIA_CONNECT_BILLING_SYNC_MODE

record_only, mark_reported, or external_webhook for usage billing handling.

QSENTIA_CONNECT_BILLING_WEBHOOK_URL

Optional external billing collector used before native Stripe metering is turned on.

Endpoints

GET
/api/connect/v1/models

List agents entitled to the API key.

GET
/api/connect/v1/models/{model_id}/latest-signal

Fetch the latest evidence-linked signal for one entitled agent.

GET
/api/connect/v1/custom-models

List approved Risk Studio custom candidates entitled to the API key.

GET
/api/connect/v1/custom-models/{candidate_id}

Fetch one approved custom candidate summary without exposing private artifacts.

GET
/api/connect/v1/custom-models/{candidate_id}/backtest

Fetch the approved custom candidate risk-layer backtest, curve, and evidence summary.

GET
/api/connect/v1/custom-models/{candidate_id}/latest-signal

Fetch a normalized custom candidate signal package for integration testing.

GET
/api/connect/v1/webhooks

List webhook endpoints and recent deliveries.

POST
/api/connect/v1/webhooks

Register an HTTPS webhook endpoint.

POST
/api/connect/v1/webhooks/test

Queue and optionally dispatch test webhook deliveries.

POST
/api/connect/applications

Submit a partner onboarding application for approval.

POST
/api/connect/internal/scheduled

Run webhook delivery and billing sync together from the scheduled worker.

Normalized signal schema

Every latest-signal response exposes these stable top-level fields. Agent-specific details remain available in raw_payload for teams that need deeper evidence.

model_id

Stable QSentia agent id returned for the requested agent.

signal_time

Timestamp of the agent output, broker event, or latest telemetry evidence.

action

Normalized action such as buy, sell, hold, rebalance, or pending.

asset

Ticker, contract, symbol, or primary asset referenced by the signal.

target_weight

Optional portfolio target weight when the agent publishes sizing.

confidence

Optional agent confidence or probability score.

risk_state

Current risk state when available from the agent payload.

broker_status

Latest broker connectivity status visible to QSentia.

evidence

Run id, output id, producer, account, order, and trade evidence links when available.

raw_payload

The unmodified agent payload for deeper customer-side inspection.

{
  "model_id": "brppo_crypto",
  "signal_time": "2026-08-06T18:30:00.000Z",
  "action": "hold",
  "asset": "BTC/USD",
  "target_weight": 0.25,
  "confidence": 0.72,
  "risk_state": "normal",
  "broker_status": "online",
  "evidence": { "run_id": "run_...", "orders": 0, "trades": 0 },
  "raw_payload": { "...": "agent-specific evidence" }
}

Custom candidate access

Risk Studio candidates are private by default. Once a mandate run is complete and QSentia approves the candidate, the customer receives a candidate-level Connect entitlement and can consume the custom result through the same bearer-key API used for base agents.

curl -H "Authorization: Bearer qs_sandbox_..." \
  https://www.qsentia.com/api/connect/v1/custom-models

curl -H "Authorization: Bearer qs_sandbox_..." \
  https://www.qsentia.com/api/connect/v1/custom-models/{candidate_id}/backtest

Rate-limit headers

X-QSentia-RateLimit-LimitX-QSentia-RateLimit-RemainingX-QSentia-RateLimit-Minute-RemainingX-QSentia-RateLimit-Day-RemainingX-QSentia-RateLimit-Reset

Webhook headers

X-QSentia-Event-IdX-QSentia-Event-TypeX-QSentia-TimestampX-QSentia-Signature

Partner production flow

Family offices can use the user guide as the operating checklist for approvals, key handling, API tests, webhook validation, and usage review.

Apply

Submit organization, integration type, agent scope, and expected usage.

Approve

QSentia reviews the workflow and creates a customer record.

Provision

Admin assigns agent entitlements, API key, request limits, and webhooks.

Operate

API usage, webhooks, billing rows, and audit events are monitored in the portal.

Common errors

401

Missing, revoked, expired, IP-blocked, or unauthorized API key.

403

The key is valid, but the customer does not have entitlement to that agent/environment.

429

The key or entitlement exceeded the configured minute/day/month request budget.

400

Webhook registration or onboarding payload did not pass validation.

Commercial readiness

Sandbox keys are read-only and intended for technical validation, demos, and integration testing.
Production access requires QSentia approval, a signed production access agreement, and defined agent entitlements.
Signals are not investment advice. Customers remain responsible for suitability, trading decisions, and downstream execution controls.
Live use must pass QSentia operational approval before any production workflow is enabled.
Data usage, retention, redistribution, and billing terms are governed by the customer agreement.

Support: inquiries@qsentia.com