{
  "service": "open_exchange_rates",
  "displayName": "Open Exchange Rates",
  "categories": [
    "Finance",
    "Data"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "App ID",
      "placeholder": "OPEN_EXCHANGE_RATES_APP_ID",
      "description": "Open Exchange Rates App ID sent with the app_id query parameter. Get it from your dashboard: https://openexchangerates.org/account/app-ids.",
      "extraFields": []
    }
  ],
  "homepageUrl": "https://openexchangerates.org",
  "actions": [
    {
      "id": "open_exchange_rates.convert_currency",
      "service": "open_exchange_rates",
      "name": "convert_currency",
      "description": "Convert an amount between two currencies using Open Exchange Rates.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "exclusiveMinimum": 0,
            "description": "Amount to convert."
          },
          "from": {
            "type": "string",
            "minLength": 3,
            "maxLength": 3,
            "description": "Source currency code for the conversion.",
            "pattern": "^[A-Z]{3}$"
          },
          "to": {
            "type": "string",
            "minLength": 3,
            "maxLength": 3,
            "description": "Target currency code for the conversion.",
            "pattern": "^[A-Z]{3}$"
          }
        },
        "additionalProperties": false,
        "required": [
          "amount",
          "from",
          "to"
        ],
        "description": "Input parameters for converting an amount between currencies with Open Exchange Rates."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "disclaimer": {
            "type": "string",
            "minLength": 1,
            "description": "Disclaimer text returned by Open Exchange Rates."
          },
          "license": {
            "type": "string",
            "minLength": 1,
            "description": "License URL returned by Open Exchange Rates."
          },
          "request": {
            "type": "object",
            "properties": {
              "query": {
                "type": "string",
                "minLength": 1,
                "description": "Original conversion query."
              },
              "amount": {
                "type": "number",
                "description": "Amount used for the conversion."
              },
              "from": {
                "type": "string",
                "minLength": 1,
                "description": "Source currency code used for the conversion."
              },
              "to": {
                "type": "string",
                "minLength": 1,
                "description": "Target currency code used for the conversion."
              }
            },
            "additionalProperties": true,
            "description": "Conversion request echoed by Open Exchange Rates."
          },
          "meta": {
            "type": "object",
            "properties": {
              "timestamp": {
                "type": "integer",
                "description": "Unix timestamp used for the conversion rate."
              },
              "rate": {
                "type": "number",
                "description": "Exchange rate used for the conversion."
              }
            },
            "additionalProperties": true,
            "description": "Conversion metadata returned by Open Exchange Rates."
          },
          "response": {
            "type": "number",
            "description": "Converted amount returned by Open Exchange Rates."
          }
        },
        "additionalProperties": true,
        "description": "Currency conversion result returned by Open Exchange Rates."
      }
    },
    {
      "id": "open_exchange_rates.get_currencies",
      "service": "open_exchange_rates",
      "name": "get_currencies",
      "description": "Retrieve all currencies supported by Open Exchange Rates.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "Input parameters for retrieving supported Open Exchange Rates currencies."
      },
      "outputSchema": {
        "type": "object",
        "additionalProperties": {
          "type": "string",
          "description": "Currency name."
        },
        "description": "Mapping of ISO currency codes to full currency names."
      }
    },
    {
      "id": "open_exchange_rates.get_historical_rates",
      "service": "open_exchange_rates",
      "name": "get_historical_rates",
      "description": "Retrieve historical Open Exchange Rates exchange rates for a specific date.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "description": "Historical date to request from Open Exchange Rates in YYYY-MM-DD format.",
            "format": "date"
          },
          "base": {
            "type": "string",
            "minLength": 3,
            "maxLength": 3,
            "description": "Three-letter base currency code for the returned rates.",
            "pattern": "^[A-Z]{3}$"
          },
          "symbols": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 3,
              "maxLength": 3,
              "description": "Three-letter ISO currency code.",
              "pattern": "^[A-Z]{3}$"
            },
            "description": "List of target currency codes to include in the response.",
            "minItems": 1
          },
          "showAlternative": {
            "type": "boolean",
            "description": "Whether to include alternative, black-market, and digital currency rates."
          }
        },
        "additionalProperties": false,
        "required": [
          "date"
        ],
        "description": "Input parameters for fetching historical Open Exchange Rates exchange rates."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "disclaimer": {
            "type": "string",
            "minLength": 1,
            "description": "Disclaimer text returned by Open Exchange Rates."
          },
          "license": {
            "type": "string",
            "minLength": 1,
            "description": "License URL returned by Open Exchange Rates."
          },
          "timestamp": {
            "type": "integer",
            "description": "Unix timestamp when the rates snapshot was generated."
          },
          "historical": {
            "type": "boolean",
            "description": "Whether the returned rates represent a historical snapshot."
          },
          "base": {
            "type": "string",
            "minLength": 1,
            "description": "Base currency used for the returned rates."
          },
          "rates": {
            "type": "object",
            "additionalProperties": {
              "type": "number",
              "description": "Exchange rate value."
            },
            "description": "Mapping of currency codes to exchange rates for the selected base currency."
          }
        },
        "additionalProperties": true,
        "description": "Open Exchange Rates historical exchange rate snapshot."
      }
    },
    {
      "id": "open_exchange_rates.get_latest_rates",
      "service": "open_exchange_rates",
      "name": "get_latest_rates",
      "description": "Retrieve the latest Open Exchange Rates exchange rates.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "base": {
            "type": "string",
            "minLength": 3,
            "maxLength": 3,
            "description": "Three-letter base currency code for the returned rates.",
            "pattern": "^[A-Z]{3}$"
          },
          "symbols": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 3,
              "maxLength": 3,
              "description": "Three-letter ISO currency code.",
              "pattern": "^[A-Z]{3}$"
            },
            "description": "List of target currency codes to include in the response.",
            "minItems": 1
          },
          "showAlternative": {
            "type": "boolean",
            "description": "Whether to include alternative, black-market, and digital currency rates."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for fetching the latest Open Exchange Rates exchange rates."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "disclaimer": {
            "type": "string",
            "minLength": 1,
            "description": "Disclaimer text returned by Open Exchange Rates."
          },
          "license": {
            "type": "string",
            "minLength": 1,
            "description": "License URL returned by Open Exchange Rates."
          },
          "timestamp": {
            "type": "integer",
            "description": "Unix timestamp when the rates snapshot was generated."
          },
          "base": {
            "type": "string",
            "minLength": 1,
            "description": "Base currency used for the returned rates."
          },
          "rates": {
            "type": "object",
            "additionalProperties": {
              "type": "number",
              "description": "Exchange rate value."
            },
            "description": "Mapping of currency codes to exchange rates for the selected base currency."
          }
        },
        "additionalProperties": true,
        "description": "Open Exchange Rates exchange rate snapshot."
      }
    },
    {
      "id": "open_exchange_rates.get_timeseries_rates",
      "service": "open_exchange_rates",
      "name": "get_timeseries_rates",
      "description": "Retrieve Open Exchange Rates exchange rates across a date range.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "startDate": {
            "type": "string",
            "description": "Start date of the time-series range in YYYY-MM-DD format.",
            "format": "date"
          },
          "endDate": {
            "type": "string",
            "description": "End date of the time-series range in YYYY-MM-DD format.",
            "format": "date"
          },
          "base": {
            "type": "string",
            "minLength": 3,
            "maxLength": 3,
            "description": "Three-letter base currency code for the returned rates.",
            "pattern": "^[A-Z]{3}$"
          },
          "symbols": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 3,
              "maxLength": 3,
              "description": "Three-letter ISO currency code.",
              "pattern": "^[A-Z]{3}$"
            },
            "description": "List of target currency codes to include in the response.",
            "minItems": 1
          },
          "showAlternative": {
            "type": "boolean",
            "description": "Whether to include alternative, black-market, and digital currency rates."
          }
        },
        "additionalProperties": false,
        "required": [
          "startDate",
          "endDate"
        ],
        "description": "Input parameters for fetching Open Exchange Rates time-series exchange rates."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "disclaimer": {
            "type": "string",
            "minLength": 1,
            "description": "Disclaimer text returned by Open Exchange Rates."
          },
          "license": {
            "type": "string",
            "minLength": 1,
            "description": "License URL returned by Open Exchange Rates."
          },
          "start_date": {
            "type": "string",
            "minLength": 1,
            "description": "Start date of the returned time-series range."
          },
          "end_date": {
            "type": "string",
            "minLength": 1,
            "description": "End date of the returned time-series range."
          },
          "base": {
            "type": "string",
            "minLength": 1,
            "description": "Base currency used for the returned rates."
          },
          "rates": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "additionalProperties": {
                "type": "number",
                "description": "Exchange rate value."
              },
              "description": "Mapping of currency codes to exchange rates for one date."
            },
            "description": "Mapping of YYYY-MM-DD dates to per-currency exchange rates."
          }
        },
        "additionalProperties": true,
        "description": "Open Exchange Rates time-series exchange rates."
      }
    }
  ]
}
