Security & data handling
What we protect, and how.
The controls that exist in MarketPrior today — sign-in, workspace isolation, outbound fetching, keys, payments and personal data — described plainly, including what we do not claim.
Platform controls
Your workspace stays your workspace
Tenant data is separated at the database level and every route re-checks who you are and which workspace you belong to.
auth
Sign-in on Supabase Auth
isolation
One workspace, one schema
rls
Row-level security as a second wall
ssrf
SSRF-safe outbound fetching
share links
Share links that expire
audit
Hash-chained analysis ledger
API keys
Hashed, scoped and revocable
API keys for the REST API and MCP server are shown to you once. We store only a SHA-256 hash and a short display prefix.
- Each key is bound to one workspace — every call runs as that workspace.
- Keys carry scopes; only allowed scopes can be granted, and an empty selection defaults to read-only.
- Revoke a key at any time from the dashboard; it stops working immediately.
- Retries sent with an Idempotency-Key replay the first response and are never charged twice.
Details in the diligence REST API reference.
Payments & entitlements
Stripe takes the card, the server enforces the plan
Checkout is hosted by Stripe. What you are allowed to run is decided server-side from your workspace’s entitlement record — the same rules apply in the app, the API and MCP.
- Your plan is set from the price Stripe reports you bought, never from session metadata.
- Paid actions reserve their unit before they run and are refunded automatically on failure.
- Locked report sections are refused by the server, not just hidden in the browser.
GDPR & contact data
Business contacts, from public pages, with a lawful basis
The lead feed stores business contact data only. These rules are enforced before anything is saved:
- Only addresses at the company’s own domain — free-mail and personal addresses are never collected, for anyone.
- Only public pages: no logged-in areas, no login-walled sources.
- Every stored field records its source URL and when it was collected.
- A lawful basis is recorded per person: statutory public register, or legitimate interest for B2B prospecting.
- EU, EEA, UK and Swiss subjects are flagged and get stricter rules — no pattern-guessed email unless the pattern is evidenced on the company’s own public pages.
- Contacts not re-seen within the retention window are deleted.
# Opt out: global suppression + erasure of that address
POST /v1/contacts/opt-out
{ "email": "you@company.com" }
# Data-subject request: export | delete | opt_out
POST /v1/contacts/dsr
{ "email": "you@company.com", "action": "export" }
# Export is released only after you confirm from that mailbox
POST /v1/contacts/dsr/confirmAlso by email: privacy@marketprior.com. Read the privacy policy and data processing agreement.
Data & models
Public records in, open-weight models by default
Public records only
Findings come from public registers, filings, court and regulator records, sanctions lists and public signals, used under each source’s published licence. Every source and its licence is listed on the data sources page.
Our own model gateway
Extraction and memo-writing calls go through our own model gateway (EU region by default), which uses open-weight models unless we explicitly configure another. Scores and verdicts are computed deterministically — see how a verdict is built.
Security review · 27 Sept 2026
What our last review found, and what we fixed
An internal white-box review of authentication, tenant isolation, the public API and MCP, billing, contact data, outbound fetching and share links. Five findings; all five fixed in code.
- High — server-side request forgery via a company website crawl. Fixed with the guarded outbound client described above.
- Medium — share links could not be revoked and did not expire. Now expiring and individually revocable.
- Medium — internal tool endpoint failed open without its secret. It now refuses to start instead.
- Low — disabling an operator account did not revoke its existing tokens. Revocation is now enforced.
- Low — report unlocks were matched by company name. They are now matched by id.
What we don’t claim
- No SOC 2, ISO 27001, HIPAA or other security certification is held.
- No third-party penetration test yet; the review above was internal.
- The review spot-checked row-level security rather than auditing every table.
- MarketPrior is decision support — not investment advice and not a consumer report.
Found something? Email security@marketprior.com.
FAQ
Security questions
Is MarketPrior SOC 2 or ISO 27001 certified?
Where do payments go?
Do you use AI models on my data?
How do I get a contact record about me removed?
How do I report a vulnerability?
Diligence you can audit.
Every finding cited to a public record, every workspace kept separate.