upapi-io Finance API

The Finance API from upapi-io — 2 operation(s) for finance.

Operations 2

POST /crypto-price.get Get Crypto Prices #
POST /currency-convert.get Convert Currency #

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/upapi-io:upapi-io-finance-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

upapi-io-finance-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: up Finance API
  description: 'Browser-powered API marketplace. 103 of 103 APIs included (capped at 449 for RapidAPI compatibility).


    Billing: a call spends WEIGHTED UNITS against your plan''s monthly quota — not a flat one call = one unit. A light HTTP relay costs 1 unit; heavy work costs more, up to 25 (search-engine result pages 25, headless-browser renders and page scrapes 20, residential-proxy social reads 15, LLM completions 10, datacenter social/media reads 4). Every operation declares its own price as `x-upapi-unit-weight`, so a workload can be costed before it is run. Quota state rides on every response in the `RateLimit` / `RateLimit-Policy` headers.'
  version: 1.0.0
servers:
- url: https://api.upapi.io
security:
- ApiKeyAuth: []
tags:
- name: Finance
paths:
  /crypto-price.get:
    post:
      operationId: crypto_price_get
      summary: Get Crypto Prices
      description: Current crypto prices (+ optional market cap and 24h change) for one or more coins across fiat or crypto quote currencies via CoinGecko's free simple-price endpoint.
      tags:
      - Finance
      x-upapi-unit-weight: 1
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              title: Input
              required:
              - coins
              properties:
                coins:
                  type: string
                  title: Coins
                  maxLength: 500
                  minLength: 1
                  description: Comma-separated CoinGecko coin ids (e.g. bitcoin,ethereum,solana)
                vsCurrencies:
                  type: string
                  title: Vscurrencies
                  default: usd
                  maxLength: 200
                  minLength: 3
                  description: Comma-separated fiat/crypto quote currencies (e.g. usd,eur,btc)
                include24hChange:
                  type: boolean
                  title: Include24Hchange
                  default: true
                includeMarketCap:
                  type: boolean
                  title: Includemarketcap
                  default: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                title: Output
                required:
                - prices
                - marketCaps
                - change24h
                - fetchedAt
                properties:
                  prices:
                    type: object
                    title: Prices
                    additionalProperties:
                      type: object
                      additionalProperties:
                        type:
                        - number
                        - 'null'
                  change24h:
                    type: object
                    title: Change24H
                    additionalProperties:
                      type: object
                      additionalProperties:
                        type:
                        - number
                        - 'null'
                  fetchedAt:
                    type: string
                    title: Fetchedat
                  marketCaps:
                    type: object
                    title: Marketcaps
                    additionalProperties:
                      type: object
                      additionalProperties:
                        type:
                        - number
                        - 'null'
        '400':
          description: Invalid input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Missing or invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: 'FORBIDDEN — the key is valid but not allowed to make this call. Three causes: the key belongs to a different organization than the one in the path; the key was minted without the scope this endpoint requires (the message names the missing scope); or the operation is not included in the organization''s plan — a plan gate, which no retry clears. Upgrade the plan or mint a key with the right scope.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Unknown marketplace API
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Missing required field(s)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: 'Two DIFFERENT conditions share this status, told apart by `error.code`. `RATE_LIMITED` — the per-minute burst window is full; it refills on its own, so back off and retry (`Retry-After` is seconds, typically 60) and nothing was spent. `QUOTA_EXCEEDED` — a BUDGET is gone: the monthly weighted-unit quota, a trial''s unit cap, or the plan''s hosted-function compute seconds. Retrying on a short backoff will never succeed; `Retry-After` points at the real refill (the next UTC month, or the end of the trial), and upgrading the plan is usually the intended fix.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '502':
          description: Upstream execution error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: Data store temporarily unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '504':
          description: Request timed out
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /currency-convert.get:
    post:
      operationId: currency_convert_get
      summary: Convert Currency
      description: Convert a fiat amount across one or more target currencies using ECB daily reference rates via Frankfurter. Returns both unit rates and the converted amounts.
      tags:
      - Finance
      x-upapi-unit-weight: 1
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              title: Input
              required:
              - base
              - targets
              properties:
                base:
                  type: string
                  title: Base
                  maxLength: 3
                  minLength: 3
                  description: ISO-4217 base currency code (e.g. USD)
                amount:
                  type: number
                  title: Amount
                  default: 1
                  description: Amount of the base currency to convert
                  exclusiveMinimum: 0
                targets:
                  type: string
                  title: Targets
                  maxLength: 200
                  minLength: 3
                  description: Comma-separated ISO-4217 target currency codes (e.g. EUR,GBP,JPY)
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                title: Output
                required:
                - amount
                - base
                - date
                - rates
                - converted
                - fetchedAt
                properties:
                  base:
                    type: string
                    title: Base
                  date:
                    type: string
                    title: Date
                  rates:
                    type: object
                    title: Rates
                    additionalProperties:
                      type: number
                  amount:
                    type: number
                    title: Amount
                  converted:
                    type: object
                    title: Converted
                    additionalProperties:
                      type: number
                  fetchedAt:
                    type: string
                    title: Fetchedat
        '400':
          description: Invalid input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Missing or invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: 'FORBIDDEN — the key is valid but not allowed to make this call. Three causes: the key belongs to a different organization than the one in the path; the key was minted without the scope this endpoint requires (the message names the missing scope); or the operation is not included in the organization''s plan — a plan gate, which no retry clears. Upgrade the plan or mint a key with the right scope.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Unknown marketplace API
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Missing required field(s)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: 'Two DIFFERENT conditions share this status, told apart by `error.code`. `RATE_LIMITED` — the per-minute burst window is full; it refills on its own, so back off and retry (`Retry-After` is seconds, typically 60) and nothing was spent. `QUOTA_EXCEEDED` — a BUDGET is gone: the monthly weighted-unit quota, a trial''s unit cap, or the plan''s hosted-function compute seconds. Retrying on a short backoff will never succeed; `Retry-After` points at the real refill (the next UTC month, or the end of the trial), and upgrading the plan is usually the intended fix.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '502':
          description: Upstream execution error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: Data store temporarily unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '504':
          description: Request timed out
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    Error:
      type: object
      required:
      - error
      properties:
        error:
          type: object
          required:
          - code
          - message
          properties:
            code:
              type: string
            message:
              type: string
            functionId:
              type: string
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key