maxAge is the lookback window in hours. The API checks whether the SIM was swapped within that window.
maxAge: 24 — was the SIM swapped in the last 24 hours?
maxAge: 72 — was the SIM swapped in the last 3 days?
Omit maxAge to use the default lookback window.
Maximum is 1440 (60 days). Larger values are treated as 1440.
A smaller maxAge gives a tighter, more recent check. For high-risk flows (e.g. password reset, large transaction), a shorter window is more conservative.
How to interpret the response
Field
Value
Meaning
success
true
Check completed. Use swapped for the result.
success
false
Check could not be completed (e.g. operator not supported). Inspect the error object.
swapped
true
A SIM swap was detected within the maxAge window. Treat this as a risk signal.
swapped
false
No SIM swap detected within the window.
swapped: false does not mean the number has never been swapped — it means no swap was found within the requested window. When success is false, swapped is omitted.
What is phoneDetail?
phoneDetail contains enriched metadata about the phone number returned alongside the swap result — including operator, country, line type, and time zones. All fields are omitted when not available for the given number or operator.
Field
Type
Description
operator
string
Current network operator (e.g. JIO, AIRTEL, VI)
countryCode
string
Numeric country code (e.g. 91)
country
string
ISO 3166-1 alpha-2 country code (e.g. IN)
type
string
Phone line type (e.g. MOBILE)
homeOperator
string
Registered operator, which may differ from operator if the number is roaming or ported
location
string
Location string for the number’s registered area
timeZones
string[]
IANA time zones for the number’s registered location
Maximum age of SIM swap to check, in hours. Example: 72 checks whether the SIM was swapped in the last 3 days. Maximum is 1440 (60 days); larger values are treated as 1440. Omit to use the default lookback window.
Example:
72
Response
HTTP 200 — Request accepted. Inspect success in the body:
success: true — Check completed. Use swapped to determine result.
success: false — Check could not be completed. Inspect error for details.
Error object returned inside a 200 response when success is false.
Show child attributes
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"OTPLESS","colors":{"primary":"#2759CD","light":"#8DB0FB","dark":"#113997"},"logo":{"light":"https://mintcdn.com/otpless-96/_aEz_FhlLI0izHsE/logo/otpless-dark.svg?fit=max\u0026auto=format\u0026n=_aEz_FhlLI0izHsE\u0026q=85\u0026s=c211521d204eaa2c4148109d50d19edd","dark":"https://mintcdn.com/otpless-96/_aEz_FhlLI0izHsE/logo/otpless-light.svg?fit=max\u0026auto=format\u0026n=_aEz_FhlLI0izHsE\u0026q=85\u0026s=3fd27e254b68526fa18064c62467b18a","href":"https://otpless.com/"},"favicon":"https://mintcdn.com/otpless-96/_aEz_FhlLI0izHsE/favicon.svg?fit=max\u0026auto=format\u0026n=_aEz_FhlLI0izHsE\u0026q=85\u0026s=b0f8f3a3e4b70cf463375510df120336","background":{"image":"https://mintcdn.com/otpless-96/MG5MLCTUP00EUtvA/images/background-documentation-min.png?fit=max\u0026auto=format\u0026n=MG5MLCTUP00EUtvA\u0026q=85\u0026s=c85d6a33e17f625c33c28433c7a595cf","color":{"light":"#F9F9F9","dark":"#0c101f"}},"navbar":{"links":[{"href":"https://otpless.com/support","label":"Contact Support"}],"primary":{"type":"button","label":"Sign in","href":"https://otpless.com/dashboard"}},"footer":{"socials":{"x":"https://x.com/otpless","github":"https://github.com/orgs/otpless-tech/repositories","linkedin":"https://www.linkedin.com/company/otpless"}},"seo":{"indexing":"all"},"contextual":{"options":["copy","view","chatgpt","claude","mcp"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"otpless-96","hasAudioNarration":false,"actualSubdomain":"otpless-96","customDomains":["otpless.com"],"gitSource":{"type":"github","owner":"otpless-tech","repo":"mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6adb487a7ebcfcb7ce77c284","collectionId":"615c67d8-2ad1-47c5-9b47-83eedd597d3a","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adb487a7ebcfcb7ce77c284"},"feedback":{"thumbs":false,"issues":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6adb487a7ebcfcb7ce77c284","clientVersion":"0.0.3971","searchFilterCounts":[{"language":"default","tag":"Frontend SDKs","count":77},{"language":"default","tag":"References","count":61},{"language":"default","tag":"Native/Mobile SDKs","count":51},{"language":"default","tag":"Web SDKs","count":20},{"language":"default","tag":"Android","count":14},{"language":"default","tag":"Server-Initiated Auth","count":12},{"language":"default","tag":"SDK based Integration","count":12},{"language":"default","tag":"Ionic","count":10},{"language":"default","tag":"Silent Network Auth","count":9},{"language":"default","tag":"SNA-SDK based Integration","count":9}]},"assistantConfig":{"enableStarterQuestions":true,"enableContextualStarterQuestions":true,"deflection":{"enabled":true,"email":"help@otpless.com"}},"basePath":"/docs","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"button_style.css","content":".activate-button{display:inline-block;padding:10px 20px;font-size:14px;font-weight:400;color:#fff;border-radius:4px;text-decoration:none;text-align:center;transition:all .3s ease;cursor:pointer;background:#113997}.activate-button p{margin:0}.activate-button:focus,.activate-button:hover{background-color:#113997e1;color:#fff;text-decoration:none;cursor:pointer}.activate-button:active{background-color:#0a3495;box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}"}],"page":{"pagePath":"api-reference/endpoint/telecom/sim-swap-check","slug":"/api-reference/endpoint/telecom/sim-swap-check","pageMetadata":{"title":"SIM Swap Check","description":"Check whether a phone number's SIM has been recently swapped. Use as a pre-authentication risk signal for fraud prevention.","openapi":"POST /v1/telecom/sim-swap-check","href":"/api-reference/endpoint/telecom/sim-swap-check"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Check whether a phone number’s SIM has been recently swapped. Use as a pre-authentication risk signal for fraud prevention.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={code:`code`,li:`li`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,Table}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsxs(Accordion,{title:`What is maxAge?`,id:`what-is-maxage`,children:[_jsxs(_components.p,{children:[_jsx(_components.code,{children:`maxAge`}),` is the lookback window in `,_jsx(_components.strong,{children:`hours`}),`. The API checks whether the SIM was swapped within that window.`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`maxAge: 24`}),` — was the SIM swapped in the last 24 hours?`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`maxAge: 72`}),` — was the SIM swapped in the last 3 days?`]}),`\n`,_jsxs(_components.li,{children:[`Omit `,_jsx(_components.code,{children:`maxAge`}),` to use the default lookback window.`]}),`\n`,_jsxs(_components.li,{children:[`Maximum is `,_jsx(_components.code,{children:`1440`}),` (60 days). Larger values are treated as `,_jsx(_components.code,{children:`1440`}),`.`]}),`\n`]}),_jsxs(_components.p,{children:[`A smaller `,_jsx(_components.code,{children:`maxAge`}),` gives a tighter, more recent check. For high-risk flows (e.g. password reset, large transaction), a shorter window is more conservative.`]})]}),`\n`,_jsxs(Accordion,{title:`How to interpret the response`,id:`how-to-interpret-the-response`,children:[_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Value`}),_jsx(_components.th,{children:`Meaning`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`success`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`true`})}),_jsxs(_components.td,{children:[`Check completed. Use `,_jsx(_components.code,{children:`swapped`}),` for the result.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`success`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`false`})}),_jsxs(_components.td,{children:[`Check could not be completed (e.g. operator not supported). Inspect the `,_jsx(_components.code,{children:`error`}),` object.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`swapped`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`true`})}),_jsxs(_components.td,{children:[`A SIM swap was detected within the `,_jsx(_components.code,{children:`maxAge`}),` window. Treat this as a risk signal.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`swapped`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`false`})}),_jsx(_components.td,{children:`No SIM swap detected within the window.`})]})]})]}),_jsxs(_components.p,{children:[_jsx(_components.code,{children:`swapped: false`}),` does not mean the number has never been swapped — it means no swap was found within the requested window. When `,_jsx(_components.code,{children:`success`}),` is `,_jsx(_components.code,{children:`false`}),`, `,_jsx(_components.code,{children:`swapped`}),` is omitted.`]})]}),`\n`,_jsxs(Accordion,{title:`What is phoneDetail?`,id:`what-is-phonedetail`,children:[_jsxs(_components.p,{children:[_jsx(_components.code,{children:`phoneDetail`}),` contains enriched metadata about the phone number returned alongside the swap result — including operator, country, line type, and time zones. All fields are omitted when not available for the given number or operator.`]}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`operator`})}),_jsx(_components.td,{children:`string`}),_jsxs(_components.td,{children:[`Current network operator (e.g. `,_jsx(_components.code,{children:`JIO`}),`, `,_jsx(_components.code,{children:`AIRTEL`}),`, `,_jsx(_components.code,{children:`VI`}),`)`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`countryCode`})}),_jsx(_components.td,{children:`string`}),_jsxs(_components.td,{children:[`Numeric country code (e.g. `,_jsx(_components.code,{children:`91`}),`)`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`country`})}),_jsx(_components.td,{children:`string`}),_jsxs(_components.td,{children:[`ISO 3166-1 alpha-2 country code (e.g. `,_jsx(_components.code,{children:`IN`}),`)`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`type`})}),_jsx(_components.td,{children:`string`}),_jsxs(_components.td,{children:[`Phone line type (e.g. `,_jsx(_components.code,{children:`MOBILE`}),`)`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`homeOperator`})}),_jsx(_components.td,{children:`string`}),_jsxs(_components.td,{children:[`Registered operator, which may differ from `,_jsx(_components.code,{children:`operator`}),` if the number is roaming or ported`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`location`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Location string for the number’s registered area`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`timeZones`})}),_jsx(_components.td,{children:`string[]`}),_jsx(_components.td,{children:`IANA time zones for the number’s registered location`})]})]})]})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"SIM Swap Check","description":"Check whether a phone number's SIM has been recently swapped. Use as a pre-authentication risk signal for fraud prevention.","openapi":"POST /v1/telecom/sim-swap-check","href":"/api-reference/endpoint/telecom/sim-swap-check"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/otpless-96/b09595f2b6159bec/script.js"],"openApiReferenceData":{"operation":{"tags":["SIM_SWAP"],"summary":"SIM Swap Check","description":"Check whether a phone number's SIM has been recently swapped. Use as a pre-authentication risk signal for fraud prevention.","operationId":"simSwapCheck","requestBody":"b593cef8-c6f3-4479-abd2-05b1004c098b","responses":{"200":"cf8588f4-9b65-4914-9bad-a617dd8b6c7d","400":"598eb998-60b5-4d66-987a-f87200536e32","401":"67777571-faa2-4279-bc86-8ced61b71731"},"method":"post","type":"path","servers":["57fe2ab3-1ef0-4884-8092-4af0484e2e89"],"security":["542e7223-5a55-4df3-9451-730adf93088a"],"path":"/v1/telecom/sim-swap-check","baseUrlOptions":["https://platform.otpless.app"],"title":"SIM Swap Check","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["phoneNumber"],"properties":{"phoneNumber":{"type":"string","example":"917020141726","description":"Phone number including country code, without plus sign. Example: 917020141726 for +91 70201 41726.","isRequired":true,"uniqueKey":"phoneNumber","typeLabel":"string"},"maxAge":{"type":"integer","example":72,"description":"Maximum age of SIM swap to check, in hours. Example: 72 checks whether the SIM was swapped in the last 3 days. Maximum is 1440 (60 days); larger values are treated as 1440. Omit to use the default lookback window.","uniqueKey":"maxAge","typeLabel":"integer"}},"uniqueKey":"","typeLabel":"object"},"examples":{"with_maxAge":{"title":"with_maxAge","value":{"phoneNumber":"917020141726","maxAge":72}},"without_maxAge":{"title":"without_maxAge","value":{"phoneNumber":"917020141726"}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"cf8588f4-9b65-4914-9bad-a617dd8b6c7d":{"description":"**HTTP 200** — Request accepted. Inspect `success` in the body:\n- **`success: true`** — Check completed. Use `swapped` to determine result.\n- **`success: false`** — Check could not be completed. Inspect `error` for details.\n","content":{"application/json":{"schema":{"type":"object","required":["success"],"properties":{"success":{"type":"boolean","description":"`true` if the check completed successfully. `false` if the check could not be completed — inspect the `error` object for details.","isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"swapped":{"type":"boolean","description":"`true` if a SIM swap was detected within the `maxAge` window. `false` if no swap was detected. Omitted when `success` is `false`.","uniqueKey":"swapped","typeLabel":"boolean"},"phoneDetail":{"type":"object","description":"Enriched phone metadata. Fields are omitted when not available for the given number or operator.","properties":{"operator":{"type":"string","example":"JIO","description":"Current network operator (e.g. JIO, AIRTEL, VI).","uniqueKey":"phoneDetail.operator","typeLabel":"string"},"countryCode":{"type":"string","example":"91","description":"Numeric country code.","uniqueKey":"phoneDetail.countryCode","typeLabel":"string"},"country":{"type":"string","example":"IN","description":"ISO 3166-1 alpha-2 country code.","uniqueKey":"phoneDetail.country","typeLabel":"string"},"type":{"type":"string","example":"MOBILE","description":"Phone line type (e.g. MOBILE, LANDLINE).","uniqueKey":"phoneDetail.type","typeLabel":"string"},"homeOperator":{"type":"string","example":"JIO","description":"Home (registered) operator, which may differ from current operator if roaming.","uniqueKey":"phoneDetail.homeOperator","typeLabel":"string"},"isPorted":{"type":"boolean","example":true,"description":"`true` if the number has been ported away from its home operator (so `operator` differs from `homeOperator`).","uniqueKey":"phoneDetail.isPorted","typeLabel":"boolean"},"location":{"type":"string","example":"India","description":"Location string for the phone number (city, state, or country level).","uniqueKey":"phoneDetail.location","typeLabel":"string"},"timeZones":{"type":"array","items":{"type":"string","uniqueKey":"phoneDetail.timeZones.items.[INDEX]","typeLabel":"string"},"example":["Asia/Kolkata"],"description":"IANA time zones for the phone number's registered location.","uniqueKey":"phoneDetail.timeZones","typeLabel":"string[]"}},"uniqueKey":"phoneDetail","typeLabel":"object"},"error":{"type":"object","description":"Error object returned inside a 200 response when `success` is `false`.","properties":{"errorCode":{"type":"string","description":"Machine-readable error code.","uniqueKey":"error.errorCode","typeLabel":"string"},"message":{"type":"string","uniqueKey":"error.message","typeLabel":"string"},"description":{"type":"string","uniqueKey":"error.description","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"not_swapped":{"title":"not_swapped","value":{"success":true,"swapped":false,"phoneDetail":{"operator":"JIO","countryCode":"91","country":"IN","type":"MOBILE","homeOperator":"JIO","location":"India","timeZones":["Asia/Kolkata"]}}},"swapped":{"title":"swapped","value":{"success":true,"swapped":true,"phoneDetail":{"operator":"AIRTEL","countryCode":"91","country":"IN","type":"MOBILE","homeOperator":"AIRTEL","location":"India","timeZones":["Asia/Kolkata"]}}},"telecom_lookup_failed":{"title":"telecom_lookup_failed","value":{"success":false,"error":{"errorCode":"P7301","message":"Telecom lookup failed","description":"Unable to retrieve operator details from the upstream provider."}}},"check_failed":{"title":"check_failed","value":{"success":false,"error":{"errorCode":"P7314","message":"SIM swap check failed","description":"The SIM swap check could not be completed."}}}},"exampleType":"examples"}},"exampleType":"examples"},"598eb998-60b5-4d66-987a-f87200536e32":{"description":"**HTTP 400.** Request rejected due to invalid parameters or an unsupported operator. Body is an error object only — no `success` or `swapped` fields.\n","content":{"application/json":{"schema":{"type":"object","description":"Error response body for HTTP 4xx responses.","properties":{"message":{"type":"string","example":"Invalid Request","uniqueKey":"message","typeLabel":"string"},"errorCode":{"type":"string","example":"P7102","description":"Machine-readable error code. See the error code reference for the full list.","uniqueKey":"errorCode","typeLabel":"string"},"description":{"type":"string","example":"Request error: Invalid phone number","uniqueKey":"description","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"invalid_phone":{"title":"invalid_phone","value":{"message":"Invalid Request","errorCode":"P7102","description":"Request error: Invalid phone number"}},"operator_not_supported":{"title":"operator_not_supported","value":{"message":"SIM swap check not supported for operator","errorCode":"P7311","description":"No SIM swap check available for the phoneNumber's operator."}}},"exampleType":"examples"}},"exampleType":"examples"},"67777571-faa2-4279-bc86-8ced61b71731":{"description":"**HTTP 401.** Unauthorized. `clientId`/`clientSecret` headers are missing or invalid. Body is an error object only.\n","content":{"application/json":{"schema":{"type":"object","description":"Error response body for HTTP 4xx responses.","properties":{"message":{"type":"string","example":"Invalid Request","uniqueKey":"message","typeLabel":"string"},"errorCode":{"type":"string","example":"P7102","description":"Machine-readable error code. See the error code reference for the full list.","uniqueKey":"errorCode","typeLabel":"string"},"description":{"type":"string","example":"Request error: Invalid phone number","uniqueKey":"description","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"credentials_required":{"title":"credentials_required","value":{"message":"Client credentials are required","errorCode":"70001","description":"clientId and clientSecret headers are required."}},"invalid_credentials":{"title":"invalid_credentials","value":{"message":"Invalid client credentials","errorCode":"70002","description":"The provided clientId and clientSecret are invalid."}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"542e7223-5a55-4df3-9451-730adf93088a":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"clientId","description":"OTPless API Client ID","scopes":[],"schemeName":"ApiKeyAuth"},"ApiSecretAuth":{"type":"apiKey","in":"header","name":"clientSecret","description":"OTPless API Client Secret","scopes":[],"schemeName":"ApiSecretAuth"}}},"servers":{"57fe2ab3-1ef0-4884-8092-4af0484e2e89":{"url":"https://platform.otpless.app","description":"Production server"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"clientId","description":"OTPless API Client ID","scopes":[],"schemeName":"ApiKeyAuth"},"schema":{"title":"clientId","type":"string","description":"OTPless API Client ID","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKeyAuth","name":"clientId"},{"scheme":{"type":"apiKey","in":"header","name":"clientSecret","description":"OTPless API Client Secret","scopes":[],"schemeName":"ApiSecretAuth"},"schema":{"title":"clientSecret","type":"string","description":"OTPless API Client Secret","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiSecretAuth","name":"clientSecret"}],"title":"ApiKeyAuth \u0026 ApiSecretAuth"}]},"originalFileLocation":"api-reference/endpoint/telecom/telecom-api.yaml"},"subdomain":"otpless-96","siteName":"OTPLESS","title":"SIM Swap Check - OTPLESS","contextualStarterQuestions":[{"_id":"6adb489a32b2c52c4c45dc12","deploymentId":"65507bb0b99260c1f65d01cc","questionText":"What is phoneDetail in the response?","status":"active","generatedBy":"contextual","path":"api-reference/endpoint/telecom/sim-swap-check","createdAt":"2026-10-23T11:44:26.161Z","updatedAt":"2026-10-23T11:44:26.161Z","__v":0},{"_id":"6adb489a32b2c52c4c45dc11","deploymentId":"65507bb0b99260c1f65d01cc","questionText":"How do I interpret the response?","status":"active","generatedBy":"contextual","path":"api-reference/endpoint/telecom/sim-swap-check","createdAt":"2026-10-23T11:44:26.161Z","updatedAt":"2026-10-23T11:44:26.161Z","__v":0},{"_id":"6adb489a32b2c52c4c45dc10","deploymentId":"65507bb0b99260c1f65d01cc","questionText":"What does maxAge parameter do?","status":"active","generatedBy":"contextual","path":"api-reference/endpoint/telecom/sim-swap-check","createdAt":"2026-10-23T11:44:26.161Z","updatedAt":"2026-10-23T11:44:26.161Z","__v":0}],"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-23T11:44:11.053Z","originalFileLocation":"api-reference/endpoint/telecom/sim-swap-check.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Check whether a phone number\u0026#x27;s SIM has been recently swapped. Use as a pre-authentication risk signal for fraud prevention.\">\u003cmeta data-mint-head name=\"application-name\" content=\"OTPLESS\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/otpless-96/4ecEfjOYTKC7Ncnz/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/otpless-96/4ecEfjOYTKC7Ncnz/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/otpless-96/4ecEfjOYTKC7Ncnz/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/otpless-96/4ecEfjOYTKC7Ncnz/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/otpless-96/4ecEfjOYTKC7Ncnz/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/otpless-96/4ecEfjOYTKC7Ncnz/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/otpless-96/4ecEfjOYTKC7Ncnz/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/otpless-96/4ecEfjOYTKC7Ncnz/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/otpless-96/4ecEfjOYTKC7Ncnz/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"SIM Swap Check - OTPLESS\">\u003cmeta data-mint-head property=\"og:description\" content=\"Check whether a phone number\u0026#x27;s SIM has been recently swapped. Use as a pre-authentication risk signal for fraud prevention.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"OTPLESS\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://otpless.com/docs/api-reference/endpoint/telecom/sim-swap-check\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://otpless-96.mintlify.app/_mintlify/api/og/v2?division=Telecom\u0026amp;title=SIM+Swap+Check\u0026amp;description=Check+whether+a+phone+number%27s+SIM+has+been+recently+swapped.+Use+as+a+pre-authentication+risk+signal+for+fraud+prevention.\u0026amp;theme=7f8688bffaa68a7d5c144e80\u0026amp;signature=8194156cb5cbe24e37f6744f19f77c00e9cf19c304564e322562003002e19da4\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"SIM Swap Check - OTPLESS\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Check whether a phone number\u0026#x27;s SIM has been recently swapped. Use as a pre-authentication risk signal for fraud prevention.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://otpless-96.mintlify.app/_mintlify/api/og/v2?division=Telecom\u0026amp;title=SIM+Swap+Check\u0026amp;description=Check+whether+a+phone+number%27s+SIM+has+been+recently+swapped.+Use+as+a+pre-authentication+risk+signal+for+fraud+prevention.\u0026amp;theme=7f8688bffaa68a7d5c144e80\u0026amp;signature=8194156cb5cbe24e37f6744f19f77c00e9cf19c304564e322562003002e19da4\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/otpless-96/4ecEfjOYTKC7Ncnz/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"OTPLESS\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#2759CD\">\u003clink data-mint-head rel=\"canonical\" href=\"https://otpless.com/docs/api-reference/endpoint/telecom/sim-swap-check\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/api-reference/endpoint/telecom/sim-swap-check.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://otpless.com/#organization\",\"name\":\"OTPLESS\",\"url\":\"https://otpless.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/otpless-96/_aEz_FhlLI0izHsE/logo/otpless-dark.svg?fit=max\u0026auto=format\u0026n=_aEz_FhlLI0izHsE\u0026q=85\u0026s=c211521d204eaa2c4148109d50d19edd\"}},{\"@type\":\"WebSite\",\"@id\":\"https://otpless.com/docs#website\",\"name\":\"OTPLESS\",\"url\":\"https://otpless.com/docs\",\"publisher\":{\"@id\":\"https://otpless.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://otpless.com/docs/api-reference/endpoint/telecom/sim-swap-check#webpage\",\"url\":\"https://otpless.com/docs/api-reference/endpoint/telecom/sim-swap-check\",\"name\":\"SIM Swap Check\",\"description\":\"Check whether a phone number's SIM has been recently swapped. Use as a pre-authentication risk signal for fraud prevention.\",\"dateModified\":\"2026-10-23T11:44:11.053Z\",\"isPartOf\":{\"@id\":\"https://otpless.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://otpless.com/docs/api-reference/endpoint/telecom/sim-swap-check#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://otpless.com/docs/api-reference/endpoint/telecom/sim-swap-check#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Telecom\",\"item\":\"https://otpless.com/docs/api-reference/endpoint/telecom/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SIM Swap Check\",\"item\":\"https://otpless.com/docs/api-reference/endpoint/telecom/sim-swap-check\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://otpless.com/docs/api-reference/endpoint/telecom/sim-swap-check#apireference\",\"headline\":\"SIM Swap Check\",\"name\":\"SIM Swap Check\",\"description\":\"Check whether a phone number's SIM has been recently swapped. Use as a pre-authentication risk signal for fraud prevention.\",\"url\":\"https://otpless.com/docs/api-reference/endpoint/telecom/sim-swap-check\",\"mainEntityOfPage\":{\"@id\":\"https://otpless.com/docs/api-reference/endpoint/telecom/sim-swap-check#webpage\"},\"dateModified\":\"2026-10-23T11:44:11.053Z\",\"publisher\":{\"@id\":\"https://otpless.com/#organization\"},\"isPartOf\":{\"@id\":\"https://otpless.com/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"OTPLESS\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"OTPLESS","nav":{"global":null,"tabs":[{"tab":"Home","pages":[{"title":"Home","href":"/introduction"}]},{"tab":"Frontend SDKs","pages":[{"title":"Frontend SDKs","href":"/quick-start"}]},{"tab":"API Reference","groups":[{"group":"API Documentation","pages":[{"title":"Introduction","href":"/api-reference/introduction"}]},{"group":"Verify Frontend SDK token","pages":[{"title":"Verify token","openapi":"POST /auth/v1/validate/token","href":"/api-reference/endpoint/verifytoken/verify-token-with-secure-data"},{"title":"Verify ID Token","href":"/api-reference/endpoint/verifytoken/id-token-validate"}]},{"group":"Telecom","pages":[{"title":"Overview","description":"Query telecom-level signals for a phone number — SIM swap history, call forwarding status, and enriched phone metadata.","href":"/api-reference/endpoint/telecom/overview"},{"title":"SIM Swap Check","openapi":"POST /v1/telecom/sim-swap-check","href":"/api-reference/endpoint/telecom/sim-swap-check"},{"title":"Call Forwarding Check","description":"Check whether call forwarding is active on a phone number. Use as a pre-authentication risk signal for fraud prevention.","openapi":"POST /v1/telecom/call-forwarding-check","href":"/api-reference/endpoint/telecom/call-forwarding-check"},{"title":"Number Portability Check","openapi":"POST /v1/telecom/portability","href":"/api-reference/endpoint/telecom/portability"},{"title":"Telecom API errors","href":"/api-reference/endpoint/telecom/errors"}]}]},{"tab":"Server-Initiated Auth","pages":[{"title":"Server-Initiated Auth","href":"/server-initiated-auth/overview"}]},{"tab":"Silent Network Auth","pages":[{"title":"Silent Network Auth","href":"/sna/overview"}]},{"tab":"Device Fingerprint","pages":[{"title":"Device Fingerprint","href":"/device-fingerprint/overview"}]},{"tab":"Resources","hidden":true}]},"title":"SIM Swap Check - OTPLESS","buildId":"dpl_GvhK4qVXq51DpfYJLCtPpYNN4YHN","deploymentId":"dpl_GvhK4qVXq51DpfYJLCtPpYNN4YHN","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-Bg4Z7D_G.js","utils-Biz734EK.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-C6F9YHs6.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-BoJjY_VP.js","snippetPresets-CnZ-mOFh.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-DC_SB2pp.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BYKtOiIP.js","shallow-COAac_UD.js","getApiPlaygroundDisplay-BV4Viqi2.js","CodeSnippet-DDgW-JXl.js","CodeSnippets-CP1LpNhG.js","Page-BeiUfucV.js","getPastedJson-Cvgvbfmv.js","icon-D-H368xH.js","MethodPill-CXSxH1VW.js","DuplicateIcon-JcbBzF1x.js","createIcon-BDt_aHZM.js","DynamicMarkdown-DO1Fz7ar.js","SectionHeading-mwKBArs3.js","axios-vUo_bRtp.js","Markdown-C3KUTGJN.js","clsx-C6CAjViH.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-C3vb5JQZ.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-C8Hisf3g.js"]}