@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api nFusion Solutions Market Data API
@base https://api.nfusionsolutions.biz
@version 1
@auth ApiKey token in query
@endpoints 19
@toc api(19)

@endpoint GET /api/v1/Currencies/rate/supported
@optional {format: str(json/xml)}
@returns(200)
@errors {400, 401}

@endpoint GET /api/v1/Currencies/summary/supported
@optional {format: str(json/xml)}
@returns(200)
@errors {400, 401}

@endpoint GET /api/v1/Currencies/history/supported
@optional {format: str(json/xml)}
@returns(200)
@errors {400, 401}

@endpoint GET /api/v1/Currencies/rate
@required {pairs: str}
@optional {format: str(json/xml)}
@returns(200)
@errors {400, 401}

@endpoint GET /api/v1/Currencies/summary
@required {pairs: str}
@optional {format: str(json/xml)}
@returns(200)
@errors {400, 401}

@endpoint GET /api/v1/Currencies/history
@required {pairs: str, start: str(date-time)}
@optional {end: str(date-time), interval: str, format: str(json/xml)}
@returns(200)
@errors {400, 401}

@endpoint GET /api/v1/Currencies/adjustments
@returns(200) {enabled: bool, expiresOn: str(date-time)?, adjustments: [map]?}

@endpoint POST /api/v1/Currencies/adjustments
@optional {token: str, items: [map{enabled!: bool, expiresOn: str(date-time), adjustments: [map]}]}
@returns(200) {enabled: bool, expiresOn: str(date-time)?, adjustments: [map]?}
@errors {400, 500}

@endpoint GET /api/v1/Metals/supported/currency
@optional {format: str(json/xml)}
@returns(200)
@errors {400, 401}

@endpoint GET /api/v1/Metals/spot/supported
@optional {format: str(json/xml)}
@returns(200)
@errors {400, 401}

@endpoint GET /api/v1/Metals/spot/summary
@required {metals: str}
@optional {currency: str, unitofmeasure: str(mg/g/kg/gr/toz/ct/dwt), format: str(json/xml)}
@returns(200)
@errors {400, 401}

@endpoint GET /api/v1/Metals/spot/history
@required {metals: str, start: str(date-time)}
@optional {end: str(date-time), interval: str, historicalfx: bool, currency: str, unitofmeasure: str(mg/g/kg/gr/toz/ct/dwt), format: str(json/xml)}
@returns(200)
@errors {400, 401}

@endpoint GET /api/v1/Metals/spot/ratio/summary
@required {pairs: str}
@optional {format: str(json/xml)}
@returns(200)
@errors {400, 401}

@endpoint GET /api/v1/Metals/spot/ratio/history
@required {pairs: str, start: str(date-time)}
@optional {end: str(date-time), interval: str, format: str(json/xml)}
@returns(200)
@errors {400, 401}

@endpoint GET /api/v1/Metals/benchmark/supported
@optional {format: str(json/xml)}
@returns(200)
@errors {400, 401}

@endpoint GET /api/v1/Metals/benchmark/summary
@required {metals: str}
@optional {currency: str, unitofmeasure: str(mg/g/kg/gr/toz/ct/dwt), format: str(json/xml)}
@returns(200)
@errors {400, 401}

@endpoint GET /api/v1/Metals/benchmark/history
@required {metals: str, start: str(date-time)}
@optional {end: str(date-time), interval: str, historicalfx: bool, currency: str, unitofmeasure: str(mg/g/kg/gr/toz/ct/dwt), format: str(json/xml)}
@returns(200)
@errors {400, 401}

@endpoint GET /api/v1/Metals/adjustments
@returns(200) {enabled: bool, expiresOn: str(date-time)?, adjustments: [map]?}

@endpoint POST /api/v1/Metals/adjustments
@optional {token: str, items: [map{enabled!: bool, expiresOn: str(date-time), adjustments: [map]}]}
@returns(200) {enabled: bool, expiresOn: str(date-time)?, adjustments: [map]?}
@errors {400, 500}

@end
