{ "name": "flowerate", "apidoc": { "version": "0.0.1" }, "info": { "contact": { "name": "Cheng" } }, "description": "Web api that provides hourly updated currency exchange rate and webhook for specified rate updates", "models": { "RateBetweenResponse" : { "description" : "flowerate response for exchange rate between two currencies", "fields": [ { "name": "base", "type": "currency", "description": "base currency", "required": true }, { "name": "target", "type": "currency", "description": "targey currency", "required": true }, { "name": "rate", "type": "double", "description": "exchange rate, target currency to base currency", "required": true }, { "name": "timestamp", "type": "long", "description": "epoch timestamp of returned exchange rate", "required": true }] }, "RateToAllResponse" : { "description" : "flowerate response for exchange rate for base currency to all currencies", "fields": [ { "name": "base", "type": "currency", "description": "base currency", "required": true }, { "name": "rates", "type": "map[double]", "description": "target currencies", "required": true }, { "name": "timestamp", "type": "long", "description": "epoch timestamp of returned exchange rate", "required": true }] }, "FixerRatesSuccessResponse" : { "description" : "fixer.io response for exchange rate between two currencies", "fields": [ { "name": "success", "type": "boolean", "description": "response status, should be true in this case", "required": true }, { "name": "base", "type": "currency", "description": "base currency", "required": true }, { "name": "rates", "type": "map[double]", "description": "target currencies", "required": true }, { "name": "timestamp", "type": "long", "description": "epoch timestamp of returned exchange rate", "required": true }] }, "FixerRatesFailureResponse" : { "description" : "fixer.io failure response for exchange rate between two currencies", "fields": [ { "name": "success", "type": "boolean", "description": "response status, should be false in this case", "required": true }, { "name": "error", "type": "FixerErrorDetail", "description": "error from fixer.io", "required": true }] }, "FixerErrorDetail" : { "description" : "fixer.io error detail inside a failure response", "fields": [ { "name": "code", "type": "long", "description": "error code", "required": true }, { "name": "type", "type": "string", "description": "fixer.io error type", "required": true }] }, "WebhookRegisterRequest": { "description" : "payload of POST request to register a webhook", "fields": [ { "name": "clientId", "type": "String", "description": "user id", "required": true }, { "name": "webhooks", "type": "[WebhookDetail]", "description": "a sequence of webhook details", "required": true } ] }, "WebhookDetail": { "description" : "describe subscribed action and corresponding url of a webhook", "fields": [ { "name": "currencyRateEvent", "type": "currencyRateEvent", "description": "enum value, currency rate event that this webhook subscribe to", "required": true }, { "name": "url", "type": "string", "description": "where POST request to when subscribed event happens", "required": true } ] } }, "enums": { "currency": { "values": [ { "name": "AED", "value": "AED" }, { "name": "AFN", "value": "AFN" }, { "name": "ALL", "value": "ALL" }, { "name": "AMD", "value": "AMD" }, { "name": "ANG", "value": "ANG" }, { "name": "AOA", "value": "AOA" }, { "name": "ARS", "value": "ARS" }, { "name": "AUD", "value": "AUD" }, { "name": "AWG", "value": "AWG" }, { "name": "AZN", "value": "AZN" }, { "name": "BAM", "value": "BAM" }, { "name": "BBD", "value": "BBD" }, { "name": "BDT", "value": "BDT" }, { "name": "BGN", "value": "BGN" }, { "name": "BHD", "value": "BHD" }, { "name": "BIF", "value": "BIF" }, { "name": "BMD", "value": "BMD" }, { "name": "BND", "value": "BND" }, { "name": "BOB", "value": "BOB" }, { "name": "BRL", "value": "BRL" }, { "name": "BSD", "value": "BSD" }, { "name": "BTC", "value": "BTC" }, { "name": "BTN", "value": "BTN" }, { "name": "BWP", "value": "BWP" }, { "name": "BYN", "value": "BYN" }, { "name": "BYR", "value": "BYR" }, { "name": "BZD", "value": "BZD" }, { "name": "CAD", "value": "CAD" }, { "name": "CDF", "value": "CDF" }, { "name": "CHF", "value": "CHF" }, { "name": "CLF", "value": "CLF" }, { "name": "CLP", "value": "CLP" }, { "name": "CNY", "value": "CNY" }, { "name": "COP", "value": "COP" }, { "name": "CRC", "value": "CRC" }, { "name": "CUC", "value": "CUC" }, { "name": "CUP", "value": "CUP" }, { "name": "CVE", "value": "CVE" }, { "name": "CZK", "value": "CZK" }, { "name": "DJF", "value": "DJF" }, { "name": "DKK", "value": "DKK" }, { "name": "DOP", "value": "DOP" }, { "name": "DZD", "value": "DZD" }, { "name": "EGP", "value": "EGP" }, { "name": "ERN", "value": "ERN" }, { "name": "ETB", "value": "ETB" }, { "name": "EUR", "value": "EUR" }, { "name": "FJD", "value": "FJD" }, { "name": "FKP", "value": "FKP" }, { "name": "GBP", "value": "GBP" }, { "name": "GEL", "value": "GEL" }, { "name": "GGP", "value": "GGP" }, { "name": "GHS", "value": "GHS" }, { "name": "GIP", "value": "GIP" }, { "name": "GMD", "value": "GMD" }, { "name": "GNF", "value": "GNF" }, { "name": "GTQ", "value": "GTQ" }, { "name": "GYD", "value": "GYD" }, { "name": "HKD", "value": "HKD" }, { "name": "HNL", "value": "HNL" }, { "name": "HRK", "value": "HRK" }, { "name": "HTG", "value": "HTG" }, { "name": "HUF", "value": "HUF" }, { "name": "IDR", "value": "IDR" }, { "name": "ILS", "value": "ILS" }, { "name": "IMP", "value": "IMP" }, { "name": "INR", "value": "INR" }, { "name": "IQD", "value": "IQD" }, { "name": "IRR", "value": "IRR" }, { "name": "ISK", "value": "ISK" }, { "name": "JEP", "value": "JEP" }, { "name": "JMD", "value": "JMD" }, { "name": "JOD", "value": "JOD" }, { "name": "JPY", "value": "JPY" }, { "name": "KES", "value": "KES" }, { "name": "KGS", "value": "KGS" }, { "name": "KHR", "value": "KHR" }, { "name": "KMF", "value": "KMF" }, { "name": "KPW", "value": "KPW" }, { "name": "KRW", "value": "KRW" }, { "name": "KWD", "value": "KWD" }, { "name": "KYD", "value": "KYD" }, { "name": "KZT", "value": "KZT" }, { "name": "LAK", "value": "LAK" }, { "name": "LBP", "value": "LBP" }, { "name": "LKR", "value": "LKR" }, { "name": "LRD", "value": "LRD" }, { "name": "LSL", "value": "LSL" }, { "name": "LTL", "value": "LTL" }, { "name": "LVL", "value": "LVL" }, { "name": "LYD", "value": "LYD" }, { "name": "MAD", "value": "MAD" }, { "name": "MDL", "value": "MDL" }, { "name": "MGA", "value": "MGA" }, { "name": "MKD", "value": "MKD" }, { "name": "MMK", "value": "MMK" }, { "name": "MNT", "value": "MNT" }, { "name": "MOP", "value": "MOP" }, { "name": "MRO", "value": "MRO" }, { "name": "MUR", "value": "MUR" }, { "name": "MVR", "value": "MVR" }, { "name": "MWK", "value": "MWK" }, { "name": "MXN", "value": "MXN" }, { "name": "MYR", "value": "MYR" }, { "name": "MZN", "value": "MZN" }, { "name": "NAD", "value": "NAD" }, { "name": "NGN", "value": "NGN" }, { "name": "NIO", "value": "NIO" }, { "name": "NOK", "value": "NOK" }, { "name": "NPR", "value": "NPR" }, { "name": "NZD", "value": "NZD" }, { "name": "OMR", "value": "OMR" }, { "name": "PAB", "value": "PAB" }, { "name": "PEN", "value": "PEN" }, { "name": "PGK", "value": "PGK" }, { "name": "PHP", "value": "PHP" }, { "name": "PKR", "value": "PKR" }, { "name": "PLN", "value": "PLN" }, { "name": "PYG", "value": "PYG" }, { "name": "QAR", "value": "QAR" }, { "name": "RON", "value": "RON" }, { "name": "RSD", "value": "RSD" }, { "name": "RUB", "value": "RUB" }, { "name": "RWF", "value": "RWF" }, { "name": "SAR", "value": "SAR" }, { "name": "SBD", "value": "SBD" }, { "name": "SCR", "value": "SCR" }, { "name": "SDG", "value": "SDG" }, { "name": "SEK", "value": "SEK" }, { "name": "SGD", "value": "SGD" }, { "name": "SHP", "value": "SHP" }, { "name": "SLL", "value": "SLL" }, { "name": "SOS", "value": "SOS" }, { "name": "SRD", "value": "SRD" }, { "name": "STD", "value": "STD" }, { "name": "SVC", "value": "SVC" }, { "name": "SYP", "value": "SYP" }, { "name": "SZL", "value": "SZL" }, { "name": "THB", "value": "THB" }, { "name": "TJS", "value": "TJS" }, { "name": "TMT", "value": "TMT" }, { "name": "TND", "value": "TND" }, { "name": "TOP", "value": "TOP" }, { "name": "TRY", "value": "TRY" }, { "name": "TTD", "value": "TTD" }, { "name": "TWD", "value": "TWD" }, { "name": "TZS", "value": "TZS" }, { "name": "UAH", "value": "UAH" }, { "name": "UGX", "value": "UGX" }, { "name": "USD", "value": "USD" }, { "name": "UYU", "value": "UYU" }, { "name": "UZS", "value": "UZS" }, { "name": "VEF", "value": "VEF" }, { "name": "VND", "value": "VND" }, { "name": "VUV", "value": "VUV" }, { "name": "WST", "value": "WST" }, { "name": "XAF", "value": "XAF" }, { "name": "XAG", "value": "XAG" }, { "name": "XAU", "value": "XAU" }, { "name": "XCD", "value": "XCD" }, { "name": "XDR", "value": "XDR" }, { "name": "XOF", "value": "XOF" }, { "name": "XPF", "value": "XPF" }, { "name": "YER", "value": "YER" }, { "name": "ZAR", "value": "ZAR" }, { "name": "ZMK", "value": "ZMK" }, { "name": "ZMW", "value": "ZMW" }, { "name": "ZWL", "value": "ZWL" } ] }, "currencyRateEvent": { "values": [ { "name": "CurrencyRateChange", "value": "CurrencyRateChange" } ] } }, "unions": { "FixerRateResponse": { "description": "Models rates response from fixer io", "types": [ { "type": "FixerRatesSuccessResponse" }, { "type": "FixerRatesFailureResponse" } ] } } }