{"files":{"SKILL.md":"---\nname: nfusion-solutions-market-data-api\ndescription: \"nFusion Solutions Market Data API skill. Use when working with nFusion Solutions Market Data for api. Covers 19 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# nFusion Solutions Market Data API\nAPI version: 1\n\n## Auth\nApiKey token in query\n\n## Base URL\nhttps://api.nfusionsolutions.biz\n\n## Setup\n1. Set your API key in the appropriate header\n2. GET /api/v1/Currencies/rate/supported -- get list of currencies supported by the rate endpoint\n3. POST /api/v1/Currencies/adjustments -- create first adjustment\n\n## Endpoints\n19 endpoints across 1 group. See references/api-spec.lap for full details.\n\n### Api\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /api/v1/Currencies/rate/supported | Get list of currencies supported by the rate endpoint |\n| GET | /api/v1/Currencies/summary/supported | Get list of currency pairs supported by the Summary endpoint |\n| GET | /api/v1/Currencies/history/supported | Get list of currency pairs supported by the history endpoint |\n| GET | /api/v1/Currencies/rate | Get latest mid rate for requested currency pairs |\n| GET | /api/v1/Currencies/summary | Get latest Summary for requested currency pairs |\n| GET | /api/v1/Currencies/history | Get historical prices for requested currency pairs |\n| GET | /api/v1/Currencies/adjustments | Read the currency adjustments |\n| POST | /api/v1/Currencies/adjustments | Update the currency adjustments |\n| GET | /api/v1/Metals/supported/currency | Get list of currencies supported by metals endpoints for currency conversion |\n| GET | /api/v1/Metals/spot/supported | Get list of symbols supported by the spot endpoints |\n| GET | /api/v1/Metals/spot/summary | Get latest Spot Summary for requested metals |\n| GET | /api/v1/Metals/spot/history | Get historical Spot prices for requested metals |\n| GET | /api/v1/Metals/spot/ratio/summary | Get latest Spot Summary for requested metal ratios |\n| GET | /api/v1/Metals/spot/ratio/history | Get historical Spot Ratio prices for requested metals |\n| GET | /api/v1/Metals/benchmark/supported | Get list of symbols supported by the benchmark endpoints |\n| GET | /api/v1/Metals/benchmark/summary | Get latest Benchmark prices for requested metals |\n| GET | /api/v1/Metals/benchmark/history | Get historical benchmark prices for requested metals |\n| GET | /api/v1/Metals/adjustments | Read the spot adjustments |\n| POST | /api/v1/Metals/adjustments | Update the spot adjustments |\n\n## Common Questions\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"List all supported?\" -> GET /api/v1/Currencies/rate/supported\n- \"List all rate?\" -> GET /api/v1/Currencies/rate\n- \"List all summary?\" -> GET /api/v1/Currencies/summary\n- \"List all history?\" -> GET /api/v1/Currencies/history\n- \"List all adjustments?\" -> GET /api/v1/Currencies/adjustments\n- \"Create a adjustment?\" -> POST /api/v1/Currencies/adjustments\n- \"List all currency?\" -> GET /api/v1/Metals/supported/currency\n- \"How to authenticate?\" -> See Auth section above\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- Create/update endpoints return the modified resource on success\n- Error responses include status codes and descriptions in the spec\n\n## References\n- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas\n\n> Generated from the official API spec by [LAP](https://lap.sh)\n","references/api-spec.lap":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api nFusion Solutions Market Data API\n@base https://api.nfusionsolutions.biz\n@version 1\n@auth ApiKey token in query\n@endpoints 19\n@toc api(19)\n\n@endpoint GET /api/v1/Currencies/rate/supported\n@desc Get list of currencies supported by the rate endpoint\n@optional {format: str(json/xml)}\n@returns(200) OK\n@errors {400: Bad Request, 401: Unauthorized}\n\n@endpoint GET /api/v1/Currencies/summary/supported\n@desc Get list of currency pairs supported by the Summary endpoint\n@optional {format: str(json/xml)}\n@returns(200) OK\n@errors {400: Bad Request, 401: Unauthorized}\n\n@endpoint GET /api/v1/Currencies/history/supported\n@desc Get list of currency pairs supported by the history endpoint\n@optional {format: str(json/xml)}\n@returns(200) OK\n@errors {400: Bad Request, 401: Unauthorized}\n\n@endpoint GET /api/v1/Currencies/rate\n@desc Get latest mid rate for requested currency pairs\n@required {pairs: str # comma separated list of currency pairs. For example: USD/CAD,USD/EUR,USD/AUD}\n@optional {format: str(json/xml) # to override content negotiation specify a value of json or xml}\n@returns(200) OK\n@errors {400: Bad Request, 401: Unauthorized}\n\n@endpoint GET /api/v1/Currencies/summary\n@desc Get latest Summary for requested currency pairs\n@required {pairs: str # comma separated list of currency pairs. For example: USD/CAD,USD/EUR,USD/AUD}\n@optional {format: str(json/xml) # to override content negotiation specify a value of json or xml}\n@returns(200) OK\n@errors {400: Bad Request, 401: Unauthorized}\n\n@endpoint GET /api/v1/Currencies/history\n@desc Get historical prices for requested currency pairs\n@required {pairs: str # comma separated list of currency pairs. For example: USD/CAD,USD/EUR,USD/AUD, start: str(date-time) # start date of time period. format is yyyy-mm-dd}\n@optional {end: str(date-time) # end date of time period. format is yyyy-mm-dd. Default is current date., interval: str # aggregation interval. Composed of an optional integer value (which defaults to 1 when not specified), \r followed by a type string which must be one of the following values:\r y=year,\r m=month,\r w=week,\r d=day,\r h=hour,\r mi=minute\r \r For example, a yearly interval can be specified as \"y\" and 6 month interval as \"6m\". \r \r If not specified the interval parameter default is 1 Day., format: str(json/xml) # to override content negotiation specify a value of json or xml}\n@returns(200) OK\n@errors {400: Bad Request, 401: Unauthorized}\n\n@endpoint GET /api/v1/Currencies/adjustments\n@desc Read the currency adjustments\n@returns(200) {enabled: bool, expiresOn: str(date-time)?, adjustments: [map]?} # OK\n\n@endpoint POST /api/v1/Currencies/adjustments\n@desc Update the currency adjustments\n@optional {token: str, items: [map{enabled!: bool, expiresOn: str(date-time), adjustments: [map]}]}\n@returns(200) {enabled: bool, expiresOn: str(date-time)?, adjustments: [map]?} # OK\n@errors {400: Bad Request, 500: Internal Server Error}\n\n@endpoint GET /api/v1/Metals/supported/currency\n@desc Get list of currencies supported by metals endpoints for currency conversion\n@optional {format: str(json/xml)}\n@returns(200) OK\n@errors {400: Bad Request, 401: Unauthorized}\n\n@endpoint GET /api/v1/Metals/spot/supported\n@desc Get list of symbols supported by the spot endpoints\n@optional {format: str(json/xml)}\n@returns(200) OK\n@errors {400: Bad Request, 401: Unauthorized}\n\n@endpoint GET /api/v1/Metals/spot/summary\n@desc Get latest Spot Summary for requested metals\n@required {metals: str # comma separated list of metals}\n@optional {currency: str # comma separated list of conversion currencies, defaults to USD, unitofmeasure: str(mg/g/kg/gr/toz/ct/dwt) # unit of meaure, defaults to troy ounces. allowed values are:\r mg=milligram\r g=gram\r kg=kilogram\r gr=grain\r toz=troy ounce\r ct=carat\r dwt=pennyweight, format: str(json/xml) # to override content negotiation specify a value of json or xml}\n@returns(200) OK\n@errors {400: Bad Request, 401: Unauthorized}\n\n@endpoint GET /api/v1/Metals/spot/history\n@desc Get historical Spot prices for requested metals\n@required {metals: str # comma separated list of metals, start: str(date-time) # start date of time period. format is yyyy-mm-dd}\n@optional {end: str(date-time) # end date of time period. format is yyyy-mm-dd. Default is current date., interval: str # aggregation interval. Composed of an optional integer value (which defaults to 1 when not specified), \r followed by a type string which must be one of the following values:\r y=year,\r m=month,\r w=week,\r d=day,\r h=hour,\r mi=minute\r \r For example, a yearly interval can be specified as \"y\" and 6 month interval as \"6m\". \r \r If not specified the interval parameter default is 1 Day., historicalfx: bool # if true use historical currency rates otherwise current currency rates. Defaults to true., currency: str # comma separated list of conversion currencies, defaults to USD, unitofmeasure: str(mg/g/kg/gr/toz/ct/dwt) # unit of meaure, defaults to troy ounces. allowed values are:\r mg=milligram\r g=gram\r kg=kilogram\r gr=grain\r toz=troy ounce\r ct=carat\r dwt=pennyweight, format: str(json/xml) # to override content negotiation specify a value of json or xml}\n@returns(200) OK\n@errors {400: Bad Request, 401: Unauthorized}\n\n@endpoint GET /api/v1/Metals/spot/ratio/summary\n@desc Get latest Spot Summary for requested metal ratios\n@required {pairs: str # comma separated list of metal pairs. For example: gold/silver,gold/platinum,silver/palladium}\n@optional {format: str(json/xml) # to override content negotiation specify a value of json or xml}\n@returns(200) OK\n@errors {400: Bad Request, 401: Unauthorized}\n\n@endpoint GET /api/v1/Metals/spot/ratio/history\n@desc Get historical Spot Ratio prices for requested metals\n@required {pairs: str # comma separated list of metals, start: str(date-time) # start date of time period. format is yyyy-mm-dd}\n@optional {end: str(date-time) # end date of time period. format is yyyy-mm-dd. Default is current date., interval: str # aggregation interval. Composed of an optional integer value (which defaults to 1 when not specified), \r followed by a type string which must be one of the following values:\r y=year,\r m=month,\r w=week,\r d=day,\r h=hour,\r mi=minute\r \r For example, a yearly interval can be specified as \"y\" and 6 month interval as \"6m\". \r \r If not specified the interval parameter default is 1 Day., format: str(json/xml) # to override content negotiation specify a value of json or xml}\n@returns(200) OK\n@errors {400: Bad Request, 401: Unauthorized}\n\n@endpoint GET /api/v1/Metals/benchmark/supported\n@desc Get list of symbols supported by the benchmark endpoints\n@optional {format: str(json/xml)}\n@returns(200) OK\n@errors {400: Bad Request, 401: Unauthorized}\n\n@endpoint GET /api/v1/Metals/benchmark/summary\n@desc Get latest Benchmark prices for requested metals\n@required {metals: str # comma separated list of metals}\n@optional {currency: str # comma separated list of conversion currencies, defaults to USD, unitofmeasure: str(mg/g/kg/gr/toz/ct/dwt) # unit of meaure, defaults to troy ounces. allowed values are:\r mg=milligram\r g=gram\r kg=kilogram\r gr=grain\r toz=troy ounce\r ct=carat\r dwt=pennyweight, format: str(json/xml) # to override content negotiation specify a value of json or xml}\n@returns(200) OK\n@errors {400: Bad Request, 401: Unauthorized}\n\n@endpoint GET /api/v1/Metals/benchmark/history\n@desc Get historical benchmark prices for requested metals\n@required {metals: str # comma separated list of metals, start: str(date-time) # start date of time period. format is yyyy-mm-dd}\n@optional {end: str(date-time) # end date of time period. format is yyyy-mm-dd. Default is current date., interval: str # aggregation interval. Composed of an optional integer value (which defaults to 1 when not specified), \r followed by a type string which must be one of the following values:\r y=year,\r m=month,\r w=week,\r d=day,\r h=hour,\r mi=minute\r \r For example, a yearly interval can be specified as \"y\" and 6 month interval as \"6m\". \r \r If not specified the interval parameter default is 1 Day., historicalfx: bool # if true use historical currency rates otherwise current currency rates. Defaults to true., currency: str # comma separated list of conversion currencies, defaults to USD, unitofmeasure: str(mg/g/kg/gr/toz/ct/dwt) # unit of meaure, defaults to troy ounces. allowed values are:\r mg=milligram\r g=gram\r kg=kilogram\r gr=grain\r toz=troy ounce\r ct=carat\r dwt=pennyweight, format: str(json/xml) # to override content negotiation specify a value of json or xml}\n@returns(200) OK\n@errors {400: Bad Request, 401: Unauthorized}\n\n@endpoint GET /api/v1/Metals/adjustments\n@desc Read the spot adjustments\n@returns(200) {enabled: bool, expiresOn: str(date-time)?, adjustments: [map]?} # OK\n\n@endpoint POST /api/v1/Metals/adjustments\n@desc Update the spot adjustments\n@optional {token: str, items: [map{enabled!: bool, expiresOn: str(date-time), adjustments: [map]}]}\n@returns(200) {enabled: bool, expiresOn: str(date-time)?, adjustments: [map]?} # OK\n@errors {400: Bad Request, 500: Internal Server Error}\n\n@end\n"}}