{"info":{"_postman_id":"275ce0af-8f36-400f-9f3f-2fde22430e5b","name":"VerifySpeed API REST Endpoints","description":"<html><head></head><body><p>Create user verification process with our API REST endpoints</p>\n<h3 id=\"requests-and-responses\">Requests and Responses</h3>\n<ul>\n<li><p>Our API is a <a href=\"https://en.wikipedia.org/wiki/Representational_state_transfer\">REST</a> API.</p>\n</li>\n<li><p>We use JSON for all request and response bodies.</p>\n</li>\n<li><p>Rate limit applied to all inbound requests. (Soon, the details will be provided)</p>\n</li>\n</ul>\n<h3 id=\"http-response-codes\">HTTP Response Codes</h3>\n<p>When calling VerifySpeed endpoints and facing HTTP errors, the following HTTP response codes may be returned based on errors during request processing:</p>\n<ul>\n<li><p><strong>400</strong>: Missing or invalid input data.</p>\n<ul>\n<li>Example: Requesting to create verification with an inactive method.</li>\n</ul>\n</li>\n<li><p><strong>401</strong>: Authentication failure.</p>\n<ul>\n<li>Example: Missing or invalid <code>server-key</code> in the HTTP request.</li>\n</ul>\n</li>\n<li><p><strong>403</strong>: Authorization failure.</p>\n<ul>\n<li>Example: Attempting to access another user's data.. Do not try this one.</li>\n</ul>\n</li>\n<li><p><strong>404</strong>: Resource not found.</p>\n<ul>\n<li>Example: Using a non-existent method name.</li>\n</ul>\n</li>\n</ul>\n<p>For non-success HTTP responses (e. g., status codes outside 200-299), the response body follows the format defined by <a href=\"https://www.rfc-editor.org/rfc/rfc9457\">RFC 9457</a>.</p>\n<h4 id=\"example-of-error-response\">Example of error response:</h4>\n<p>When the provided server key is invalid</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"type\": \"https://tools.ietf.org/html/rfc7235#section-3.1\",\n    \"title\": \"Application not found\",\n    \"status\": 401,\n    \"errors\": {\n        \"server-key\": [\n            \"Invalid key\"\n        ]\n    }\n}\n\n</code></pre>\n<h3 id=\"detailed-verification-documentation\">Detailed Verification Documentation</h3>\n<p>Check out these documentation pages to get a full understanding of the verification process</p>\n<ul>\n<li><p><a href=\"https://doc.verifyspeed.com/docs/Verifications/verification-flow\">Verification Flow</a></p>\n</li>\n<li><p><a href=\"https://doc.verifyspeed.com/docs/Verifications/verification-methods\">Verification Methods</a></p>\n</li>\n<li><p><a href=\"https://doc.verifyspeed.com/docs/Verifications/verification-result\">Verification Result</a></p>\n</li>\n</ul>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"17365198","collectionId":"275ce0af-8f36-400f-9f3f-2fde22430e5b","publishedId":"2sBXikpBjZ","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2026-05-17T15:26:37.000Z"},"item":[{"name":"Initialization","id":"d72ce42f-f6f6-478d-b8f8-07b5e7b7d335","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"server-key","value":"sk_UNREALKEY","description":"<p>Your server-side API key is used to authenticate the request. Can be obtained at Dashboard</p>\n","type":"text"},{"key":"client-ipv4-address","value":"0.0.0.0","description":"<p>The IPv4 address of the client initiating the verification request.</p>\n","type":"text"}],"url":"https://api.verifyspeed.com/v1/verifications/initialize","description":"<p>This endpoint initializes a phone number verification session. It is the <strong>first step</strong> in the VerifySpeed verification flow — call this endpoint to begin the process before proceeding to subsequent verification steps. Response contains the list of available verification methods for the client. (See <a href=\"https://doc.verifyspeed.com/docs/Verifications/verification-methods\">Verification Methods</a> for more details)</p>\n<p>Note: This step can be done from the client side by initializing with SDKs using the client key</p>\n","urlObject":{"protocol":"https","path":["v1","verifications","initialize"],"host":["api","verifyspeed","com"],"query":[],"variable":[]}},"response":[{"id":"8dd90236-63d7-437a-9c66-f7d542a24014","name":"Success Response","originalRequest":{"method":"GET","header":[{"key":"server-key","value":"sk_UNREALKEY","description":"Your server-side API key is used to authenticate the request. Can be obtained at Dashboard"},{"key":"client-ipv4-address","value":"0.0.0.0","description":"The IPv4 address of the client initiating the verification request."}],"url":"https://api.verifyspeed.com/v1/verifications/initialize"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\r\n  \"availableMethods\": [\r\n    {\r\n      \"methodName\": \"whatsapp-message\",\r\n      \"displayName\": \"WhatsAppMessage\"\r\n    },\r\n    {\r\n      \"methodName\": \"sms-otp\",\r\n      \"displayName\": \"SmsOtp\"\r\n    }\r\n  ]\r\n}"}],"_postman_id":"d72ce42f-f6f6-478d-b8f8-07b5e7b7d335"},{"name":"Create Verification","id":"b64678ee-4887-4193-acf3-c37569863236","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"server-key","value":"sk_UNREALKEY","description":"<p>Your server-side API key is used to authenticate the request. Can be obtained at Dashboard</p>\n","type":"text"},{"key":"client-ipv4-address","value":"0.0.0.0","description":"<p>The IPv4 address of the client initiating the verification request.</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"methodName\": \"whatsapp-message\",\r\n    \"language\": \"en\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://api.verifyspeed.com/v1/verifications/create","description":"<p>Notes:</p>\n<ul>\n<li><p>The request field <code>language</code> is optional</p>\n</li>\n<li><p><code>phoneNumber</code> field is required for OTP methods (<code>whatsapp-otp</code>, <code>telegram-otp</code>, or <code>sms-otp</code>)</p>\n</li>\n<li><p>Supported languages for now:</p>\n<ul>\n<li><p><code>en</code> for English (Default)</p>\n</li>\n<li><p><code>ar</code> for Arabic</p>\n</li>\n<li><p><code>ckb</code> for Central Kurdish</p>\n</li>\n</ul>\n</li>\n<li><p>Deep-link (<code>deeplink</code> field) in the response is nullable. It is a URL to complete verification on the client side. It is not null if <code>methodName</code> is <code>whatsapp-messege</code> or <code>telegram-message</code>.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"https","path":["v1","verifications","create"],"host":["api","verifyspeed","com"],"query":[],"variable":[]}},"response":[{"id":"d758f301-c943-46b8-a2dd-0edf40f82e9a","name":"Creating Message-Based Verification","originalRequest":{"method":"POST","header":[{"key":"server-key","value":"sk_UNREALKEY","description":"Your server-side API key is used to authenticate the request. Can be obtained at Dashboard","type":"text"},{"key":"client-ipv4-address","value":"0.0.0.0","description":"The IPv4 address of the client initiating the verification request.","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"methodName\": \"whatsapp-message\",\r\n    \"language\": \"en\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://api.verifyspeed.com/v1/verifications/create"},"_postman_previewlanguage":"","header":[],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\r\n  \"methodName\": \"whatsapp-message\",\r\n  \"verificationKey\": \"GG3DCJGTXXNABE5JA3IGRIMOBFMXP7C7ZIGNBCCFFGW1WTI2JL33PUXFAY2OW115\",\r\n  \"deepLink\": \"https://wa.me/15551234567\"\r\n}"},{"id":"e9b85ffd-738f-440f-abf2-212a4d3dcaac","name":"Creating OTP-Based Verification","originalRequest":{"method":"POST","header":[{"key":"server-key","value":"sk_UNREALKEY","description":"Your server-side API key is used to authenticate the request. Can be obtained at Dashboard","type":"text"},{"key":"client-ipv4-address","value":"0.0.0.0","description":"The IPv4 address of the client initiating the verification request.","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"methodName\": \"whatsapp-otp\",\r\n    \"language\": \"en\",\r\n    \"phoneNumber\":\"+14255552673\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://api.verifyspeed.com/v1/verifications/create"},"_postman_previewlanguage":"","header":[],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\r\n  \"methodName\": \"whatsapp-otp\",\r\n  \"verificationKey\": \"GG3DCJGTXXNABE5JA3IGRIMOBFMXP7C7ZIGNBCCFFGW1WTI2JL33PUXFAY2OW115\",\r\n  \"deepLink\": null\r\n}"}],"_postman_id":"b64678ee-4887-4193-acf3-c37569863236"},{"name":"Get Verification Result","id":"eab0e8c8-bfe0-4bdc-8d48-314e3726617b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"server-key","value":"sk_UNREALKEY","description":"<p>Your server-side API key is used to authenticate the request. Can be obtained at Dashboard</p>\n","type":"text"},{"key":"token","value":"somerandometext","description":"<p>The verification token received from the client</p>\n","type":"text"}],"url":"https://api.verifyspeed.com/v1/verifications/result","description":"<p>Upon receiving the verification token from the client, you can use the verification result endpoint to decrypt the token and retrieve the user’s verified phone number.</p>\n<p>The <code>firstTimeVerified</code> field will be <code>true</code> the first time you fetch the verification result, and <code>false</code> on any subsequent calls. This allows you to determine whether the verification token has been submitted to your backend more than once, which can be useful for security purposes.</p>\n<p><strong>Recommended Approach</strong>: Client-side Token Decryption</p>\n<p>Instead of calling the verification result endpoint, we recommend that your server decrypt the verification token directly using your server key. This approach is more efficient and faster, and it eliminates the need for an additional API call.</p>\n<p>For detailed implementation examples, see <a href=\"https://doc.verifyspeed.com/docs/Verifications/verification-result\">Verification Result Documentation</a></p>\n","urlObject":{"protocol":"https","path":["v1","verifications","result"],"host":["api","verifyspeed","com"],"query":[],"variable":[]}},"response":[{"id":"d5d1c6d1-cfa7-4603-a2e3-dbc69f789d3f","name":"Success Response","originalRequest":{"method":"GET","header":[{"key":"server-key","value":"sk_UNREALKEY","description":"Your server-side API key is used to authenticate the request. Can be obtained at Dashboard"},{"key":"token","value":"somerandometext","description":"The verification token received from the client"}],"url":"https://api.verifyspeed.com/v1/verifications/initialize"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[{"expires":"Invalid Date","domain":"","path":""}],"responseTime":null,"body":"{\r\n  \"methodName\": \"telegram-otp\",\r\n  \"verificationKey\": \"GG3DCJGTXXNABE5JA3IGRIMOBFMXP7C7ZIGNBCCFFGW1WTI2JL33PUXFAY2OW115\",\r\n  \"dateOfVerification\": \"2024-06-24T14:51:02.877Z\",\r\n  \"phoneNumber\": \"+12223334455\",\r\n  \"firstTimeVerified\": true\r\n}"}],"_postman_id":"eab0e8c8-bfe0-4bdc-8d48-314e3726617b"}]}