Nyne.ai API Login
Billing

Credits, billing & usage tracking

Every call to the Nyne.ai API is priced in credits. Most endpoints charge a fixed amount per call; a few price dynamically by the number of results you request. This guide covers exactly how much each endpoint costs, how feature toggles change the price, when credits are checked and deducted, the monthly request quota, and how to reconcile usage without double-counting.

Most endpoints Fixed per call

credits

One flat charge per successful call, whatever the payload. person_enrichment = 2, person_ask = 10.

Search & employees Dynamic per result

credits x requested_limit

You pay for the number of results you asked for. person_search, company_search, and company_employees scale with limit.

The credit model

Most endpoints cost a fixed number of credits per call. Search and company employees are dynamic: the charge is credits x requested_limit, so asking for more results costs proportionally more. These are the documented default costs - your workspace may have negotiated overrides, and the live figures load from your account into the endpoint pages.

Person

ActionCreditsNotes
person_search1x limitPer result requested (x limit).
person_enrichment2Standard full-profile enrichment.
person_lookup_fields1Only the fields you ask for.
person_email1Single best work email.
person_phone1Single best phone.
person_newsfeed1ceil(limit / 10) units; by-URL lookup bills 1.
person_ask10AI-powered profile Q&A.
person_interests5Interest analysis.
person_leads1Lead search.
person_discover10Discovery.
person_deep_research100Long-running deep research.
social_account_validation10Validate a social account.

Company

ActionCreditsNotes
company_search1x limitPer result requested (x limit).
company_enrichment1Full company profile.
company_employees1x limitPer result requested (x limit).
company_intent10Buyer-intent signals.
company_competitor_engagements5Per engagement result.
company_needs1Company needs.
company_funding1Funding history.
A few pricing specifics worth knowing
  • person_ask costs 10 credits per call - it runs an AI analysis over the profile.
  • Newsfeed quantity is ceil(limit / 10) units, so a larger feed costs more units; a single by-URL newsfeed lookup bills 1.
  • Standard person_enrichment is the everyday tier. The higher-tier person_enrich forces a full newsfeed and costs more - see Request depth for when to reach for it.

Feature surcharges

On search endpoints, feature toggles change the price. The more you turn on, the more each result costs. The billing action key is a function of the feature combination - deduped and canonically ordered - so the same set of toggles always maps to the same key:

show_emailsshow_phone_numbersinsightsprofile_scoringhigh_freshnessrequire_emailsrequire_phone_numbersrequire_phones_or_emails

For example, a search with emails and phones on bills under person_search:show_emails:show_phone_numbers. Which toggles are available and what each one adds is covered in Request depth.

Pre-flight checks & deduction

Credits are handled in two moments. Before any work starts, the request runs a pre-flight allowance check: if the workspace cannot cover the estimated cost, the call fails immediately with 402 insufficient_credits and nothing is spent. Credits are only deducted on completion, after a meaningful result. Async endpoints reserve at submit and debit in the worker once the result lands. Every charge carries a billing_action_key naming exactly what was billed:

{
  "success": true,
  "data": {
    "request_id": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4_1717000000_4271",
    "status": "completed",
    "billing_action_key": "person_search:show_emails:show_phone_numbers",
    "credits_charged": 20,
    "requested_limit": 10
  },
  "timestamp": "2026-05-28T18:04:45"
}
Empty results do not burn credits
A no-match or empty result is not billed. You pay only when the API returns a meaningful result, so speculative lookups that come back empty are free.

When the pre-flight check fails, the shape is the standard error envelope - branch on error.code:

{
  "success": false,
  "error": {
    "code": "insufficient_credits",
    "message": "Not enough credits to complete this request."
  },
  "timestamp": "2026-05-28T18:04:45"
}

The monthly quota

On top of per-request credits, your plan has a monthly request quota - a cap on how many calls you can make in a billing month, independent of credit balance. Exceeding it returns monthly_limit_exceeded with HTTP 429:

{
  "success": false,
  "error": {
    "code": "monthly_limit_exceeded",
    "message": "Monthly request quota exceeded."
  },
  "timestamp": "2026-05-28T18:04:45"
}

Every response carries the quota state in headers, so you can watch your remaining budget without a separate call:

HeaderMeaning
X-Quota-LimitRequests allowed this month.
X-Quota-UsedRequests already spent this month.
X-Quota-RemainingRequests left before the cap.
X-Quota-ResetWhen the quota window resets.

The quota is distinct from per-minute and per-hour throttling. For those, see Rate limits.

Usage tracking & analytics

You can see per-call spend and history through the Usage Analytics API, which reports credits grouped by billing_action_key:

{
  "success": true,
  "data": {
    "period": "2026-05",
    "total_credits": 142,
    "by_action": [
      {
        "billing_action_key": "person_search",
        "credits": 40,
        "calls": 40
      },
      {
        "billing_action_key": "person_search:show_emails",
        "credits": 60,
        "calls": 30
      },
      {
        "billing_action_key": "person_enrichment",
        "credits": 42,
        "calls": 21
      }
    ]
  },
  "timestamp": "2026-05-28T18:04:45"
}
Two ledgers - do not double-count
Usage lives in two distinct tables. api_requests is the request ledger (call counts; its credits column is 0). credit_tracker is the credits ledger and is authoritative for billing. Reconcile spend by SUMming credit_tracker grouped by billing_action_key, never by adding up request rows.
TableRoleReconcile with
api_requestsRequest ledger. One row per call. The credits column is 0 here.Count calls, inspect status and timing.
credit_trackerCredits / billing ledger. One row per charge, keyed by billing_action_key.SUM credits for authoritative billing.

What isn't billed yet

Some newer or observability-only pricing is computed but not yet debited. For instance, a general-search backend path calculates a cost without charging it. You may see a computed cost that never shows up on the bill - that is expected, not a discrepancy. Treat credit_tracker as the source of truth for what you were actually charged.

What's next

  • Rate limits - per-minute and per-hour throttling, and how the monthly quota fits in.
  • Request depth - the feature toggles and enrichment tiers that move the price.
  • Effective requests - shaping calls to get the results you need for the fewest credits.
  • Responses - the envelope, error codes, and status fields you branch on.