Uphold · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Core Transactions API

9 actions 9 updates phrasing extends openapi/uphold-transactions-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Uphold's API. It is a proposal applied on top of the contract, not a document Uphold publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 9

$.info
$.paths['/core/transactions/quote'].post
$.paths['/core/accounts/{accountId}/transactions'].get
$.paths['/core/transactions'].get
$.paths['/core/transactions'].post
$.paths['/core/transactions/{transactionId}'].get
$.paths['/core/transactions/{transactionId}/requests-for-information'].get
$.paths['/core/transactions/{transactionId}/requests-for-information/{requestForInformationId}'].get
$.paths['/core/transactions/{transactionId}/requests-for-information/{requestForInformationId}'].put

OpenAPI Overlay

Raw ↑
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
  title: API Evangelist conversational phrasing for Core Transactions API
  version: 1.0.0
extends: openapi/uphold-transactions-api-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist-phrasing:
      method: generated
      generated: '2026-09-26'
      generator: build-phrasing.py
      label: Generated by API Evangelist
      operations: 8
- target: $.paths['/core/transactions/quote'].post
  update:
    x-apievangelist-phrasing:
      intent: Get a quote for a transfer or trade
      effect: write
      questions:
      - How do I get a price quote before converting or sending funds?
      - Can I control how long a quote stays valid?
      instructions:
      - text: Quote moving funds from {origin} to {destination} in {denomination}.
        slots:
          origin: requestBody.origin
          destination: requestBody.destination
          denomination: requestBody.denomination
      - text: Create a quote from {origin} to {destination} for {denomination} valid for {ttl} ms.
        slots:
          origin: requestBody.origin
          destination: requestBody.destination
          denomination: requestBody.denomination
          ttl: requestBody.ttl
      method: generated
      generated: '2026-09-26'
- target: $.paths['/core/accounts/{accountId}/transactions'].get
  update:
    x-apievangelist-phrasing:
      intent: List transactions on one account
      effect: read
      questions:
      - How do I see the transaction history of one specific account?
      - Which transactions went through a particular account?
      instructions:
      - text: List transactions for account {accountId}.
        slots:
          accountId: path.accountId
      - text: Show {perPage} transactions per page for account {accountId}.
        slots:
          perPage: query.perPage
          accountId: path.accountId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/core/transactions'].get
  update:
    x-apievangelist-phrasing:
      intent: List all of a user's transactions
      effect: read
      questions:
      - Where do I see every transaction across all my accounts?
      - Can I page through a user's full transaction history?
      instructions:
      - text: List all my transactions.
      - text: Show my transaction history, {perPage} per page.
        slots:
          perPage: query.perPage
      method: generated
      generated: '2026-09-26'
- target: $.paths['/core/transactions'].post
  update:
    x-apievangelist-phrasing:
      intent: Execute a transaction from a quote
      effect: write
      questions:
      - How do I commit a quote to actually execute the trade or transfer?
      - Can I attach metadata when executing a quoted transaction?
      instructions:
      - text: Execute the transaction for quote {quoteId}.
        slots:
          quoteId: requestBody.quoteId
      - text: Commit quote {quoteId} with metadata {metadata}.
        slots:
          quoteId: requestBody.quoteId
          metadata: requestBody.metadata
      method: generated
      generated: '2026-09-26'
- target: $.paths['/core/transactions/{transactionId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one transaction
      effect: read
      questions:
      - How do I check the status of a single transaction?
      - What details are recorded for a transaction id?
      instructions:
      - text: Get transaction {transactionId}.
        slots:
          transactionId: path.transactionId
      - text: Show the status of transaction {transactionId}.
        slots:
          transactionId: path.transactionId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/core/transactions/{transactionId}/requests-for-information'].get
  update:
    x-apievangelist-phrasing:
      intent: List compliance questions on a transaction
      effect: read
      questions:
      - Why is my transaction on hold waiting for more information?
      - Which requests for information are open on a transaction?
      instructions:
      - text: List requests for information on transaction {transactionId}.
        slots:
          transactionId: path.transactionId
      - text: Show what information compliance needs for transaction {transactionId}.
        slots:
          transactionId: path.transactionId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/core/transactions/{transactionId}/requests-for-information/{requestForInformationId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one request for information
      effect: read
      questions:
      - What exactly does a specific request for information ask for?
      - How do I look up one RFI on a transaction?
      instructions:
      - text: Get request for information {requestForInformationId} on transaction {transactionId}.
        slots:
          requestForInformationId: path.requestForInformationId
          transactionId: path.transactionId
      - text: Show RFI {requestForInformationId} for transaction {transactionId}.
        slots:
          requestForInformationId: path.requestForInformationId
          transactionId: path.transactionId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/core/transactions/{transactionId}/requests-for-information/{requestForInformationId}'].put
  update:
    x-apievangelist-phrasing:
      intent: Answer a request for information
      effect: write
      questions:
      - How do I respond to a compliance request for information on a transaction?
      - Can I submit answers to an RFI to release a held transaction?
      instructions:
      - text: Answer request for information {requestForInformationId} on transaction {transactionId}.
        slots:
          requestForInformationId: path.requestForInformationId
          transactionId: path.transactionId
      - text: Submit my response to RFI {requestForInformationId} for transaction {transactionId}.
        slots:
          requestForInformationId: path.requestForInformationId
          transactionId: path.transactionId
      method: generated
      generated: '2026-09-26'

Work with this as data

Every overlay 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 openapi overlays

4 MCP tools reach this
  • find_overlaysBrowse and filter every overlay in the catalog.
  • 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 overlay
curl "https://apis.io/api/v1/overlays/uphold-transactions-api-phrasing-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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.