Grain API (1.0.0)
Download OpenAPI specification:Download
Interact with Grain's servers for hedging transactions exposed to cross-currency on your platform
Customer objects are the foundation of integrating with Grain. They represent a customer of your business.
You can manage the inventory of transactions for such customers, and offer them automatic hedging for their foreign-exchange exposures.
Create
Creates or updates a customer on the Grain platform. If a customer with the given external ID already exists, the existing customer is updated; otherwise, a new customer is created. This endpoint is used for managing customers transacting through your platform, allowing you to later create transactions and hedges for these customers.
Authorizations:
Request Body schema: application/jsonrequired
The payload required in order to create a customer
contactEmail | string (ContactEmail) The email address of the company's primary contact |
contactFullName | string The name of the company's primary contact |
contactPhoneNumber | string The phone number of the company's primary contact |
companyName required | string The legal name of the customer's company |
companyAddress | string The address of the company |
companyCity | string The city of the company |
companyState | string The state the company is in (US based) |
companyCountry required | string (CountryCode) The alpha-2 ISO 3166 country code of the entity's country. |
companyTaxId | string The tax identification or registration number of the company |
externalCustomerId required | string The id used to identify the customer within your platform |
extraFields | object (CustomersExtraFieldsParam) Additional fields that provide further details about the company. These fields should be specified as a valid JSON object. |
Responses
Request samples
- Payload
{- "contactFullName": "Garrick Ollivander",
- "contactPhoneNumber": "+12125551234",
- "companyName": "Ollivander's Wand Shop",
- "companyAddress": "12 Diagon Alley",
- "companyCity": "London",
- "companyState": "London",
- "companyCountry": "GB",
- "companyTaxId": "123-45-6789",
- "externalCustomerId": "630231b3ae0d7e9e5097ad35",
- "extraFields": {
- "field_a": "value_a",
- "field_b": "value_b"
}
}
Response samples
- 200
- 201
- 422
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
List
List all customers.
Authorizations:
query Parameters
external_customer_id | string external_customer_id is the customer id, as identified within your system |
page | number <double> (Page) >= 1 page number indicating which set of items to return |
per_page | number <double> (PerPage) [ 1 .. 100 ] The number of items in a page |
Responses
Response samples
- 200
{- "customers": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "companyName": "Ollivander's Wand Shop",
- "companyAddress": "12 Diagon Alley",
- "companyCity": "London",
- "companyState": "London",
- "companyCountry": "GB",
- "contactFullName": "Garrick Ollivander",
- "contactPhoneNumber": "+12125551234",
- "companyTaxId": "123-45-6789",
- "externalCustomerId": "630231b3ae0d7e9e5097ad35",
- "status": "Pending",
- "extraFields": {
- "field_a": "value_a",
- "field_b": "value_b"
}
}
], - "pagination": {
- "page": 1,
- "perPage": 1,
- "totalResults": 0.1
}
}
Update
Update an existing customer with new details.
Authorizations:
path Parameters
customerId required | string <uuid> (UUID) The id of the customer within the Grain platform. |
Request Body schema: application/jsonrequired
The payload required in order to update a customer
contactEmail | string (ContactEmail) The email address of the company's primary contact |
contactFullName | string The name of the company's primary contact |
contactPhoneNumber | string The phone number of the company's primary contact |
companyName | string The legal name of the customer's company |
companyAddress | string The address of the company |
companyCity | string The city of the company |
companyState | string The state the company is in (US based) |
companyCountry | string (CountryCode) The alpha-2 ISO 3166 country code of the entity's country. |
companyTaxId | string The tax identification or registration number of the company |
externalCustomerId | string The id used to identify the customer within your platform |
extraFields | object (CustomersExtraFieldsParam) Additional fields that provide further details about the company. These fields should be specified as a valid JSON object. |
Responses
Request samples
- Payload
{- "contactFullName": "Garrick Ollivander",
- "contactPhoneNumber": "+12125551234",
- "companyName": "Ollivander's Wand Shop",
- "companyAddress": "12 Diagon Alley",
- "companyCity": "London",
- "companyState": "London",
- "companyCountry": "GB",
- "companyTaxId": "123-45-6789",
- "externalCustomerId": "630231b3ae0d7e9e5097ad35",
- "extraFields": {
- "field_a": "value_a",
- "field_b": "value_b"
}
}
Response samples
- 404
- 409
- 422
{- "message": "found no customer with the given id"
}
Get
Retrieve a customer using the Grain customer id.
Authorizations:
path Parameters
customerId required | string <uuid> (UUID) The UUID of the customer |
Responses
Response samples
- 200
- 404
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "companyName": "Ollivander's Wand Shop",
- "companyAddress": "12 Diagon Alley",
- "companyCity": "London",
- "companyState": "London",
- "companyCountry": "GB",
- "contactFullName": "Garrick Ollivander",
- "contactPhoneNumber": "+12125551234",
- "companyTaxId": "123-45-6789",
- "externalCustomerId": "630231b3ae0d7e9e5097ad35",
- "status": "Pending",
- "extraFields": {
- "field_a": "value_a",
- "field_b": "value_b"
}
}
List
List all transactions for the given customer ID on the Grain platform.
Authorizations:
path Parameters
customerId required | string <uuid> (UUID) The customer ID on the Grain platform. |
query Parameters
from_currency | string Return transactions with this "from currency" only. |
to_currency | string Return transactions with this "to currency" only. |
page | number <double> (Page) >= 1 page number indicating which set of items to return |
per_page | number <double> (PerPage) [ 1 .. 100 ] The number of items in a page |
Responses
Response samples
- 200
{- "transactions": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "customerId": "87d8e330-2878-4742-a86f-dbbb3bf522ac",
- "fromCurrency": "MXN",
- "toCurrency": "USD",
- "toCurrencyAmount": "1560",
- "issuedAt": "2023-04-15",
- "dueAt": "2023-04-15",
- "cancelledAt": "2023-04-15",
- "paidAt": "2023-04-15",
- "externalCustomerId": "630231b3ae0d7e9e5097ad35",
- "fromCurrencyIssuedAmount": "32161.8",
- "fromCurrencyCurrentAmount": "32161.8",
- "fromCurrencyPaidAmount": "null",
- "hedgeIds": [
- "987557bb-67bd-4e97-b54c-1bb43278ec28",
- "a87557bb-67bd-4e97-b54c-1bb43278ec29"
], - "externalTransactionId": "780231b3ae0d7e9e5097nd89"
}
], - "pagination": {
- "page": 1,
- "perPage": 1,
- "totalResults": 0.1
}
}
Create
Create a transaction with Grain, based on a transaction performed by a customer on your platform.
Authorizations:
path Parameters
customerId required | string <uuid> (UUID) The id of the customer within the Grain platform. |
Request Body schema: application/jsonrequired
The payload required in order to create a transaction
fromCurrency required | string The currency in which the transaction should be paid at by your customer. |
toCurrency required | string The currency in which the inventory item is listed at on your platform. |
toCurrencyAmount required | number <double> The amount the transaction is listed in, denoted in |
issuedAt required | string <YYYY-MM-DD> The date in which the transaction was created, denoted in |
dueAt required | string <YYYY-MM-DD> The date in which the transaction will be paid for, denoted in |
externalTransactionId required | string The transaction id, as identified within your system. |
extraFields | object (ExtraFieldsParam) Additional fields that provide further details about the transaction. These fields should be specified as a valid JSON object. |
Responses
Request samples
- Payload
{- "fromCurrency": "MXN",
- "toCurrency": "USD",
- "toCurrencyAmount": "1560",
- "issuedAt": "2023-01-18",
- "dueAt": "2023-02-23",
- "externalTransactionId": "780231b3ae0d7e9e5097nd89",
- "extraFields": {
- "field_a": "value_a",
- "field_b": "value_b"
}
}
Response samples
- 201
- 400
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
Get
Retrieve a specific transaction by its id.
Authorizations:
path Parameters
customerId required | string <uuid> (UUID) The id of the customer within the Grain platform. |
transactionId required | string <uuid> (UUID) The id of the transaction within the Grain platform. |
Responses
Response samples
- 200
- 404
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "customerId": "87d8e330-2878-4742-a86f-dbbb3bf522ac",
- "fromCurrency": "MXN",
- "toCurrency": "USD",
- "toCurrencyAmount": "1560",
- "issuedAt": "2023-04-15",
- "dueAt": "2023-04-15",
- "cancelledAt": "2023-04-15",
- "paidAt": "2023-04-15",
- "externalCustomerId": "630231b3ae0d7e9e5097ad35",
- "fromCurrencyIssuedAmount": "32161.8",
- "fromCurrencyCurrentAmount": "32161.8",
- "fromCurrencyPaidAmount": "null",
- "hedgeIds": [
- "987557bb-67bd-4e97-b54c-1bb43278ec28",
- "a87557bb-67bd-4e97-b54c-1bb43278ec29"
], - "externalTransactionId": "780231b3ae0d7e9e5097nd89"
}
Delete
Delete a specific transaction by its id.
This endpoint is used to delete data which was never actually bought on your platform but still reported to Grain.
For notifying Grain a transaction has been cancelled on your platform,
see the transaction cancelled endpoint.
Authorizations:
path Parameters
customerId required | string <uuid> (UUID) The id of the customer within the Grain platform. |
transactionId required | string <uuid> (UUID) The id of the transaction within the Grain platform. |
Responses
Response samples
- 404
- 409
{- "message": "found no transaction with the given id"
}
Paid
Notify grain of a transaction that has been cancelled after it was purchased on your platform.
Authorizations:
path Parameters
customerId required | string <uuid> (UUID) The id of the customer within the Grain platform. |
transactionId required | string <uuid> (UUID) The id of the transaction within the Grain platform. |
Responses
Response samples
- 200
- 208
- 404
- 451
{- "hedgeIds": [
- "987557bb-67bd-4e97-b54c-1bb43278ec28",
- "a87557bb-67bd-4e97-b54c-1bb43278ec29"
], - "transactionId": "4d78ac65-2c3f-47e2-8bf3-3f76124e9d27"
}
UpdateExternalTransactionId
Update an external transaction id of an existing transaction.
Authorizations:
path Parameters
customerId required | string <uuid> (UUID) The id of the customer within the Grain platform. |
transactionId required | string <uuid> (UUID) The id of the transaction within the Grain platform. |
Request Body schema: application/jsonrequired
The payload required in order to update an external transaction id of transaction
externalTransactionId required | string The transaction id, as identified within your system. |
Responses
Request samples
- Payload
{- "externalTransactionId": "780231b3ae0d7e9e5097nd89"
}
Response samples
- 200
- 404
- 409
{- "hedgeIds": [
- "987557bb-67bd-4e97-b54c-1bb43278ec28",
- "a87557bb-67bd-4e97-b54c-1bb43278ec29"
], - "transactionId": "4d78ac65-2c3f-47e2-8bf3-3f76124e9d27"
}
Quote
Generates a quote for a new hedge attached to the customer matching the customerId
path parameter.
Authorizations:
path Parameters
customerId required | string The id of the customer within the Grain platform. |
header Parameters
X-Customer-IP required | string <IPv4> (CustomerIP) The IPv4 address of the browser from which the customer contacts your platform. |
Request Body schema: application/jsonrequired
The payload required in order to ask for a hedge quote
fromCurrency required | string The currency in which the transaction should be paid at by your customer. |
toCurrency required | string The currency in which the inventory item is listed at on your platform. |
toCurrencyAmount | number <double> The amount of |
endAt required | string <YYYY-MM-DD> (GrainDateFormat) The date format accepted by Grain's API. We accept dash separated ISO-8601 date-only strings. |
Responses
Request samples
- Payload
{- "fromCurrency": "MXN",
- "toCurrency": "USD",
- "toCurrencyAmount": "1560",
- "endAt": "2023-04-15"
}
Response samples
- 201
- 400
- 412
- 422
- 451
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "fromCurrency": "MXN",
- "toCurrency": "USD",
- "quote": "20.6165",
- "validUntilTs": "1659625098",
- "endAt": "2023-04-15",
- "initialCollateralPercentage": "5",
- "toCurrencyAmount": "1560",
- "fromCurrencyAmount": "32161.8"
}
Accept
Accept a hedge quote, originated from quote request
Authorizations:
path Parameters
customerId required | string The id of the customer within the Grain platform. |
header Parameters
X-Customer-IP required | string <IPv4> (CustomerIP) The IPv4 address of the browser from which the customer contacts your platform. |
Request Body schema: application/jsonrequired
The payload required in order to accept a hedge
hedgeProposalId required | string The id of the hedge proposal to accept. |
transactionId | string The id of the transaction within the Grain platform. If not supplied, this hedge will be created without a transaction. |
endAt | string <YYYY-MM-DD> (GrainDateFormat) The date format accepted by Grain's API. We accept dash separated ISO-8601 date-only strings. |
toCurrencyAmount | number <double> The amount to hedge in the toCurrency, if amount was not specified on quote, it should be specified on Accept. This value is rounded up to two decimal places to ensure precision in the hedging process. For example, an input of 3052.1124 will be rounded to 3052.12. |
externalTransactionId | string The transaction id, as identified within your system - required only when the transactionId within the Grain platform is not provided. |
extraFields | object (ExtraFieldsParam) Additional fields that provide further details about the transaction. These fields should be specified as a valid JSON object. |
Responses
Request samples
- Payload
{- "hedgeProposalId": "8173b9a7-ee61-413e-b9e3-7c04b2a067c5",
- "transactionId": "4d78ac65-2c3f-47e2-8bf3-3f76124e9d27",
- "endAt": "2023-04-15",
- "toCurrencyAmount": "1560",
- "externalTransactionId": "780231b3ae0d7e9e5097nd89",
- "extraFields": {
- "field_a": "value_a",
- "field_b": "value_b"
}
}
Response samples
- 200
- 400
- 409
- 422
- 428
- 451
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "transactionId": "75906707-8c31-479c-b354-aa805c4cefbc"
}
AcceptOfflineQuote
Accept a hedge quote, originated from the offline rates request
Authorizations:
path Parameters
customerId required | string The id of the customer within the Grain platform. |
header Parameters
X-Customer-IP required | string <IPv4> (CustomerIP) The IPv4 address of the browser from which the customer contacts your platform. |
Request Body schema: application/jsonrequired
The payload required in order to accept an offline quote hedge
revision required | number <double> The id of the revision that defines the accepted rate for the currency-pair and tenor. |
fromCurrency required | string The currency in which the transaction should be paid at by your customer. |
toCurrency required | string the currency you want to buy. |
toCurrencyAmount required | number <double> The amount to hedge in the toCurrency. |
endAt required | string <YYYY-MM-DD> (GrainDateFormat) The date format accepted by Grain's API. We accept dash separated ISO-8601 date-only strings. |
rate required | number <double> Represents the exchange rate according to the offline map of currency pairs to tenor object. The calculation of the tenor is based on the difference in calendar days between the 'tenorCalculationDate' and the 'endAt' date:
When counting the difference in calendar days, every day is counted as one regardless of the duration of the day. This means that the calculation includes all days: weekends, holidays, and weekdays alike. For example, if the 'endAt' date is 2023-12-16 and the 'tenorCalculationDate' is 2024-12-15, the result is 1 calendar day. To calculate the difference in calendar days accurately, we recommend using a date manipulation library, such as date-fns and its |
externalTransactionId | string Optional The transaction id, as identified within your system. |
extraFields | object (ExtraFieldsParam) Additional fields that provide further details about the transaction. These fields should be specified as a valid JSON object. |
Responses
Request samples
- Payload
{- "revision": 156,
- "fromCurrency": "MXN",
- "toCurrency": "USD",
- "toCurrencyAmount": 100000,
- "endAt": "2023-04-15",
- "rate": 20.616512,
- "externalTransactionId": "780231b3ae0d7e9e5097nd89",
- "extraFields": {
- "field_a": "value_a",
- "field_b": "value_b"
}
}
Response samples
- 200
- 400
- 409
- 422
- 428
- 451
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "transactionId": "75906707-8c31-479c-b354-aa805c4cefbc"
}
Get
Retrieve a specific hedge by its id.
Authorizations:
path Parameters
customerId required | string The id of the customer within the Grain platform. |
hedgeId required | string The id of the hedge within the Grain platform. |
Responses
Response samples
- 200
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "customerId": "87d8e330-2878-4742-a86f-dbbb3bf522ac",
- "status": "Active",
- "transactionId": "75906707-8c31-479c-b354-aa805c4cefbc",
- "fromCurrency": "MXN",
- "toCurrency": "USD",
- "externalCustomerId": "630231b3ae0d7e9e5097ad35",
- "toCurrencyAmount": "1560",
- "fromCurrencyAmount": "32161.8",
- "quote": "20.6165",
- "acceptedAtTs": "1659625088",
- "issuedAt": "2023-04-15",
- "endAt": "2023-04-15",
- "cancelledAt": "2023-02-23",
- "fundsReceivedAt": "2023-02-23",
- "completedAt": "2023-02-23",
- "completedAtTs": "1659625090",
- "overdueAt": "2023-04-15",
- "settlementAt": "2023-04-15",
- "settlementType": "collection"
}
Cancel
Cancel an existing hedge.
Authorizations:
path Parameters
customerId required | string The id of the customer within the Grain platform. |
hedgeId required | string The id of the hedge within the Grain platform. |
header Parameters
X-Customer-IP required | string <IPv4> (CustomerIP) The IPv4 address of the browser from which the customer contacts your platform. |
Request Body schema: application/jsonrequired
reason | string Description of the reason the hedge was canceled. |
Responses
Request samples
- Payload
{- "reason": "Mize"
}
Response samples
- 200
- 409
- 412
- 451
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "transactionId": "75906707-8c31-479c-b354-aa805c4cefbc"
}
List
List all hedges for the given customer ID.
Authorizations:
path Parameters
customerId required | string The id of the customer within the Grain platform. |
query Parameters
page | number <double> (Page) >= 1 page number indicating which set of items to return |
per_page | number <double> (PerPage) [ 1 .. 100 ] The number of items in a page |
Responses
Response samples
- 200
{- "hedges": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "customerId": "87d8e330-2878-4742-a86f-dbbb3bf522ac",
- "status": "Active",
- "transactionId": "75906707-8c31-479c-b354-aa805c4cefbc",
- "fromCurrency": "MXN",
- "toCurrency": "USD",
- "externalCustomerId": "630231b3ae0d7e9e5097ad35",
- "toCurrencyAmount": "1560",
- "fromCurrencyAmount": "32161.8",
- "quote": "20.6165",
- "acceptedAtTs": "1659625088",
- "issuedAt": "2023-04-15",
- "endAt": "2023-04-15",
- "cancelledAt": "2023-02-23",
- "fundsReceivedAt": "2023-02-23",
- "completedAt": "2023-02-23",
- "completedAtTs": "1659625090",
- "overdueAt": "2023-04-15",
- "settlementAt": "2023-04-15",
- "settlementType": "collection"
}
], - "pagination": {
- "page": 1,
- "perPage": 1,
- "totalResults": 0.1
}
}
GetOfflineRates
Retrieves the latest rates for selected currency paris for offline use, using the Grain Partner ID.
Authorizations:
query Parameters
pairs | string Optional query parameter specifying currency pairs. Multiple pairs can be provided as a comma-separated list. Please encode the query param beforehand. For example, ?pairs=EURUSD%2CGBPEUR represents ?pairs=EURUSD,GBPEUR |
Responses
Response samples
- 200
- 422
{- "tenorCalculationDate": "2023-12-21",
- "validUntilTs": 1703770471,
- "rates": {
- "USDEUR": {
- "7": 1.11293728,
- "14": 1.12093476,
- "30": 1.10384729,
- "60": 1.09723456,
- "90": 1.08576234,
- "120": 1.07456321,
- "150": 1.06781234,
- "180": 1.05678901,
- "210": 1.0456789,
- "240": 1.03456789,
- "270": 1.02345678,
- "300": 1.01234567,
- "330": 1.00987654,
- "360": 0.99876543
}, - "USDGBP": {
- "7": 1.27987654,
- "14": 1.26876543,
- "30": 1.28123456,
- "60": 1.29345678,
- "90": 1.30098765,
- "120": 1.31456789,
- "150": 1.32456789,
- "180": 1.33678901,
- "210": 1.34789012,
- "240": 1.35890123,
- "270": 1.36901234,
- "300": 1.37123456,
- "330": 1.38234567,
- "360": 1.39456789
}
}, - "revision": 156
}
Quote
Generates a quote for a new spot, for current organization.
Authorizations:
header Parameters
X-Customer-IP required | string <IPv4> (CustomerIP) The IPv4 address of the browser from which the customer contacts your platform. |
Request Body schema: application/jsonrequired
The payload required in order to ask for a spot quote
fromCurrency required | string The currency in which the transaction should be paid at by your customer. |
toCurrency required | string The currency in which the inventory item is listed at on your platform. |
toCurrencyAmount | number <double> The amount of |
Responses
Request samples
- Payload
{- "fromCurrency": "MXN",
- "toCurrency": "USD",
- "toCurrencyAmount": "1560"
}
Response samples
- 201
- 400
- 406
- 422
- 451
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "fromCurrency": "MXN",
- "toCurrency": "USD",
- "toCurrencyAmount": "1560",
- "fromCurrencyAmount": "32161.8",
- "quote": "20.6165",
- "validUntilTs": "1659625098"
}
Accept
Accept a spot quote, originated from a quote requested
Authorizations:
header Parameters
X-Customer-IP required | string <IPv4> (CustomerIP) The IPv4 address of the browser from which the customer contacts your platform. |
Request Body schema: application/jsonrequired
The payload required in order to accept a spot
spotProposalId required | string The id of the spot proposal to accept. |
toCurrencyAmount | number <double> the amount to transfer in the toCurrency. If amount was not specified on quote, it should be specified on Accept. |
extraFields | object (ExtraFieldsParam) Additional fields that provide further details about the transaction. These fields should be specified as a valid JSON object. |
Responses
Request samples
- Payload
{- "spotProposalId": "8173b9a7-ee61-413e-b9e3-7c04b2a067c5",
- "toCurrencyAmount": "1560",
- "extraFields": {
- "field_a": "value_a",
- "field_b": "value_b"
}
}
Response samples
- 200
- 400
- 409
- 451
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}
Get
Retrieve a specific spot by its id.
Authorizations:
path Parameters
spotId required | string The id of the spot within the Grain platform. |
Responses
Response samples
- 200
- 404
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "fromCurrency": "MXN",
- "toCurrency": "USD",
- "toCurrencyAmount": "1560",
- "fromCurrencyAmount": "32161.8",
- "quote": "20.6165",
- "acceptedAtTs": "1659625088",
- "issuedAt": "2023-04-15",
- "completedAt": "2023-02-23"
}
List
List all spots for the given organization
Authorizations:
query Parameters
page | number <double> (Page) >= 1 page number indicating which set of items to return |
per_page | number <double> (PerPage) [ 1 .. 100 ] The number of items in a page |
Responses
Response samples
- 200
- 422
{- "spots": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "organizationId": "7bc05553-4b68-44e8-b7bc-37be63c6d9e9",
- "fromCurrency": "MXN",
- "toCurrency": "USD",
- "toCurrencyAmount": "1560",
- "fromCurrencyAmount": "32161.8",
- "quote": "20.6165",
- "acceptedAtTs": "1659625088",
- "issuedAt": "2023-04-15",
- "completedAt": "2023-02-23"
}
], - "pagination": {
- "page": 1,
- "perPage": 1,
- "totalResults": 0.1
}
}