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.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/veem-exchange-rate-controller-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
openapi: 3.2.0
info:
description: Veem REST API
title: Veem API v1.2 attachment-controller Exchange Rate Controller API
version: v1.2.1
servers:
- url: //sandbox-api.veem.com
tags:
- description: Exchange Rate Controller
name: exchange-rate-controller
paths:
/veem/v1.2/exchangerates/quote/enhanced-1:
post:
deprecated: false
description: Submits a request to generate an enhanced (fixedFee is included) quote
operationId: getQuoteEnhancedUsingPOST-1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/QuoteRequest'
description: request
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/QuoteResponse'
description: Success, a quote has been created in Veem
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: Unauthorized, the token is invalid or expired
'401':
description: Unauthorized, the token is invalid or expired
'403':
description: Forbidden, the token owner doesn't have permission to operate current API
'404':
description: Not Found, the resource not found
'500':
description: Internal Server Error, see the error code and API doc for reference
summary: Copy of getQuoteEnhanced
tags:
- exchange-rate-controller
/veem/v1.2/exchangerates/quote/enhanced:
post:
deprecated: false
description: Submits a request to generate an enhanced (fixedFee is included) quote
operationId: getQuoteEnhancedUsingPOST
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/QuoteRequest'
description: request
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/QuoteResponse'
description: Success, a quote has been created in Veem
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: Unauthorized, the token is invalid or expired
'401':
description: Unauthorized, the token is invalid or expired
'403':
description: Forbidden, the token owner doesn't have permission to operate current API
'404':
description: Not Found, the resource not found
'500':
description: Internal Server Error, see the error code and API doc for reference
summary: getQuoteEnhanced
tags:
- exchange-rate-controller
components:
schemas:
FixedFeeResponse:
properties:
amount:
description: The fixed fee amount
type: number
currency:
description: The currency of the fixed fee
type: string
title: FixedFeeResponse
type: object
QuotePartyResponse:
properties:
amount:
description: The amount for this party
type: number
currency:
description: The currency code
type: string
fixedFee:
$ref: '#/components/schemas/FixedFeeResponse'
description: The fixed fee details for this party
fxRate:
description: The FX rate for this party
type: number
title: QuotePartyResponse
type: object
QuotePartyRequest:
properties:
accountId:
description: The account ID of this party
format: int64
type: integer
amount:
description: The amount for this party (either from or to amount should be provided, not both)
type: number
currency:
description: The currency code (e.g., USD, EUR, GBP)
type: string
fundingMethodId:
description: The funding method ID for this party
format: int64
type: integer
fundingMethodType:
description: The funding method type (BANK, CARD, WALLET, VIRTUALCARD, VIRTUALBANK)
enum:
- BANK
- CARD
- WALLET
- VIRTUALCARD
- VIRTUALBANK
type: string
required:
- accountId
- fundingMethodId
- fundingMethodType
title: QuotePartyRequest
type: object
ErrorResponse:
properties:
code:
description: The error code, different than HTTP status codes
format: int32
type: integer
error:
description: The short message
type: string
message:
description: The detailed, developer friendly message
type: string
timestamp:
description: The timestamp recorded when the error occurred
type: string
required:
- code
- error
- message
title: ErrorResponse
type: object
QuoteRequest:
properties:
bruid:
description: The BRUID - FX rate locking UID
type: string
from:
$ref: '#/components/schemas/QuotePartyRequest'
description: The payer (from) party details
to:
$ref: '#/components/schemas/QuotePartyRequest'
description: The payee (to) party details
required:
- from
- to
title: QuoteRequest
type: object
QuoteResponse:
properties:
bruid:
description: The BRUID - FX rate locking UID
type: string
from:
$ref: '#/components/schemas/QuotePartyResponse'
description: The payer (from) party response details
to:
$ref: '#/components/schemas/QuotePartyResponse'
description: The payee (to) party response details
title: QuoteResponse
type: object