Skip to content

goldapi-io/gold-api-examples-kotlin

Repository files navigation

GoldAPI.io Kotlin Example: Live Gold Price API

This repository shows how to call the GoldAPI.io live gold price API using Kotlin. It includes a typed GoldApiResponse, JDK standard-library HTTP calls, and a small command-line application for fetching the current XAU/USD gold price.

Use this example if you are looking for:

  • GoldAPI.io Kotlin example
  • GoldAPI.io Kotlin integration
  • Live gold price API with Kotlin
  • XAU/USD API request sample
  • Precious metals API example using Kotlin
  • Gold price API quickstart for GitHub projects

API Endpoint

The example calls:

https://www.goldapi.io/api/XAU/USD

Equivalent curl request:

curl -X GET "https://www.goldapi.io/api/XAU/USD" \
  -H "x-access-token: GOLD_API_TOKEN"

Requirements

  • JDK 17 or newer
  • A GoldAPI.io API token

This example uses java.net.http.HttpClient from the JDK, so it does not need OkHttp, Ktor Client, Retrofit, or another HTTP client.

Installation

Build the example project:

./gradlew build

Quick Start

Run the Kotlin example:

GOLD_API_TOKEN=your_goldapi_token_here ./gradlew run

You can also change the metal and currency pair:

GOLD_API_TOKEN=your_goldapi_token_here GOLD_API_METAL=XAU GOLD_API_CURRENCY=USD ./gradlew run

Kotlin Example

The core GoldAPI.io request is:

import java.net.URI
import java.net.http.HttpClient
import java.net.http.HttpRequest
import java.net.http.HttpResponse
import java.time.Duration

val request = HttpRequest.newBuilder(URI.create("https://www.goldapi.io/api/XAU/USD"))
    .timeout(Duration.ofSeconds(30))
    .header("x-access-token", System.getenv("GOLD_API_TOKEN"))
    .header("Accept", "application/json")
    .GET()
    .build()

val response = HttpClient.newHttpClient()
    .send(request, HttpResponse.BodyHandlers.ofString())

println(response.body())

This repository expands that into a typed Kotlin example with:

  • GoldApiResponse data class
  • Basic HTTP error handling
  • Configurable GOLD_API_METAL and GOLD_API_CURRENCY
  • Safe token usage through environment variables
  • A Gradle wrapper run command

Sample GoldAPI.io Response

{
  "timestamp": 1776907250,
  "metal": "XAU",
  "currency": "USD",
  "exchange": "FOREXCOM",
  "symbol": "FOREXCOM:XAUUSD",
  "prev_close_price": 4739.215,
  "open_price": 4739.215,
  "low_price": 4694.355,
  "high_price": 4753.79,
  "open_time": 1776902400,
  "price": 4733.125,
  "ch": -6.09,
  "chp": -0.13,
  "ask": 4733.72,
  "bid": 4732.69,
  "price_gram_24k": 152.1735,
  "price_gram_22k": 139.4924,
  "price_gram_21k": 133.1518,
  "price_gram_20k": 126.8113,
  "price_gram_18k": 114.1301,
  "price_gram_16k": 101.449,
  "price_gram_14k": 88.7679,
  "price_gram_10k": 63.4056
}

Environment Variables

Variable Required Default Description
GOLD_API_TOKEN Yes None Your GoldAPI.io access token.
GOLD_API_METAL No XAU Metal symbol to request.
GOLD_API_CURRENCY No USD Currency symbol to request.

Validation

Build the project:

./gradlew build

Run the example without an API request to verify missing-token handling:

./gradlew run

Security Note

Do not commit your GoldAPI.io token to GitHub. Store it in environment variables, GitHub Actions secrets, or a local .env file that is ignored by Git.

This example is intended for server-side Kotlin. Do not expose private GoldAPI.io tokens in browser or client-side applications.

License

MIT

About

Kotlin GoldAPI.io integration example

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages