Overview
AI-powered API that analyzes merchant/shop images and returns structured classification data including NPCI-compliant MCC codes. Powered by Irame AI vision models for fast, accurate analysis.
Base URL: https://mcc.platform.irame.ai/api/v1
Content Type: multipart/form-data for upload endpoints
Response Format: JSON
Authentication: None — endpoints are currently open.
Endpoints
GET
/api/v1/health
Health check — no authentication required
Response
{
"status": "healthy",
"timestamp": "2026-04-15T10:30:00.000Z",
"version": "1.0.0"
}
POST
/api/v1/analyze
Analyze one or more images of a single shop. Upload multiple angles/views of the same shop for better accuracy.
Headers
| Header | Value | |
|---|---|---|
Content-Type | multipart/form-data | required |
Request Body (multipart/form-data)
| Field | Type | Description |
|---|---|---|
images | File[] | 1-10 image files (JPEG, PNG, WebP). Max 10MB each. required |
Response (200 OK)
{
"success": true,
"request_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"analysis_mode": "single_shop",
"processing_time_ms": 2340,
"data": {
"shop_name": "Sharma General Store",
"is_actual_shop": "Yes",
"mobility": "Non-Movable",
"shop_board": "Hard Board",
"shop_status": "Open",
"nature_of_business": "General grocery and daily essentials retail store",
"mcc_code": "5411",
"mcc_description": "Grocery Stores, Supermarkets"
}
}
POST
/api/v1/analyze/batch
Analyze multiple different shops. Each image is treated as a separate shop.
Headers
| Header | Value | |
|---|---|---|
Content-Type | multipart/form-data | required |
Request Body (multipart/form-data)
| Field | Type | Description |
|---|---|---|
images | File[] | 1-10 image files, each a different shop. required |
Response (200 OK)
{
"success": true,
"request_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"analysis_mode": "multiple_shops",
"processing_time_ms": 4520,
"total_shops": 2,
"data": [
{
"shop_name": "Sharma General Store",
"is_actual_shop": "Yes",
"mobility": "Non-Movable",
"shop_board": "Hard Board",
"shop_status": "Open",
"nature_of_business": "General grocery and daily essentials retail store",
"mcc_code": "5411",
"mcc_description": "Grocery Stores, Supermarkets"
},
{
"shop_name": "Raj Medical",
"is_actual_shop": "Yes",
"mobility": "Non-Movable",
"shop_board": "Banner",
"shop_status": "Open",
"nature_of_business": "Pharmaceutical retail and prescription medicines",
"mcc_code": "5912",
"mcc_description": "Drug Stores and Pharmacies"
}
]
}
GET
/api/v1/mcc-codes
List all NPCI MCC codes supported by the system (deduplicated — each entry lists every category label that maps to it).
Response (200 OK)
{
"success": true,
"total": 42,
"mcc_codes": [
{
"mcc": "5411",
"description": "Grocery Stores, Supermarkets",
"sample_categories": ["Grocery Store", "Supermarket"]
}
]
}
Response Fields Reference
| Field | Type | Values | Description |
|---|---|---|---|
shop_name | string | — | Name on shop signage (English transliteration) |
is_actual_shop | string | YesNo | Whether the image shows a real physical shop |
mobility | string | MovableNon-Movable | Permanent structure vs. mobile/temporary setup |
shop_board | string | BannerHard BoardNo Board | Type of signage — flex/vinyl, permanent sign, or none |
shop_status | string | OpenClosed | Whether the shop appears operational in the image |
nature_of_business | string | — | Descriptive text (5-15 words) of the business |
mcc_code | string | 4-digit | NPCI Merchant Category Code |
mcc_description | string | — | Official MCC description as per NPCI |
Usage Examples
cURL — Single Shop
curl -X POST \
https://mcc.platform.irame.ai/api/v1/analyze \
-F "images=@shop_front.jpg" \
-F "images=@shop_signage.jpg"
cURL — Multiple Shops (Batch)
curl -X POST \
https://mcc.platform.irame.ai/api/v1/analyze/batch \
-F "images=@shop1.jpg" \
-F "images=@shop2.jpg" \
-F "images=@shop3.jpg"
Python
import requests
url = "https://mcc.platform.irame.ai/api/v1/analyze"
files = [("images", open("shop.jpg", "rb"))]
response = requests.post(url, files=files)
data = response.json()
print(f"Shop: {data['data']['shop_name']}")
print(f"MCC: {data['data']['mcc_code']} - {data['data']['mcc_description']}")
JavaScript (fetch)
const formData = new FormData();
formData.append('images', fileInput.files[0]);
const response = await fetch('https://mcc.platform.irame.ai/api/v1/analyze', {
method: 'POST',
body: formData
});
const result = await response.json();
console.log(result.data);
Node.js
const fs = require('fs');
const FormData = require('form-data');
const form = new FormData();
form.append('images', fs.createReadStream('shop.jpg'));
const response = await fetch('https://mcc.platform.irame.ai/api/v1/analyze', {
method: 'POST',
body: form,
headers: form.getHeaders()
});
Error Codes
| Status | Meaning | Common Cause |
|---|---|---|
| 400 | Bad Request | No images uploaded, invalid file type, too many files |
| 413 | Payload Too Large | Image exceeds 10MB limit |
| 500 | Server Error | Upstream AI service failure, processing error |
Limits
| Max images per request | 10 |
| Max file size | 10 MB per image |
| Supported formats | JPEG, PNG, WebP |
| Backend throughput | Up to 1,800 requests/min; no daily cap; excess queues with exponential backoff |
MCC Shop Image Analyzer v1.0.0 | Powered by Irame AI | MCC codes as per NPCI guidelines