Documentation navigation
GET /v2/pricing/catalog

Public pricing catalog

Access
Public
Cost
Free
Rate limit
120 / minute per ip
Quota
None

Everything you need to predict a bill before you send a request, with no credential. skus is the price list: one row per sellable unit (grade, repo tags, the contribution garden, identity, contact, the AI summaries, the match rationale, deep lens, an AI-written email, and the free identity skeleton), with the facet keys that buy each one. You buy a SKU, not a key: naming one key of a sku and naming all of them cost the same, once, per developer, and owning any key of a sku owns the sku. plans is the sellable subscriptions with live Stripe amounts, seat cap, and monthly credit allotment; amounts fall back to null when Stripe is unreachable so the page always renders. Each plan price carries interval (week, month, quarter or year) and intervalMonths (months per period; null for week, which is not a whole number of months); Vamo Developer sells week, month and year, Pro sells month, quarter and year; a developer price also carries discountedUnitAmountCents, the per-term early-adopter price actually charged. creditUsd is the dollars-per-credit rate: multiply it by any credit figure in this API, including the x-vamo.pricing block carried on every operation, to get money. facets is the price table for the seven keys you can name in facets on the developer routes (POST /v2/developers, GET /v2/developers/enrich, POST /v2/developers/search and /similar): identity.linkedin, contact.socials, contact.emails, tags.repos, ai.person_summary, ai.repo_summaries and ai.match_rationale, one entry per facet with its credit price, the same price in dollars, what the facet gives you, and requires, the facets that are resolved and billed alongside it because it cannot be computed without them. requiresReport true means the facet is written in the background and can come back pending; false means it always comes back inline. bundles lists what each depth tier (core, enriched, deep) contains, so you can price a tier before sending it. addOns lists what is sold outside the tiers by name: the AI summaries (portrait, ai.person_summary plus ai.repo_summaries) with their price per developer. They are written in the background and are slower than the rest of a profile, and you request them only on GET /v2/developers/summaries or with facets on GET /v2/developers/enrich. Prices are read from the same catalog the biller charges from, so this list cannot drift from what you are charged. A facet cell you already own within its freshSeconds window bills 0, so these are ceiling prices.

Responses

  • 200 The public plan catalog
    • plans array of PricingCatalogPlan required
      • plan string required
      • seatCap integer required
      • monthlyCredits integer required
      • prices array of PricingCatalogPrice required
        • interval string required
          weekmonthquarteryear
        • intervalMonths integer | null required

          Months per billing period (1, 3 or 12). Null for `interval: week`, which is one week per period and not a whole number of months: price a weekly term off `interval`.

        • unitAmountCents integer | null required
        • discountedUnitAmountCents integer | null required

          The amount actually charged per period after the Vamo Developer early-adopter coupon for this term. Null when there is no discount to show (no coupon, a non-developer plan, or the amount is unknown): render `unitAmountCents` alone.

        • currency string | null required
    • creditUsd number required
    • skus array of PricingCatalogSku required
      • sku string required
      • credits integer required
        min 0
      • usd number required
        min 0
      • description string required
      • facets array of string required
    • facets array of PricingCatalogFacet required
      • key string required
      • sku string required
        freegradesignalsdeep_signalsidentitycontactportraitdossierdossier_contextpitch_sheetmatch_rationale
      • credits integer required
        min 0
      • usd number required
        min 0
      • description string required
      • requires array of string required
      • contextScoped boolean required
      • requiresReport boolean required
      • withRequiresCredits integer required
        min 0
      • freshSeconds integer required
    • bundles array of PricingCatalogBundle required
      • name string required
      • facets array of string required
    • addOns array of PricingCatalogAddOn required
      • name string required
      • facets array of string required
      • credits integer required
        min 0
      • usd number required
        min 0
      • async boolean required
      • routes array of string required
      • note string required
  • 429 A rate limit or a usage quota is exhausted. Back off and retry; the `x-quota-*` response headers report the remaining allowance.
    • code string required

      Stable machine-readable error code. Branch on this, never on the numeric status.

      bad_requestunauthorizedsignature_requiredpayment_requiredforbiddennot_foundconflictgonepayload_too_largeunprocessable_entitytoo_many_requestsinternal_errornot_implementedbilling_unavailablenot_contactablemailbox_link_unavailablemailbox_requiredmail_engine_unavailablewebhook_publisher_unavailabledatabase_unavailableclient_errorbuild_failedself_serve_checkout_disabledwork_email_requiredtrial_unavailabletrial_not_offeredcheckout_pendingchange_email_not_allowed
    • message string required

      Human-readable explanation of the refusal.

    • status integer required

      The HTTP status code, repeated in the body.

    • remedy object

      A self-serve path forward, when one exists (a 402 points at how to restore access).

      • kind string required

        What kind of remedy this is, so a client can route it: whether the caller can clear the condition through the API, or a person must act in the web app.

        topupconnect_mailboxbook_callcheckout
      • url string required

        Where to go to clear the condition: an API path, or a web app page when only a person can.