> ## Documentation Index
> Fetch the complete documentation index at: https://developer.uphold.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get asset rates

> Retrieve asset rates against other assets.

export const RestEndpointSubjects = ({subjects = []}) => {
  const subjectToIconMap = {
    'client': 'browser',
    'user:individual': 'user',
    'user:business': 'briefcase'
  };
  if (subjects.length === 0) {
    return null;
  }
  return <>
      {subjects.map(subject => <a key={subject} href="/rest-apis/authentication#subjects" className="border-0 opacity-85 hover:opacity-100 transition-opacity">
          <Badge stroke size="lg" icon={subjectToIconMap[subject]} color="gray" className="mr-1">
            {subject}
          </Badge>
        </a>)}
    </>;
};

<RestEndpointSubjects subjects={["client", "user:individual", "user:business"]} />

## Denomination

The `denomination` query parameter allows you to denominate rates against one or multiple assets. If no value is set for this parameter, the rates for all available assets will be returned.

There is a specific set of assets allowed, including but not limited to: `USD`, `EUR`, `GBP`, `AUD`, `CAD`, `NZD`, `MXN`, and `BTC`. If you need a particular asset added to this list, please reach out to your Account Manager.

For a more detailed explanation of the denomination concept, check the [Core Concepts](../concepts#denomination) page.

#### Retrieving multiple asset rates at once

You can use the denomination currency as a proxy for retrieving the specific asset rates you're interested in. This way, you won't have to:

* <Icon icon="xmark" color="red" size={18} /> Make one Get Asset Rates request per each asset rate desired
* <Icon icon="xmark" color="red" size={18} /> Discard all the undesired assets rates retrieved by default

For example, if you want to get the rates for `BTC` and `ETH` in `USD`:

1. Define `asset` as `USD`
2. Set `denomination` as the list of desired assets: `BTC,ETH`
3. Calculate the inverse for each returned asset rate: $\frac{1}{\text{rate}}$

You can specify up to 100 asset codes in the `denomination` parameter per request.


## OpenAPI

````yaml _media/specs/core-openapi.mintlify.json get /core/assets/{asset}/rates
openapi: 3.1.0
info:
  version: 0.1.0
  title: Core API
  description: >-
    The Core API provides essential building blocks that empower businesses to
    embed financial services into their applications.
  contact:
    name: Uphold API Team
    email: developers@uphold.com
    url: https://developer.uphold.com
servers:
  - url: https://api.enterprise.sandbox.uphold.com
    description: Sandbox
  - url: https://api.enterprise.uphold.com
    description: Production
security:
  - OAuth2: []
tags:
  - name: Authentication
    description: Authentication.
  - name: Countries
    description: Countries.
  - name: Users
    description: Users.
  - name: KYC
    description: Individual User's KYC.
  - name: KYB
    description: Business User's KYB.
  - name: Capabilities
    description: User capabilities.
  - name: Terms of service
    description: User terms of service.
  - name: Files
    description: Files.
  - name: Assets
    description: Assets, networks and rails.
  - name: Accounts
    description: Accounts.
  - name: External accounts
    description: External accounts.
  - name: Transactions
    description: Transactions.
  - name: Portfolio
    description: Portfolio.
  - name: Statements
    description: Statements.
  - name: Metadata
    description: Metadata.
  - name: Webhooks
    description: Webhooks.
paths:
  /core/assets/{asset}/rates:
    get:
      tags:
        - Assets
      summary: Get asset rates
      description: Retrieve asset rates against other assets.
      operationId: core.get-asset-rates
      parameters:
        - $ref: '#/components/parameters/asset-code'
        - $ref: '#/components/parameters/get-asset-rates-denomination-filter'
      responses:
        '200':
          $ref: '#/components/responses/get-asset-rates-response'
        '404':
          $ref: '#/components/responses/get-asset-rates-not-found-response'
        '409':
          $ref: '#/components/responses/get-asset-rates-conflict-response'
components:
  parameters:
    asset-code:
      name: asset
      description: The asset code.
      in: path
      required: true
      schema:
        type: string
        minLength: 1
      examples:
        BTC Asset:
          value: BTC
    get-asset-rates-denomination-filter:
      name: denomination
      description: Filter rates by specified assets.
      in: query
      style: form
      explode: false
      required: false
      schema:
        type: array
        maxItems: 100
        uniqueItems: true
        items:
          type: string
          minLength: 1
      examples:
        GBP Asset:
          value:
            - GBP
  responses:
    get-asset-rates-response:
      description: Asset rates retrieved.
      content:
        application/json:
          schema:
            type: object
            properties:
              rates:
                type: object
                additionalProperties:
                  $ref: '#/components/schemas/asset-rate'
          examples:
            Asset Rates Retrieved:
              value:
                rates:
                  ETH:
                    ask: '22.910619213684715739'
                    bid: '22.85842248147463121064'
                    mid: '22.88452084757967347482'
                  GBP:
                    ask: '47027.64159916551332431855'
                    bid: '46908.53407930127413227339'
                    mid: '46968.08783923339372829597'
                  USD:
                    ask: '61023.8527432818'
                    bid: '60946.4628910217'
                    mid: '60985.15781715175'
      headers:
        x-uphold-request-id:
          description: >-
            A unique identifier for the request that can be shared with Uphold
            for troubleshooting purposes.
          required: true
          schema:
            type: string
            format: uuid
          examples:
            Request ID:
              value: 9092ee4d-f0fb-42e9-8787-b668dbcec531
    get-asset-rates-not-found-response:
      description: Resource not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            Asset Not Found:
              value:
                code: entity_not_found
                message: The asset cannot be found
                details:
                  entity: asset
      headers:
        x-uphold-request-id:
          description: >-
            A unique identifier for the request that can be shared with Uphold
            for troubleshooting purposes.
          required: true
          schema:
            type: string
            format: uuid
          examples:
            Request ID:
              value: 9092ee4d-f0fb-42e9-8787-b668dbcec531
    get-asset-rates-conflict-response:
      description: Business logic error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            Asset Pair Not Supported:
              value:
                code: asset_pair_not_supported
                message: Rates are not available for the requested asset pair
      headers:
        x-uphold-request-id:
          description: >-
            A unique identifier for the request that can be shared with Uphold
            for troubleshooting purposes.
          required: true
          schema:
            type: string
            format: uuid
          examples:
            Request ID:
              value: 9092ee4d-f0fb-42e9-8787-b668dbcec531
  schemas:
    asset-rate:
      type: object
      properties:
        bid:
          description: Highest price a buyer is willing to pay.
          type: string
        ask:
          description: Lowest price a seller is willing to accept.
          type: string
        mid:
          description: The mid price between the bid and ask.
          type: string
      required:
        - mid
    error:
      description: The error information.
      type: object
      properties:
        code:
          description: >-
            A short string with a brief explanation about the error code
            reported.
          type: string
        message:
          description: A human-readable message providing more details about the error.
          type: string
        details:
          description: Additional information about the error reported.
          type: object
          additionalProperties: true
      required:
        - code
        - message
  securitySchemes:
    OAuth2:
      type: oauth2
      description: OAuth 2.0 authentication.
      flows:
        clientCredentials:
          tokenUrl: /core/oauth2/token
          scopes:
            core.users:act-on-behalf-of: Grants access to act on behalf of a user
            core.users:create: Grants access to create users
            core.users:read: Grants access to view users
            core.users:delete: Grants access to delete users
            core.users.metadata:read: Grants access to view user metadata
            core.users.metadata:write: Grants access to modify user metadata
            core.kyc:read: Grants access to view KYC processes
            core.kyc.profile:update: Grants access to update profile KYC process
            core.kyc.address:update: Grants access to update address KYC process
            core.kyc.email:update: Grants access to update email KYC process
            core.kyc.phone:update: Grants access to update phone KYC process
            core.kyc.identity:update: Grants access to update identity KYC process
            core.kyc.proof-of-address:update: Grants access to update proof-of-address KYC process
            core.kyc.customer-due-diligence:update: Grants access to update customer due diligence KYC process
            core.kyc.enhanced-due-diligence:update: Grants access to update enhanced due diligence KYC process
            core.kyc.crypto-risk-assessment:update: Grants access to update crypto risk assessment KYC process
            core.kyc.self-categorization-statement:update: Grants access to update self-categorization statement KYC process
            core.kyc.tax-details:update: Grants access to update tax details KYC process
            core.capabilities:read: Grants access to view user capabilities
            core.terms-of-service:read: Grants access to view terms of service
            core.terms-of-service:accept: Grants access to accept terms of service
            core.files:create: Grants access to create files
            core.files:read: Grants access to view files
            core.files.metadata:read: Grants access to view files metadata
            core.files.metadata:write: Grants access to modify files metadata
            core.accounts:create: Grants access to create accounts
            core.accounts:read: Grants access to view accounts
            core.accounts:update: Grants access to update accounts
            core.accounts:archive: Grants access to archive accounts
            core.accounts:deposit-method: >-
              Grants access to deposit method needed for depositing into
              accounts
            core.accounts:use-test-helpers: Grants access to test helpers of accounts
            core.accounts.metadata:read: Grants access to view accounts metadata
            core.accounts.metadata:write: Grants access to modify accounts metadata
            core.assets:use-test-helpers: Grants access to test helpers of assets
            core.external-accounts:create: Grants access to create external accounts
            core.external-accounts:read: Grants access to view external accounts
            core.external-accounts:update: Grants access to update external accounts
            core.external-accounts:delete: Grants access to delete external accounts
            core.external-accounts.metadata:read: Grants access to view external accounts metadata
            core.external-accounts.metadata:write: Grants access to modify external accounts metadata
            core.transactions:create: Grants access to commit quotes
            core.transactions:read: Grants access to view transactions
            core.transactions.metadata:read: Grants access to view transactions metadata
            core.transactions.metadata:write: Grants access to modify transactions metadata
            core.transactions.requests-for-information:read: Grants access to view transactions requests for information
            core.transactions.requests-for-information:update: Grants access to update transactions requests for information
            core.portfolio:read: >-
              Grants access to view portfolio overview, performance, and
              historical balance
            core.statements:read: Grants access to read statements
            core.webhooks:management-link: Grants access to create webhook management links

````