veezee-io Keys API

The Keys API from veezee-io — 1 operation(s) for keys.

Operations 1

POST /v1/keys/mint Mint a free trial API key #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/veezee-io:veezee-io-keys-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

veezee-io-keys-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Veezee Keys API
  version: '2.2'
  description: 'LinkedIn, Reddit, and X (Twitter) data for AI agents: profiles, companies, people search, posts, tweets, subreddits, and search, metered in credits with per-call receipts. Same contract as the MCP server at https://mcp.veezee.io/all.'
  contact:
    email: hello@veezee.io
    url: https://veezee.io
servers:
- url: https://api.veezee.io
security:
- bearerAuth: []
tags:
- name: Keys
paths:
  /v1/keys/mint:
    post:
      operationId: mintKey
      summary: Mint a free trial API key
      description: Creates a trial account and returns its API key (vz_trial_...). Empty body, no signup. The key carries the free per-IP daily budget, so minting more keys from one IP gains nothing. Rate limited per IP.
      security: []
      responses:
        '200':
          description: minted
          content:
            application/json:
              schema:
                type: object
                required:
                - key
                - key_hint
                - account_id
                - plan
                - free_tier
                - upgrade_url
                - setup
                - note
                - docs
                properties:
                  key:
                    type: string
                    description: The API key (vz_trial_...). Shown once; store it.
                  key_hint:
                    type: string
                  account_id:
                    type: string
                  plan:
                    type: string
                    const: trial
                  free_tier:
                    type: object
                    properties:
                      credits_per_ip_day:
                        type: integer
                      freshness:
                        type: string
                      first_page_only:
                        type: boolean
                  upgrade_url:
                    type: string
                  setup:
                    type: object
                    description: 'Copy-paste snippets: env export, a curl example, and MCP connection config.'
                    properties:
                      env:
                        type: string
                      rest:
                        type: string
                      mcp:
                        type: object
                        properties:
                          url:
                            type: string
                          headers:
                            type: object
                            properties:
                              Authorization:
                                type: string
                  note:
                    type: string
                  docs:
                    type: string
        '429':
          description: RATE_LIMITED
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
      tags:
      - Keys
components:
  schemas:
    Problem:
      type: object
      description: RFC 9457 problem details with Veezee extensions.
      properties:
        code:
          type: string
          enum:
          - INVALID_INPUT
          - NOT_FOUND
          - UNAUTHORIZED
          - NOT_ENTITLED
          - INSUFFICIENT_CREDITS
          - QUOTE_EXCEEDS_MAX_CREDITS
          - IDEMPOTENCY_KEY_REQUIRED
          - IDEMPOTENCY_KEY_REUSED
          - CONCURRENCY_LIMIT
          - RATE_LIMITED
          - TRIAL_CAP_EXCEEDED
          - BUDGET_EXHAUSTED
          - UPSTREAM_UNAVAILABLE
          - PAYLOAD_TOO_LARGE
          - INTERNAL
          - AUTH_REQUIRED
          - KEY_REQUIRED
        message:
          type: string
        param:
          type: string
        doc_url:
          type: string
        is_retriable:
          type: boolean
        retry_after_seconds:
          type: number
        valid_values:
          type: array
          items:
            type: string
        claim_url:
          type: string
        upgrade_url:
          type: string
          description: 'Present when a payment can fix this error. Give it to your human: it credits this key''s account directly with no login, and the same key keeps working after payment, nothing to reconfigure.'
        credits_required:
          type: number
          description: 'Set when the balance cannot cover the call''s quote: the credits the call needed.'
        offer:
          type: object
          description: Machine-readable purchase offer; present exactly when upgrade_url is. checkout_url is the same link as upgrade_url; resume says how to continue after payment.
          properties:
            offer_version:
              type: number
              const: 1
            reason:
              type: string
              enum:
              - INVALID_INPUT
              - NOT_FOUND
              - UNAUTHORIZED
              - NOT_ENTITLED
              - INSUFFICIENT_CREDITS
              - QUOTE_EXCEEDS_MAX_CREDITS
              - IDEMPOTENCY_KEY_REQUIRED
              - IDEMPOTENCY_KEY_REUSED
              - CONCURRENCY_LIMIT
              - RATE_LIMITED
              - TRIAL_CAP_EXCEEDED
              - BUDGET_EXHAUSTED
              - UPSTREAM_UNAVAILABLE
              - PAYLOAD_TOO_LARGE
              - INTERNAL
              - AUTH_REQUIRED
              - KEY_REQUIRED
            currency:
              type: string
              const: usd
            recommended:
              type: string
              enum:
              - flex
              - production
              description: Which pack to lead with.
            packs:
              type: array
              items:
                type: object
                properties:
                  pack:
                    type: string
                    enum:
                    - flex
                    - production
                  mode:
                    type: string
                    enum:
                    - payment
                    - subscription
                  price_usd_cents:
                    type: number
                  credits:
                    type: number
                  credits_per_month:
                    type: number
                  when:
                    type: string
                    description: Short label for when this pack fits.
                required:
                - pack
                - mode
                - price_usd_cents
            rails:
              type: array
              items:
                type: string
                enum:
                - stripe_checkout
            checkout_url:
              type: string
            resume:
              type: string
            refund_policy:
              type: string
          required:
          - offer_version
          - reason
          - currency
          - packs
          - rails
          - checkout_url
          - resume
          - refund_policy
      required:
      - code
      - message
      - doc_url
      - is_retriable
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'API key, required on every call. Mint a free trial key instantly: POST https://api.veezee.io/v1/keys/mint (empty body, no signup, no card); trial keys carry the free per-IP daily budget. vz_live_... keys come from a purchase at https://veezee.io/upgrade; adding credits later upgrades the same key.'