curl --request POST \
--url https://api.hubapi.com/settings/currencies/2026-09/exchange-rates/batch/read \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"inputs": [
{
"id": "<string>"
}
]
}
'import requests
url = "https://api.hubapi.com/settings/currencies/2026-09/exchange-rates/batch/read"
payload = { "inputs": [{ "id": "<string>" }] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({inputs: [{id: '<string>'}]})
};
fetch('https://api.hubapi.com/settings/currencies/2026-09/exchange-rates/batch/read', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hubapi.com/settings/currencies/2026-09/exchange-rates/batch/read",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'inputs' => [
[
'id' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.hubapi.com/settings/currencies/2026-09/exchange-rates/batch/read"
payload := strings.NewReader("{\n \"inputs\": [\n {\n \"id\": \"<string>\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.hubapi.com/settings/currencies/2026-09/exchange-rates/batch/read")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"inputs\": [\n {\n \"id\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubapi.com/settings/currencies/2026-09/exchange-rates/batch/read")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"inputs\": [\n {\n \"id\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"completedAt": "2023-11-07T05:31:56Z",
"results": [
{
"conversionRate": 123,
"createdAt": "2023-11-07T05:31:56Z",
"effectiveAt": "2023-11-07T05:31:56Z",
"fromCurrencyCode": "AED",
"id": "<string>",
"toCurrencyCode": "AED",
"updatedAt": "2023-11-07T05:31:56Z",
"visibleInUI": true
}
],
"startedAt": "2023-11-07T05:31:56Z",
"status": "CANCELED",
"links": {},
"requestedAt": "2023-11-07T05:31:56Z"
}{
"completedAt": "2023-11-07T05:31:56Z",
"results": [
{
"conversionRate": 123,
"createdAt": "2023-11-07T05:31:56Z",
"effectiveAt": "2023-11-07T05:31:56Z",
"fromCurrencyCode": "AED",
"id": "<string>",
"toCurrencyCode": "AED",
"updatedAt": "2023-11-07T05:31:56Z",
"visibleInUI": true
}
],
"startedAt": "2023-11-07T05:31:56Z",
"status": "CANCELED",
"errors": [
{
"category": "<string>",
"context": {},
"errors": [
{
"message": "<string>",
"code": "<string>",
"context": "{missingScopes=[scope1, scope2]}",
"in": "<string>",
"subCategory": "<string>"
}
],
"links": {},
"message": "<string>",
"status": "<string>",
"id": "<string>",
"subCategory": {}
}
],
"links": {},
"numErrors": 123,
"requestedAt": "2023-11-07T05:31:56Z"
}{
"message": "Invalid input (details will vary based on the error)",
"correlationId": "aeb5f871-7f07-4993-9211-075dc63e7cbf",
"category": "VALIDATION_ERROR",
"links": {
"knowledge-base": "https://www.hubspot.com/products/service/knowledge-base"
}
}Retrieve multiple rates
Récupérer les détails de plusieurs taux de change en une seule requête, spécifiés par leurs ID.
curl --request POST \
--url https://api.hubapi.com/settings/currencies/2026-09/exchange-rates/batch/read \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"inputs": [
{
"id": "<string>"
}
]
}
'import requests
url = "https://api.hubapi.com/settings/currencies/2026-09/exchange-rates/batch/read"
payload = { "inputs": [{ "id": "<string>" }] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({inputs: [{id: '<string>'}]})
};
fetch('https://api.hubapi.com/settings/currencies/2026-09/exchange-rates/batch/read', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hubapi.com/settings/currencies/2026-09/exchange-rates/batch/read",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'inputs' => [
[
'id' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.hubapi.com/settings/currencies/2026-09/exchange-rates/batch/read"
payload := strings.NewReader("{\n \"inputs\": [\n {\n \"id\": \"<string>\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.hubapi.com/settings/currencies/2026-09/exchange-rates/batch/read")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"inputs\": [\n {\n \"id\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubapi.com/settings/currencies/2026-09/exchange-rates/batch/read")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"inputs\": [\n {\n \"id\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"completedAt": "2023-11-07T05:31:56Z",
"results": [
{
"conversionRate": 123,
"createdAt": "2023-11-07T05:31:56Z",
"effectiveAt": "2023-11-07T05:31:56Z",
"fromCurrencyCode": "AED",
"id": "<string>",
"toCurrencyCode": "AED",
"updatedAt": "2023-11-07T05:31:56Z",
"visibleInUI": true
}
],
"startedAt": "2023-11-07T05:31:56Z",
"status": "CANCELED",
"links": {},
"requestedAt": "2023-11-07T05:31:56Z"
}{
"completedAt": "2023-11-07T05:31:56Z",
"results": [
{
"conversionRate": 123,
"createdAt": "2023-11-07T05:31:56Z",
"effectiveAt": "2023-11-07T05:31:56Z",
"fromCurrencyCode": "AED",
"id": "<string>",
"toCurrencyCode": "AED",
"updatedAt": "2023-11-07T05:31:56Z",
"visibleInUI": true
}
],
"startedAt": "2023-11-07T05:31:56Z",
"status": "CANCELED",
"errors": [
{
"category": "<string>",
"context": {},
"errors": [
{
"message": "<string>",
"code": "<string>",
"context": "{missingScopes=[scope1, scope2]}",
"in": "<string>",
"subCategory": "<string>"
}
],
"links": {},
"message": "<string>",
"status": "<string>",
"id": "<string>",
"subCategory": {}
}
],
"links": {},
"numErrors": 123,
"requestedAt": "2023-11-07T05:31:56Z"
}{
"message": "Invalid input (details will vary based on the error)",
"correlationId": "aeb5f871-7f07-4993-9211-075dc63e7cbf",
"category": "VALIDATION_ERROR",
"links": {
"knowledge-base": "https://www.hubspot.com/products/service/knowledge-base"
}
}Supported products
Supported products
Required Scopes
Required Scopes
Autorisations
The access token received from the authorization server in the OAuth 2.0 flow.
Corps
Un tableau d'objets PublicObjectId. Chaque objet contient une chaîne d'id représentant un identifiant unique pour un objet public. Cette propriété est requise.
Show child attributes
Show child attributes
Réponse
successful operation
La date et l'heure auxquelles la réponse a été effectuée
Un tableau d'objets de taux de change qui représente les résultats de l'opération de lot.
Show child attributes
Show child attributes
La date et l'heure de la demande.
Le statut actuel de la réponse (par exemple, TERMINÉ)
CANCELED, COMPLETE, PENDING, PROCESSING Le lien vers la page suivante avec les taux de change.
Show child attributes
Show child attributes
La date et l'heure de la demande.