Masked Mobile Credit Report
creditCredit report against a masked mobile number with consent (Experian, via API Sathi).
POST /gw/v1/masked-mobile-report-v1/SLA p95: 2000 ms
Authentication
Pass your key in the X-API-Key header. Use a test_ key against the sandbox and a live_ key in production. Send an optional Idempotency-Key header to safely retry — the same key returns the same response for 24h.
X-API-Key: live_xxxxxxxxxxxx
Request
Endpoint: POST https://apisathi.in/gw/v1/masked-mobile-report-v1
| Field | Type | Required | Constraints |
|---|---|---|---|
| otp | string | required | — |
| device_ip | string | required | — |
| last_name | string | required | — |
| mobile_no | string | required | pattern: ^[6-9][0-9]{9}$ |
| timestamp | string | required | DDMMYYYY-HH:MM:SS |
| first_name | string | required | — |
| consent_message | string | required | Experian consent; must contain the words I, authorize, Experian, credit, report |
| consent_acceptance | string | required | — |
Code snippets
curl -X POST https://apisathi.in/gw/v1/masked-mobile-report-v1/ \
-H "X-API-Key: $API_SATHI_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"mobile_no":"9876543210","first_name":"Rohit Sharma","last_name":"Rohit Sharma","consent_message":"I hereby provide my consent for verification.","consent_acceptance":"yes","otp":"123456","timestamp":"sample","device_ip":"sample"}'Response
| Field | Type | Required | Constraints |
|---|---|---|---|
| report | object | optional | — |
| message | string | optional | — |
| report_pdf | string | optional | — |
| report_xml | string | optional | — |
Sample response
{
"report": {},
"message": "sample",
"report_pdf": "sample",
"report_xml": "sample"
}Error codes
| Code | HTTP | When |
|---|---|---|
| INVALID_INPUT | 422 | Request body failed schema validation. |
| INVALID_API_KEY | 401 | Missing, malformed, or revoked X-API-Key. |
| OUT_OF_SCOPE | 403 | API key is not scoped for this product. |
| INSUFFICIENT_BALANCE | 402 | Wallet balance is below the per-call sale price. |
| RATE_LIMITED | 429 | Per-key RPS or RPM limit exceeded. See Retry-After. |
| ROUTER_NO_VENDOR | 503 | No healthy vendor is currently available for this product. |
| VENDOR_AUTH_FAILED | 502 | Upstream vendor rejected our credentials. |
| VENDOR_ERROR | 502 | Upstream vendor returned an unexpected error. |
| TIMEOUT | 504 | Upstream vendor did not respond within the SLA window. |
OpenAPI 3.1
Generated from this product's request/response JSON Schemas.
{
"openapi": "3.1.0",
"info": {
"title": "API Sathi — Masked Mobile Credit Report",
"version": "1.0.0",
"description": "Credit report against a masked mobile number with consent (Experian, via API Sathi)."
},
"servers": [
{
"url": "https://apisathi.in/gw/v1"
}
],
"components": {
"securitySchemes": {
"ApiKeyAuth": {
"type": "apiKey",
"in": "header",
"name": "X-API-Key",
"description": "Your live or test key, e.g. `live_xxxxxxxxxxxx`."
}
}
},
"paths": {
"/masked-mobile-report-v1": {
"post": {
"operationId": "maskedMobileReportV1",
"tags": [
"credit"
],
"summary": "Masked Mobile Credit Report",
"description": "Credit report against a masked mobile number with consent (Experian, via API Sathi).",
"security": [
{
"ApiKeyAuth": []
}
],
"parameters": [
{
"name": "Idempotency-Key",
"in": "header",
"required": false,
"schema": {
"type": "string"
},
"description": "Optional. Same key returns the same response for 24h."
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"mobile_no",
"first_name",
"last_name",
"consent_message",
"consent_acceptance",
"otp",
"timestamp",
"device_ip"
],
"properties": {
"otp": {
"type": "string"
},
"device_ip": {
"type": "string"
},
"last_name": {
"type": "string"
},
"mobile_no": {
"type": "string",
"pattern": "^[6-9][0-9]{9}$"
},
"timestamp": {
"type": "string",
"description": "DDMMYYYY-HH:MM:SS"
},
"first_name": {
"type": "string"
},
"consent_message": {
"type": "string",
"description": "Experian consent; must contain the words I, authorize, Experian, credit, report"
},
"consent_acceptance": {
"enum": [
"yes",
"no"
],
"type": "string"
}
},
"additionalProperties": false
},
"example": {
"mobile_no": "9876543210",
"first_name": "Rohit Sharma",
"last_name": "Rohit Sharma",
"consent_message": "I hereby provide my consent for verification.",
"consent_acceptance": "yes",
"otp": "123456",
"timestamp": "sample",
"device_ip": "sample"
}
}
}
},
"responses": {
"200": {
"description": "Successful, normalized response.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"report": {
"type": "object"
},
"message": {
"type": "string"
},
"report_pdf": {
"type": "string"
},
"report_xml": {
"type": "string"
}
}
},
"example": {
"report": {},
"message": "sample",
"report_pdf": "sample",
"report_xml": "sample"
}
}
}
},
"401": {
"description": "Missing, malformed, or revoked X-API-Key.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"call_id": {
"type": "string"
}
}
}
}
}
}
}
},
"402": {
"description": "Wallet balance is below the per-call sale price.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"call_id": {
"type": "string"
}
}
}
}
}
}
}
},
"403": {
"description": "API key is not scoped for this product.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"call_id": {
"type": "string"
}
}
}
}
}
}
}
},
"422": {
"description": "Request body failed schema validation.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"call_id": {
"type": "string"
}
}
}
}
}
}
}
},
"429": {
"description": "Per-key RPS or RPM limit exceeded. See Retry-After.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"call_id": {
"type": "string"
}
}
}
}
}
}
}
},
"502": {
"description": "Upstream vendor rejected our credentials.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"call_id": {
"type": "string"
}
}
}
}
}
}
}
},
"503": {
"description": "No healthy vendor is currently available for this product.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"call_id": {
"type": "string"
}
}
}
}
}
}
}
},
"504": {
"description": "Upstream vendor did not respond within the SLA window.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"call_id": {
"type": "string"
}
}
}
}
}
}
}
}
}
}
}
}
}