From 1c22bbfed480c2312ddfb7e91e55521cc69026f5 Mon Sep 17 00:00:00 2001 From: cahthuranag Date: Sun, 24 May 2026 21:37:05 +0100 Subject: [PATCH 1/2] Proposal - AllRatesToday AllRatesToday connector for real-time and historical currency exchange rates. Supports 160+ currencies with rates sourced from Reuters/Refinitiv, updated every 60 seconds. Operations: - Get Exchange Rate (live mid-market rate) - Get Public Rate (no auth required) - Get Historical Rate (date range with grouping) - List Supported Currencies Co-Authored-By: Claude Opus 4.6 (1M context) --- .../AllRatesToday/apiDefinition.swagger.json | 341 ++++++++++++++++++ .../AllRatesToday/apiProperties.json | 35 ++ .../AllRatesToday/readme.md | 42 +++ 3 files changed, 418 insertions(+) create mode 100644 independent-publisher-connectors/AllRatesToday/apiDefinition.swagger.json create mode 100644 independent-publisher-connectors/AllRatesToday/apiProperties.json create mode 100644 independent-publisher-connectors/AllRatesToday/readme.md diff --git a/independent-publisher-connectors/AllRatesToday/apiDefinition.swagger.json b/independent-publisher-connectors/AllRatesToday/apiDefinition.swagger.json new file mode 100644 index 0000000000..bcfbac25e6 --- /dev/null +++ b/independent-publisher-connectors/AllRatesToday/apiDefinition.swagger.json @@ -0,0 +1,341 @@ +{ + "swagger": "2.0", + "info": { + "title": "AllRatesToday", + "description": "Get real-time and historical currency exchange rates for 160+ currencies. Rates are sourced from Reuters/Refinitiv and interbank feeds, updated every 60 seconds.", + "version": "1.0", + "contact": { + "name": "Cahthurana G", + "email": "basnayakac8@gmail.com", + "url": "https://allratestoday.com" + } + }, + "host": "allratestoday.com", + "basePath": "/", + "schemes": [ + "https" + ], + "consumes": [], + "produces": [ + "application/json" + ], + "paths": { + "/api/v1/rates": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "rate": { + "type": "number", + "format": "float", + "description": "The exchange rate value.", + "title": "Rate" + }, + "source": { + "type": "string", + "description": "Source currency code, eg 'USD'.", + "title": "Source" + }, + "target": { + "type": "string", + "description": "Target currency code, eg 'EUR'.", + "title": "Target" + }, + "time": { + "type": "string", + "description": "Timestamp of the rate.", + "title": "Time" + } + } + } + } + }, + "400": { + "description": "Bad Request" + }, + "401": { + "description": "Unauthorized" + }, + "429": { + "description": "Rate limit exceeded" + }, + "500": { + "description": "Internal Server Error" + } + }, + "summary": "Get Exchange Rate", + "description": "Get the live mid-market exchange rate between two currencies", + "operationId": "GetExchangeRate", + "parameters": [ + { + "name": "source", + "in": "query", + "required": true, + "type": "string", + "description": "Source currency code, eg 'USD'", + "x-ms-summary": "Source currency" + }, + { + "name": "target", + "in": "query", + "required": true, + "type": "string", + "description": "Target currency code, eg 'EUR'. Comma-separated for multiple targets, eg 'EUR,GBP,JPY'", + "x-ms-summary": "Target currency" + } + ] + } + }, + "/api/v1/symbols": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "object", + "properties": { + "currencies": { + "type": "array", + "items": { + "type": "object", + "properties": { + "code": { + "type": "string", + "description": "ISO 4217 currency code, eg 'USD'.", + "title": "Code" + }, + "name": { + "type": "string", + "description": "Currency name, eg 'US Dollar'.", + "title": "Name" + }, + "symbol": { + "type": "string", + "description": "Currency symbol, eg '$'.", + "title": "Symbol" + } + } + }, + "description": "List of supported currencies.", + "title": "Currencies" + }, + "count": { + "type": "integer", + "format": "int32", + "description": "Total number of supported currencies.", + "title": "Count" + } + } + } + }, + "500": { + "description": "Internal Server Error" + } + }, + "summary": "List Supported Currencies", + "description": "List all supported currency codes, names, and symbols", + "operationId": "ListCurrencies", + "parameters": [] + } + }, + "/api/rate": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "rate": { + "type": "number", + "format": "float", + "description": "The exchange rate value.", + "title": "Rate" + }, + "source": { + "type": "string", + "description": "Source currency code.", + "title": "Source" + }, + "target": { + "type": "string", + "description": "Target currency code.", + "title": "Target" + }, + "time": { + "type": "string", + "description": "Timestamp of the rate.", + "title": "Time" + } + }, + "description": "Rate data object.", + "title": "Data" + } + } + } + }, + "400": { + "description": "Bad Request" + }, + "500": { + "description": "Internal Server Error" + } + }, + "summary": "Get Public Rate", + "description": "Get a single exchange rate between two currencies without authentication", + "operationId": "GetPublicRate", + "parameters": [ + { + "name": "source", + "in": "query", + "required": true, + "type": "string", + "description": "Source currency code, eg 'USD'", + "x-ms-summary": "Source currency" + }, + { + "name": "target", + "in": "query", + "required": true, + "type": "string", + "description": "Target currency code, eg 'EUR'", + "x-ms-summary": "Target currency" + } + ] + } + }, + "/api/v1/rates-historical": { + "get": { + "responses": { + "200": { + "description": "OK", + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "rate": { + "type": "number", + "format": "float", + "description": "The exchange rate value.", + "title": "Rate" + }, + "source": { + "type": "string", + "description": "Source currency code.", + "title": "Source" + }, + "target": { + "type": "string", + "description": "Target currency code.", + "title": "Target" + }, + "time": { + "type": "string", + "description": "Timestamp of the rate.", + "title": "Time" + } + } + } + } + }, + "400": { + "description": "Bad Request" + }, + "401": { + "description": "Unauthorized" + }, + "429": { + "description": "Rate limit exceeded" + }, + "500": { + "description": "Internal Server Error" + } + }, + "summary": "Get Historical Rate", + "description": "Get historical exchange rates for a specific date range", + "operationId": "GetHistoricalRate", + "parameters": [ + { + "name": "source", + "in": "query", + "required": true, + "type": "string", + "description": "Source currency code, eg 'USD'", + "x-ms-summary": "Source currency" + }, + { + "name": "target", + "in": "query", + "required": true, + "type": "string", + "description": "Target currency code, eg 'EUR'", + "x-ms-summary": "Target currency" + }, + { + "name": "from", + "in": "query", + "required": true, + "type": "string", + "description": "Start date in ISO format, eg '2024-01-01T00:00:00+00:00'", + "x-ms-summary": "From date" + }, + { + "name": "to", + "in": "query", + "required": true, + "type": "string", + "description": "End date in ISO format, eg '2024-01-31T23:59:59+00:00'", + "x-ms-summary": "To date" + }, + { + "name": "group", + "in": "query", + "required": false, + "type": "string", + "description": "Grouping interval: 'day', 'week', or 'month'", + "x-ms-summary": "Group by" + } + ] + } + } + }, + "definitions": {}, + "parameters": {}, + "responses": {}, + "securityDefinitions": { + "api_key": { + "type": "apiKey", + "in": "header", + "name": "Authorization" + } + }, + "security": [ + { + "api_key": [] + } + ], + "tags": [], + "x-ms-connector-metadata": [ + { + "propertyName": "Website", + "propertyValue": "https://allratestoday.com/" + }, + { + "propertyName": "Privacy policy", + "propertyValue": "https://allratestoday.com/privacy" + }, + { + "propertyName": "Categories", + "propertyValue": "Commerce;Finance" + } + ] +} diff --git a/independent-publisher-connectors/AllRatesToday/apiProperties.json b/independent-publisher-connectors/AllRatesToday/apiProperties.json new file mode 100644 index 0000000000..152b2c7321 --- /dev/null +++ b/independent-publisher-connectors/AllRatesToday/apiProperties.json @@ -0,0 +1,35 @@ +{ + "properties": { + "connectionParameters": { + "api_key": { + "type": "securestring", + "uiDefinition": { + "constraints": { + "required": "true" + }, + "description": "AllRatesToday API Key (get free at allratestoday.com/register)", + "displayName": "API Key", + "tooltip": "Provide a valid AllRatesToday API Key. Format: Bearer YOUR_KEY" + } + } + }, + "iconBrandColor": "#25A557", + "policyTemplateInstances": [ + { + "parameters": { + "x-ms-apimTemplate-operationName": [ + "GetExchangeRate", + "GetHistoricalRate" + ], + "x-ms-apimTemplateParameter.headerName": "Authorization", + "x-ms-apimTemplateParameter.headerValue": "Bearer @connectionParameters('api_key')" + }, + "templateId": "setheader", + "title": "Set Authorization Header" + } + ], + "capabilities": [], + "publisher": "Cahthurana G", + "stackOwner": "AllRatesToday" + } +} diff --git a/independent-publisher-connectors/AllRatesToday/readme.md b/independent-publisher-connectors/AllRatesToday/readme.md new file mode 100644 index 0000000000..3aaeb65999 --- /dev/null +++ b/independent-publisher-connectors/AllRatesToday/readme.md @@ -0,0 +1,42 @@ +# AllRatesToday + +Real-time and historical currency exchange rate API supporting 160+ currencies. Rates are sourced from Reuters/Refinitiv and interbank feeds, updated every 60 seconds. + +## Publisher: Cahthurana G + +## Prerequisites + +An AllRatesToday account is required. Sign up for a free plan (no credit card needed) at [allratestoday.com/register](https://allratestoday.com/register). Paid plans are available for higher usage limits. + +## Obtaining Credentials + +1. Register at [allratestoday.com/register](https://allratestoday.com/register) +2. Log in to your dashboard +3. Copy your API key from the dashboard + +When creating a connection, enter your API key. The connector automatically sends it as a Bearer token in the Authorization header. + +## Supported Operations + +### Get Exchange Rate +Get the live mid-market exchange rate between two currencies. Supports multiple target currencies (comma-separated). + +### Get Public Rate +Get a single exchange rate between two currencies without authentication. Useful for quick lookups. + +### Get Historical Rate +Get historical exchange rates for a specific date range. Supports grouping by day, week, or month. + +### List Supported Currencies +List all 160+ supported currency codes, names, and symbols. + +## Known Issues and Limitations + +- Free plan has monthly request limits. Upgrade to a paid plan for higher limits. +- Historical data requires an authenticated API key. +- The public rate endpoint (`/api/rate`) does not require authentication but returns only a single pair at a time. +- Rate data is cached for 60 seconds. + +## API Documentation + +Full API documentation is available at [allratestoday.com/developers](https://allratestoday.com/developers) From 5b8c00816192ad76b5c78dcea458142437210419 Mon Sep 17 00:00:00 2001 From: cahthuranag Date: Wed, 27 May 2026 17:11:32 +0100 Subject: [PATCH 2/2] AllRatesToday (Independent Publisher) Update readme with full Independent Publisher requirements: deployment instructions, detailed parameter descriptions, and response schema documentation. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../AllRatesToday/readme.md | 51 +++++++++++++++---- 1 file changed, 41 insertions(+), 10 deletions(-) diff --git a/independent-publisher-connectors/AllRatesToday/readme.md b/independent-publisher-connectors/AllRatesToday/readme.md index 3aaeb65999..ea38095a3a 100644 --- a/independent-publisher-connectors/AllRatesToday/readme.md +++ b/independent-publisher-connectors/AllRatesToday/readme.md @@ -1,4 +1,4 @@ -# AllRatesToday +# AllRatesToday (Independent Publisher) Real-time and historical currency exchange rate API supporting 160+ currencies. Rates are sourced from Reuters/Refinitiv and interbank feeds, updated every 60 seconds. @@ -11,32 +11,63 @@ An AllRatesToday account is required. Sign up for a free plan (no credit card ne ## Obtaining Credentials 1. Register at [allratestoday.com/register](https://allratestoday.com/register) -2. Log in to your dashboard +2. Log in to your dashboard at [allratestoday.com/profile](https://allratestoday.com/profile) 3. Copy your API key from the dashboard - -When creating a connection, enter your API key. The connector automatically sends it as a Bearer token in the Authorization header. +4. When creating a connection in Power Automate, paste your API key. The connector automatically sends it as a Bearer token in the Authorization header. ## Supported Operations ### Get Exchange Rate -Get the live mid-market exchange rate between two currencies. Supports multiple target currencies (comma-separated). +Get the live mid-market exchange rate between two currencies. Supports multiple target currencies (comma-separated). Requires authentication. + +**Parameters:** +- `source` (required): Source currency code, e.g. `USD` +- `target` (required): Target currency code(s), e.g. `EUR` or `EUR,GBP,JPY` + +**Response:** Array of rate objects with `source`, `target`, `rate`, and `time` fields. ### Get Public Rate -Get a single exchange rate between two currencies without authentication. Useful for quick lookups. +Get a single exchange rate between two currencies without authentication. Useful for quick lookups and testing. + +**Parameters:** +- `source` (required): Source currency code, e.g. `USD` +- `target` (required): Target currency code, e.g. `EUR` + +**Response:** Object with `data.source`, `data.target`, `data.rate`, and `data.time` fields. ### Get Historical Rate -Get historical exchange rates for a specific date range. Supports grouping by day, week, or month. +Get historical exchange rates for a specific date range. Supports grouping by day, week, or month. Requires authentication. + +**Parameters:** +- `source` (required): Source currency code, e.g. `USD` +- `target` (required): Target currency code, e.g. `EUR` +- `from` (required): Start date in ISO format, e.g. `2024-01-01T00:00:00+00:00` +- `to` (required): End date in ISO format, e.g. `2024-01-31T23:59:59+00:00` +- `group` (optional): Grouping interval: `day`, `week`, or `month` + +**Response:** Array of rate objects with `source`, `target`, `rate`, and `time` fields. ### List Supported Currencies -List all 160+ supported currency codes, names, and symbols. +List all 160+ supported currency codes, names, and symbols. No authentication required. + +**Response:** Object with `currencies` array and `count` field. ## Known Issues and Limitations - Free plan has monthly request limits. Upgrade to a paid plan for higher limits. - Historical data requires an authenticated API key. - The public rate endpoint (`/api/rate`) does not require authentication but returns only a single pair at a time. -- Rate data is cached for 60 seconds. +- Rate data is sourced from Reuters/Refinitiv and updated every 60 seconds. + +## Deployment Instructions + +1. Download the connector files from this folder. +2. Create a new custom connector in Power Automate or Power Apps. +3. Import the `apiDefinition.swagger.json` file. +4. Import the `apiProperties.json` file. +5. Create a new connection using your AllRatesToday API key. +6. Test the connector using the Test tab. ## API Documentation -Full API documentation is available at [allratestoday.com/developers](https://allratestoday.com/developers) +Full API documentation is available at [allratestoday.com/docs](https://allratestoday.com/docs)