PAID INTEGRATION · CHECKOUT TO FIRST REQUEST
Turn a confirmed payment into usable API credits.
Starter, Production and Enterprise customers can begin at /pricing. Checkout is hosted by Stripe; the CompanyProof success page confirms the resulting subscription before account access is offered. Payment alone does not attach credits to an arbitrary account: credits become usable only after the purchaser securely claims the purchase with the exact checkout email and CompanyProof reconciles the authoritative Stripe subscription into the dashboard account.
- 01Complete Stripe checkout
Choose Starter, Production or Enterprise on the pricing page and pay with the email that will own the CompanyProof account.
- 02Wait for Stripe confirmation
The success page checks the checkout session and subscription. A redirect by itself is not proof of payment; CompanyProof uses Stripe confirmation and signed billing events.
- 03Claim with the exact email
Create an account or sign in through WorkOS using the exact email submitted at checkout. An email mismatch cannot claim the purchase.
- 04Confirm dashboard entitlement
After the secure claim, CompanyProof reconciles the customer, subscription, plan and current Stripe billing period. Review the result at /dashboard/billing. Credits are usable only after this reconciliation succeeds.
- 05Create a live key
Open /dashboard/api-keys, create a
cp_live_…key and store the one-time token in a server-side secret manager. - 06Preflight the allowance
Call
GET /v2/usage. A brand-new, unused Starter period should reportcredits.used: 0,credits.limit: 250andcredits.remaining: 250before any billable API call. - 07Resolve, then retrieve
Call
POST /v2/companies/search, validate the match, then callGET /v2/companies/{id}/profile. Each accepted call consumes one credit.
0 / 250 credits used · 250 remainingIf the dashboard or usage endpoint does not show this after claim and reconciliation, do not send paid traffic yet.
curl --request GET \ --url https://companyproof.ai/v2/usage \ --header "Authorization: Bearer $COMPANYPROOF_API_KEY"
{
"environment": "live",
"plan": "starter",
"billing_status": "paid",
"period": {
"id": "stripe:sub_example:1788220800",
"starts_at": 1788220800,
"resets_at": 1790812800
},
"credits": {
"used": 0,
"limit": 250,
"remaining": 250
},
"requests_per_minute": 30
}environmentenumyestest or live, taken from the authenticating key.
planenumyessandbox, evaluation, starter, production or enterprise.
billing_statusenumyestest, free, evaluation, paid, grace or suspended.
period.idstringyesOpaque usage-period identifier. Do not parse it for business logic.
period.starts_atinteger/nullyesUTC Unix seconds for a paid Stripe period; null for an allowance without a fixed start.
period.resets_atintegeryesUTC Unix seconds when the active allowance resets or expires.
credits.usedintegeryesCredits already consumed in this period.
credits.limitintegeryesTotal credits assigned to this period.
credits.remainingintegeryesCredits still available; equal to limit minus used.
requests_per_minuteintegeryesAccount-wide rate allowance shared across REST and MCP.
GET /v2/usage does not consume a claim credit, but it does use one request in the account-wide rate window. Treat a non-200 response or unexpected plan as a failed preflight. For a brand-new unused Starter purchase, investigate non-zero usage in the billing dashboard; an existing or upgraded account can legitimately retain usage already consumed in the same Stripe period.
