Akay trade offers (akay.ie)
Live B2B FMCG wholesale offers from Akay (IRL) Ltd: spirits, wine, beer, groceries, cosmetics.
Should I use this
Quality & Safety
Findings (1)
- LOWin fetch
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"offers": {
"url": "https://mcp.akay.ie/mcp"
}
}
}Remote endpoints
https://mcp.akay.ie/mcpstreamable-httpWhat it can do
Tool inventory
Tools (8)
🟢search_offers(query, category, brand, duty_status, incoterm, ...)
Search open akay.ie trade offers by keyword, EAN, size ("70cl", "6x70cl"), ABV or duty status, with optional website filters. Returns listed sell prices per case and per unit in each offer's own currency (EUR, USD or GBP), pack, duty status, Incoterm, location and stock. Paged: up to 25 per page, 10 pages per query.
Input Schema
{
"type": "object",
"properties": {
"query": {
"description": "Keywords, EAN, size or pack, e.g. \"Jameson 70cl T2\"",
"type": "string",
"maxLength": 200
},
"category": {
"description": "Category, e.g. Spirits, Beer, Soft Drinks, Wine, Confectionery (see list_categories)",
"type": "string",
"maxLength": 60
},
"brand": {
"description": "Exact brand name",
"type": "string",
"maxLength": 60
},
"duty_status": {
"description": "Duty status as listed. T1 = non-EU (third-country) status goods under customs transit; T2 = EU-status goods that can move within the EU under excise duty suspension (e.g. with an eAD in EMCS). Both T1 and T2 are held in bond with duty suspended: neither is duty paid. Bonded, On Floor and Duty Paid are shown exactly as listed on akay.ie.",
"type": "string",
"enum": [
"T1",
"T2",
"Bonded",
"On Floor",
"Duty Paid"
]
},
"incoterm": {
"type": "string",
"enum": [
"EXW",
"FCA",
"FAS",
"FOB",
"CFR",
"CIF",
"CPT",
"CIP",
"DAP",
"DPU",
"DDP"
]
},
"stock_status": {
"type": "string",
"enum": [
"In stock",
"Limited",
"Enquire"
]
},
"location": {
"description": "Warehouse location or country as listed, e.g. Netherlands, Latvia",
"type": "string",
"maxLength": 60
},
"origin": {
"description": "Country of origin",
"type": "string",
"maxLength": 60
},
"currency": {
"type": "string",
"enum": [
"EUR",
"USD",
"GBP"
]
},
"page": {
"type": "integer",
"minimum": 1,
"maximum": 10
},
"page_size": {
"type": "integer",
"minimum": 1,
"maximum": 25
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"source": {
"type": "string",
"description": "Always \"akay.ie\""
},
"feed_published_at": {
"description": "When the akay.ie catalogue snapshot was published (ISO 8601)",
"type": [
"string",
"null"
]
},
"feed_age_hours": {
"type": [
"number",
"null"
]
},
"note": {
"type": "string"
},
"query_understood": {
"type": "object",
"properties": {},
"additionalProperties": {}
},
"total_matches": {
"type": "number"
},
"page": {
"type": "number"
},
"page_size": {
"type": "number"
},
"pages": {
"type": "number"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"offer_id": {
"type": "string"
},
"url": {
"type": "string"
},
"name": {
"type": "string"
},
"brand": {
"type": "string"
},
"category": {
"type": "string"
},
"pack": {
"description": "Units per case",
"type": "number"
},
"volume_ml": {
"type": "number"
},
"abv": {
"type": "number"
},
"unit_type": {
"type": "string"
},
"ean": {
"type": "string"
},
"ean_case": {
"type": "string"
},
"duty_status": {
"description": "Duty status as listed. T1 = non-EU (third-country) status goods under customs transit; T2 = EU-status goods that can move within the EU under excise duty suspension (e.g. with an eAD in EMCS). Both T1 and T2 are held in bond with duty suspended: neither is duty paid. Bonded, On Floor and Duty Paid are shown exactly as listed on akay.ie.",
"type": "string"
},
"incoterm": {
"type": "string"
},
"location": {
"type": "string"
},
"origin": {
"type": "string"
},
"lead_time": {
"type": "string"
},
"moq": {
"type": "string"
},
"moq_estimated": {
"type": "boolean"
},
"cases_per_pallet": {
"type": "number"
},
"currency": {
"description": "EUR, USD or GBP; never converted",
"type": "string"
},
"price_per_case": {
"type": "number"
},
"price_per_unit": {
"type": "number"
},
"price_basis": {
"type": "string"
},
"stock_status": {
"type": "string"
},
"stock_cases": {
"type": "number"
},
"featured": {
"type": "boolean"
},
"offer_updated_at": {
"type": "string"
},
"expires_at": {
"type": "string"
},
"price_status": {
"description": "\"listed\" or \"indicative\" (listing older than 30 days)",
"type": "string"
}
},
"additionalProperties": {}
}
},
"message": {
"type": "string"
},
"price_status_note": {
"type": "string"
}
},
"required": [
"source",
"results"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}🟢get_offer(offer_id)
Full public details of one open offer by its akay.ie offer_id (or akay.ie offer URL), with the akay.ie link and how to order.
Input Schema
{
"type": "object",
"properties": {
"offer_id": {
"type": "string",
"maxLength": 200,
"description": "offer_id from search results, or the akay.ie offer URL"
}
},
"required": [
"offer_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"source": {
"type": "string",
"description": "Always \"akay.ie\""
},
"feed_published_at": {
"description": "When the akay.ie catalogue snapshot was published (ISO 8601)",
"type": [
"string",
"null"
]
},
"feed_age_hours": {
"type": [
"number",
"null"
]
},
"note": {
"type": "string"
},
"found": {
"type": "boolean"
},
"offer": {
"type": "object",
"properties": {
"offer_id": {
"type": "string"
},
"url": {
"type": "string"
},
"name": {
"type": "string"
},
"brand": {
"type": "string"
},
"category": {
"type": "string"
},
"pack": {
"description": "Units per case",
"type": "number"
},
"volume_ml": {
"type": "number"
},
"abv": {
"type": "number"
},
"unit_type": {
"type": "string"
},
"ean": {
"type": "string"
},
"ean_case": {
"type": "string"
},
"duty_status": {
"description": "Duty status as listed. T1 = non-EU (third-country) status goods under customs transit; T2 = EU-status goods that can move within the EU under excise duty suspension (e.g. with an eAD in EMCS). Both T1 and T2 are held in bond with duty suspended: neither is duty paid. Bonded, On Floor and Duty Paid are shown exactly as listed on akay.ie.",
"type": "string"
},
"incoterm": {
"type": "string"
},
"location": {
"type": "string"
},
"origin": {
"type": "string"
},
"lead_time": {
"type": "string"
},
"moq": {
"type": "string"
},
"moq_estimated": {
"type": "boolean"
},
"cases_per_pallet": {
"type": "number"
},
"currency": {
"description": "EUR, USD or GBP; never converted",
"type": "string"
},
"price_per_case": {
"type": "number"
},
"price_per_unit": {
"type": "number"
},
"price_basis": {
"type": "string"
},
"stock_status": {
"type": "string"
},
"stock_cases": {
"type": "number"
},
"featured": {
"type": "boolean"
},
"offer_updated_at": {
"type": "string"
},
"expires_at": {
"type": "string"
},
"price_status": {
"description": "\"listed\" or \"indicative\" (listing older than 30 days)",
"type": "string"
}
},
"additionalProperties": {}
},
"how_to_order": {
"type": "object",
"properties": {
"instant_quote_upload": {
"type": "string"
},
"instant_quote_chat": {
"type": "string"
},
"whatsapp": {
"type": "string"
},
"whatsapp_number": {
"type": "string"
},
"email": {
"type": "string"
}
},
"additionalProperties": {}
},
"message": {
"type": "string"
},
"price_status_note": {
"type": "string"
}
},
"required": [
"source",
"found"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}🟢get_price(product, ean, offer_id, pack, volume_ml, ...)
Price one product (offer_id, EAN or name) for a quantity in cases. Returns the listed price per case and per unit in the offer's currency, the line total worked out in code, and MOQ and stock checks. If several offers fit, returns candidates instead of picking one. Optional target price comparison. Once the buyer is happy with a line, offer request_quote.
Input Schema
{
"type": "object",
"properties": {
"product": {
"description": "Product name as the buyer wrote it, e.g. \"Jameson 6x70cl T2\"",
"type": "string",
"maxLength": 200
},
"ean": {
"description": "Unit or case barcode",
"type": "string",
"pattern": "^\\d{8,14}$"
},
"offer_id": {
"description": "akay.ie offer id (from search results)",
"type": "string",
"maxLength": 100
},
"pack": {
"description": "Units per case",
"type": "integer",
"minimum": 1,
"maximum": 1000
},
"volume_ml": {
"type": "integer",
"minimum": 1,
"maximum": 100000
},
"abv": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"duty_status": {
"description": "Duty status as listed. T1 = non-EU (third-country) status goods under customs transit; T2 = EU-status goods that can move within the EU under excise duty suspension (e.g. with an eAD in EMCS). Both T1 and T2 are held in bond with duty suspended: neither is duty paid. Bonded, On Floor and Duty Paid are shown exactly as listed on akay.ie.",
"type": "string",
"enum": [
"T1",
"T2",
"Bonded",
"On Floor",
"Duty Paid"
]
},
"cases": {
"description": "Quantity in whole cases (1-10000)",
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"units": {
"description": "Quantity in units, for offers priced per unit/piece without a listed case size. Use cases otherwise.",
"type": "integer",
"minimum": 1,
"maximum": 1000000
},
"target_price": {
"description": "Buyer's target price, compared only when currency and basis are given",
"type": "number",
"exclusiveMinimum": 0,
"maximum": 10000000
},
"target_currency": {
"type": "string",
"enum": [
"EUR",
"USD",
"GBP"
]
},
"target_basis": {
"description": "Whether the target price is per case or per unit",
"type": "string",
"enum": [
"case",
"unit"
]
},
"target_incoterm": {
"type": "string",
"maxLength": 10
},
"target_location": {
"type": "string",
"maxLength": 60
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"source": {
"type": "string",
"description": "Always \"akay.ie\""
},
"feed_published_at": {
"description": "When the akay.ie catalogue snapshot was published (ISO 8601)",
"type": [
"string",
"null"
]
},
"feed_age_hours": {
"type": [
"number",
"null"
]
},
"note": {
"type": "string"
},
"line": {
"type": "number"
},
"requested": {
"type": "string"
},
"cases": {
"type": [
"number",
"null"
]
},
"units_requested": {
"type": [
"number",
"null"
]
},
"status": {
"description": "matched, ambiguous, not_listed, moq_not_met, insufficient_stock, price_unavailable or invalid_quantity",
"type": "string"
},
"matched_by": {
"type": "string"
},
"offer": {
"type": "object",
"properties": {
"offer_id": {
"type": "string"
},
"url": {
"type": "string"
},
"name": {
"type": "string"
},
"brand": {
"type": "string"
},
"category": {
"type": "string"
},
"pack": {
"description": "Units per case",
"type": "number"
},
"volume_ml": {
"type": "number"
},
"abv": {
"type": "number"
},
"unit_type": {
"type": "string"
},
"ean": {
"type": "string"
},
"ean_case": {
"type": "string"
},
"duty_status": {
"description": "Duty status as listed. T1 = non-EU (third-country) status goods under customs transit; T2 = EU-status goods that can move within the EU under excise duty suspension (e.g. with an eAD in EMCS). Both T1 and T2 are held in bond with duty suspended: neither is duty paid. Bonded, On Floor and Duty Paid are shown exactly as listed on akay.ie.",
"type": "string"
},
"incoterm": {
"type": "string"
},
"location": {
"type": "string"
},
"origin": {
"type": "string"
},
"lead_time": {
"type": "string"
},
"moq": {
"type": "string"
},
"moq_estimated": {
"type": "boolean"
},
"cases_per_pallet": {
"type": "number"
},
"currency": {
"description": "EUR, USD or GBP; never converted",
"type": "string"
},
"price_per_case": {
"type": "number"
},
"price_per_unit": {
"type": "number"
},
"price_basis": {
"type": "string"
},
"stock_status": {
"type": "string"
},
"stock_cases": {
"type": "number"
},
"featured": {
"type": "boolean"
},
"offer_updated_at": {
"type": "string"
},
"expires_at": {
"type": "string"
},
"price_status": {
"description": "\"listed\" or \"indicative\" (listing older than 30 days)",
"type": "string"
}
},
"additionalProperties": {}
},
"units": {
"type": "number"
},
"line_total": {
"type": "number"
},
"total_basis": {
"type": "string"
},
"currency": {
"type": "string"
},
"problems": {
"type": "array",
"items": {
"type": "string"
}
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
},
"target_comparison": {
"type": "object",
"properties": {},
"additionalProperties": {}
},
"message": {
"type": "string"
},
"candidate_count": {
"type": "number"
},
"candidates": {
"type": "array",
"items": {
"type": "object",
"properties": {
"offer_id": {
"type": "string"
},
"url": {
"type": "string"
},
"name": {
"type": "string"
},
"brand": {
"type": "string"
},
"category": {
"type": "string"
},
"pack": {
"description": "Units per case",
"type": "number"
},
"volume_ml": {
"type": "number"
},
"abv": {
"type": "number"
},
"unit_type": {
"type": "string"
},
"ean": {
"type": "string"
},
"ean_case": {
"type": "string"
},
"duty_status": {
"description": "Duty status as listed. T1 = non-EU (third-country) status goods under customs transit; T2 = EU-status goods that can move within the EU under excise duty suspension (e.g. with an eAD in EMCS). Both T1 and T2 are held in bond with duty suspended: neither is duty paid. Bonded, On Floor and Duty Paid are shown exactly as listed on akay.ie.",
"type": "string"
},
"incoterm": {
"type": "string"
},
"location": {
"type": "string"
},
"origin": {
"type": "string"
},
"lead_time": {
"type": "string"
},
"moq": {
"type": "string"
},
"moq_estimated": {
"type": "boolean"
},
"cases_per_pallet": {
"type": "number"
},
"currency": {
"description": "EUR, USD or GBP; never converted",
"type": "string"
},
"price_per_case": {
"type": "number"
},
"price_per_unit": {
"type": "number"
},
"price_basis": {
"type": "string"
},
"stock_status": {
"type": "string"
},
"stock_cases": {
"type": "number"
},
"featured": {
"type": "boolean"
},
"offer_updated_at": {
"type": "string"
},
"expires_at": {
"type": "string"
},
"price_status": {
"description": "\"listed\" or \"indicative\" (listing older than 30 days)",
"type": "string"
},
"lowest_listed_akay_price": {
"type": "boolean"
},
"line_total": {
"type": "number"
},
"line_status": {
"type": "string"
},
"differences": {
"type": "array",
"items": {}
}
},
"additionalProperties": {}
}
},
"how_to_order": {
"type": "object",
"properties": {
"instant_quote_upload": {
"type": "string"
},
"instant_quote_chat": {
"type": "string"
},
"whatsapp": {
"type": "string"
},
"whatsapp_number": {
"type": "string"
},
"email": {
"type": "string"
}
},
"additionalProperties": {}
},
"price_status_note": {
"type": "string"
}
},
"required": [
"source"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}🟢list_categories
Categories with offer counts and top brands, plus the values available for the duty status, Incoterm, stock and location filters.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"source": {
"type": "string",
"description": "Always \"akay.ie\""
},
"feed_published_at": {
"description": "When the akay.ie catalogue snapshot was published (ISO 8601)",
"type": [
"string",
"null"
]
},
"feed_age_hours": {
"type": [
"number",
"null"
]
},
"note": {
"type": "string"
},
"total_offers": {
"type": "number"
},
"categories": {
"type": "array",
"items": {
"type": "object",
"properties": {
"category": {
"type": "string"
},
"offers": {
"type": "number"
},
"top_brands": {
"type": "array",
"items": {
"type": "object",
"properties": {
"brand": {
"type": "string"
},
"offers": {
"type": "number"
}
},
"additionalProperties": {}
}
}
},
"additionalProperties": {}
}
},
"filters": {
"type": "object",
"properties": {
"duty_status": {
"type": "array",
"items": {
"type": "object",
"properties": {
"value": {},
"offers": {
"type": "number"
}
},
"additionalProperties": {}
}
},
"incoterm": {
"type": "array",
"items": {
"type": "object",
"properties": {
"value": {},
"offers": {
"type": "number"
}
},
"additionalProperties": {}
}
},
"stock_status": {
"type": "array",
"items": {
"type": "object",
"properties": {
"value": {},
"offers": {
"type": "number"
}
},
"additionalProperties": {}
}
},
"location": {
"type": "array",
"items": {
"type": "object",
"properties": {
"value": {},
"offers": {
"type": "number"
}
},
"additionalProperties": {}
}
},
"currency": {
"type": "array",
"items": {
"type": "object",
"properties": {
"value": {},
"offers": {
"type": "number"
}
},
"additionalProperties": {}
}
}
},
"additionalProperties": {}
}
},
"required": [
"source",
"categories"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}🟢price_my_list(text, lines)
Price a buying list (up to 100 lines / 20 KB): product names or EANs, quantities in cases and optional target prices. Paste it as text (one product per line, or CSV/TSV with a header row) or give structured lines. Each line comes back with a match status (matched, ambiguous, not_listed, moq_not_met, insufficient_stock, price_unavailable), the listed price, pack, stock, duty status, Incoterm and line total. Lines keep their own currency (EUR, USD or GBP); totals are subtotals per currency, never converted or summed across currencies.
Input Schema
{
"type": "object",
"properties": {
"text": {
"description": "The pasted list, e.g. \"Jameson 6x70cl T2 - 200 cases\" per line, or CSV with a header row",
"type": "string",
"maxLength": 20000
},
"lines": {
"maxItems": 100,
"type": "array",
"items": {
"type": "object",
"properties": {
"product": {
"description": "Product name as the buyer wrote it, e.g. \"Jameson 6x70cl T2\"",
"type": "string",
"maxLength": 200
},
"ean": {
"description": "Unit or case barcode",
"type": "string",
"pattern": "^\\d{8,14}$"
},
"offer_id": {
"description": "akay.ie offer id (from search results)",
"type": "string",
"maxLength": 100
},
"pack": {
"description": "Units per case",
"type": "integer",
"minimum": 1,
"maximum": 1000
},
"volume_ml": {
"type": "integer",
"minimum": 1,
"maximum": 100000
},
"abv": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"duty_status": {
"description": "Duty status as listed. T1 = non-EU (third-country) status goods under customs transit; T2 = EU-status goods that can move within the EU under excise duty suspension (e.g. with an eAD in EMCS). Both T1 and T2 are held in bond with duty suspended: neither is duty paid. Bonded, On Floor and Duty Paid are shown exactly as listed on akay.ie.",
"type": "string",
"enum": [
"T1",
"T2",
"Bonded",
"On Floor",
"Duty Paid"
]
},
"cases": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"units": {
"type": "integer",
"minimum": 1,
"maximum": 1000000
},
"target_price": {
"description": "Buyer's target price, compared only when currency and basis are given",
"type": "number",
"exclusiveMinimum": 0,
"maximum": 10000000
},
"target_currency": {
"type": "string",
"enum": [
"EUR",
"USD",
"GBP"
]
},
"target_basis": {
"description": "Whether the target price is per case or per unit",
"type": "string",
"enum": [
"case",
"unit"
]
},
"target_incoterm": {
"type": "string",
"maxLength": 10
},
"target_location": {
"type": "string",
"maxLength": 60
}
}
}
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"source": {
"type": "string",
"description": "Always \"akay.ie\""
},
"feed_published_at": {
"description": "When the akay.ie catalogue snapshot was published (ISO 8601)",
"type": [
"string",
"null"
]
},
"feed_age_hours": {
"type": [
"number",
"null"
]
},
"note": {
"type": "string"
},
"lines_received": {
"type": "number"
},
"status_counts": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "number"
}
},
"totals_for_matched_lines": {
"description": "Subtotal per currency code; currencies are never added together",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "number"
}
},
"totals_note": {
"type": "string"
},
"lines": {
"type": "array",
"items": {
"type": "object",
"properties": {
"line": {
"type": "number"
},
"requested": {
"type": "string"
},
"cases": {
"type": [
"number",
"null"
]
},
"units_requested": {
"type": [
"number",
"null"
]
},
"status": {
"description": "matched, ambiguous, not_listed, moq_not_met, insufficient_stock, price_unavailable or invalid_quantity",
"type": "string"
},
"matched_by": {
"type": "string"
},
"offer": {
"type": "object",
"properties": {
"offer_id": {
"type": "string"
},
"url": {
"type": "string"
},
"name": {
"type": "string"
},
"brand": {
"type": "string"
},
"category": {
"type": "string"
},
"pack": {
"description": "Units per case",
"type": "number"
},
"volume_ml": {
"type": "number"
},
"abv": {
"type": "number"
},
"unit_type": {
"type": "string"
},
"ean": {
"type": "string"
},
"ean_case": {
"type": "string"
},
"duty_status": {
"description": "Duty status as listed. T1 = non-EU (third-country) status goods under customs transit; T2 = EU-status goods that can move within the EU under excise duty suspension (e.g. with an eAD in EMCS). Both T1 and T2 are held in bond with duty suspended: neither is duty paid. Bonded, On Floor and Duty Paid are shown exactly as listed on akay.ie.",
"type": "string"
},
"incoterm": {
"type": "string"
},
"location": {
"type": "string"
},
"origin": {
"type": "string"
},
"lead_time": {
"type": "string"
},
"moq": {
"type": "string"
},
"moq_estimated": {
"type": "boolean"
},
"cases_per_pallet": {
"type": "number"
},
"currency": {
"description": "EUR, USD or GBP; never converted",
"type": "string"
},
"price_per_case": {
"type": "number"
},
"price_per_unit": {
"type": "number"
},
"price_basis": {
"type": "string"
},
"stock_status": {
"type": "string"
},
"stock_cases": {
"type": "number"
},
"featured": {
"type": "boolean"
},
"offer_updated_at": {
"type": "string"
},
"expires_at": {
"type": "string"
},
"price_status": {
"description": "\"listed\" or \"indicative\" (listing older than 30 days)",
"type": "string"
}
},
"additionalProperties": {}
},
"units": {
"type": "number"
},
"line_total": {
"type": "number"
},
"total_basis": {
"type": "string"
},
"currency": {
"type": "string"
},
"problems": {
"type": "array",
"items": {
"type": "string"
}
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
},
"target_comparison": {
"type": "object",
"properties": {},
"additionalProperties": {}
},
"message": {
"type": "string"
},
"candidate_count": {
"type": "number"
},
"candidates": {
"type": "array",
"items": {
"type": "object",
"properties": {
"offer_id": {
"type": "string"
},
"url": {
"type": "string"
},
"name": {
"type": "string"
},
"brand": {
"type": "string"
},
"category": {
"type": "string"
},
"pack": {
"description": "Units per case",
"type": "number"
},
"volume_ml": {
"type": "number"
},
"abv": {
"type": "number"
},
"unit_type": {
"type": "string"
},
"ean": {
"type": "string"
},
"ean_case": {
"type": "string"
},
"duty_status": {
"description": "Duty status as listed. T1 = non-EU (third-country) status goods under customs transit; T2 = EU-status goods that can move within the EU under excise duty suspension (e.g. with an eAD in EMCS). Both T1 and T2 are held in bond with duty suspended: neither is duty paid. Bonded, On Floor and Duty Paid are shown exactly as listed on akay.ie.",
"type": "string"
},
"incoterm": {
"type": "string"
},
"location": {
"type": "string"
},
"origin": {
"type": "string"
},
"lead_time": {
"type": "string"
},
"moq": {
"type": "string"
},
"moq_estimated": {
"type": "boolean"
},
"cases_per_pallet": {
"type": "number"
},
"currency": {
"description": "EUR, USD or GBP; never converted",
"type": "string"
},
"price_per_case": {
"type": "number"
},
"price_per_unit": {
"type": "number"
},
"price_basis": {
"type": "string"
},
"stock_status": {
"type": "string"
},
"stock_cases": {
"type": "number"
},
"featured": {
"type": "boolean"
},
"offer_updated_at": {
"type": "string"
},
"expires_at": {
"type": "string"
},
"price_status": {
"description": "\"listed\" or \"indicative\" (listing older than 30 days)",
"type": "string"
},
"lowest_listed_akay_price": {
"type": "boolean"
},
"line_total": {
"type": "number"
},
"line_status": {
"type": "string"
},
"differences": {
"type": "array",
"items": {}
}
},
"additionalProperties": {}
}
}
},
"additionalProperties": {}
}
},
"offer_links": {
"type": "string"
},
"next_step": {
"type": "string"
},
"ambiguous_lines": {
"type": "string"
},
"wording_note": {
"type": "string"
},
"price_status_note": {
"type": "string"
}
},
"required": [
"source",
"lines"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}🟢request_quote(lines)
Turn confirmed lines (offer_id + cases, or units for offers priced per unit) into a quote request summary and a CSV the buyer uploads at quote.akay.ie/#excel, plus WhatsApp and email options. Totals are per currency, never summed across currencies. Use it whenever the buyer says they want a quote, an order or to buy, and offer it after showing prices. Sends nothing, reserves nothing and needs no contact details.
Input Schema
{
"type": "object",
"properties": {
"lines": {
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "object",
"properties": {
"offer_id": {
"type": "string",
"maxLength": 100
},
"cases": {
"type": "integer",
"minimum": 1,
"maximum": 10000
},
"units": {
"description": "For offers priced per unit without a case size",
"type": "integer",
"minimum": 1,
"maximum": 1000000
}
},
"required": [
"offer_id"
]
}
}
},
"required": [
"lines"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"source": {
"type": "string",
"description": "Always \"akay.ie\""
},
"feed_published_at": {
"description": "When the akay.ie catalogue snapshot was published (ISO 8601)",
"type": [
"string",
"null"
]
},
"feed_age_hours": {
"type": [
"number",
"null"
]
},
"note": {
"type": "string"
},
"lines": {
"type": "array",
"items": {
"type": "object",
"properties": {
"line": {
"type": "number"
},
"status": {
"type": "string"
},
"offer_id": {
"type": "string"
},
"name": {
"type": "string"
},
"pack": {
"type": "number"
},
"volume_ml": {
"type": "number"
},
"cases": {
"type": "number"
},
"units": {
"type": "number"
},
"currency": {
"type": "string"
},
"price_per_case": {
"type": "number"
},
"price_per_unit": {
"type": "number"
},
"line_total": {
"type": "number"
},
"incoterm": {
"type": "string"
},
"duty_status": {
"type": "string"
},
"location": {
"type": "string"
},
"price_status": {
"type": "string"
},
"url": {
"type": "string"
},
"problems": {
"type": "array",
"items": {
"type": "string"
}
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
},
"message": {
"type": "string"
}
},
"additionalProperties": {}
}
},
"totals": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "number"
}
},
"totals_note": {
"type": "string"
},
"summary_text": {
"type": "string"
},
"csv_filename": {
"type": "string"
},
"csv": {
"type": "string"
},
"how_to_send": {
"type": "array",
"items": {
"type": "string"
}
},
"note_to_assistant": {
"type": "string"
}
},
"required": [
"source",
"lines"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}🟢search(query)
Search the akay.ie trade catalogue. Returns offer ids, titles and akay.ie URLs. Use fetch with an id for full details.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"maxLength": 200,
"description": "Search query"
}
},
"required": [
"query"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Offer id; pass to fetch"
},
"title": {
"type": "string"
},
"url": {
"type": "string",
"description": "akay.ie offer page"
}
},
"required": [
"id",
"title",
"url"
],
"additionalProperties": false
}
}
},
"required": [
"results"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢fetch(id)
Fetch the full public details of one akay.ie offer by the id returned from search.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"maxLength": 200,
"description": "Offer id from search"
}
},
"required": [
"id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"text": {
"type": "string"
},
"url": {
"type": "string"
},
"metadata": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": [
"string",
"number",
"boolean",
"null"
]
}
}
},
"required": [
"id",
"title",
"text",
"url"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}Community
Evidence