{"info":{"_postman_id":"e608d9a0-aa65-45ef-af64-662880efb241","name":"Reply OpenId API Documentation","description":"<html><head></head><body><p><strong>This document outlines the process of user registration and token acquisition for authenticating subsequent API calls within our system, leveraging OpenID Connect.</strong> It covers both new user registration and authentication for existing users</p>\n<h1 id=\"response-codes\">Response Codes</h1>\n<ul>\n<li><p>200 - All good! Request was successful.</p>\n</li>\n<li><p>400 - Uh-oh! There's an issue with your input parameter. Check the response for more information.</p>\n</li>\n<li><p>401 - Token Expaired or does not exist</p>\n</li>\n<li><p>404 - Resource not found. Double-check your URL or the resource identifier. More details can be found in the response.</p>\n</li>\n<li><p>500 - Our bad! There's an internal server error. We've been notified and will get on it ASAP. Check the response for any extra information.</p>\n</li>\n</ul>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[{"content":"Response Codes","slug":"response-codes"}],"owner":"1661965","collectionId":"e608d9a0-aa65-45ef-af64-662880efb241","publishedId":"2sA3kRJ3XS","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2024-07-16T15:04:48.000Z"},"item":[{"name":"Generate Client Token","id":"45f9d09e-ffdd-43cc-874c-5b309420912d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded"}],"body":{"mode":"urlencoded","urlencoded":[{"type":"text","key":"grant_type","value":"client_credentials"},{"type":"text","key":"client_id","value":"{{your-client-id}}","description":"<p>Your Client Id obtained from customer success manager</p>\n"},{"type":"text","key":"client_secret","value":"{{your-client-secret}}","description":"<p>Your Client Secret Id obtained from customer success manager</p>\n"},{"type":"text","key":"scope","value":"external-api-user-management"}]},"url":"https://oauth.reply.io/connect/token","description":"<h3 id=\"description\">Description:</h3>\n<p>This endpoint is used to obtain a client access token, exclusively used for registering new Reply users.</p>\n<h3 id=\"notes\">Notes:</h3>\n<ol>\n<li><p>To obtain an access token, you must first acquire your personal <em>Client ID</em> and <em>Client Secret</em> from your customer success manager.</p>\n</li>\n<li><p>Please note that generated access tokens have a limited lifetime.</p>\n</li>\n</ol>\n<h3 id=\"throttling\">Throttling:</h3>\n<ul>\n<li>There is no throttling for this endpoint.</li>\n</ul>\n<h1 id=\"response-body-data\">Response Body Data:</h1>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>access_token</code></td>\n<td>string</td>\n<td>Generated token used for authenticated requests.</td>\n</tr>\n<tr>\n<td><code>expires_in</code></td>\n<td>integer</td>\n<td>The lifetime of the token in seconds</td>\n</tr>\n<tr>\n<td><code>token_type</code></td>\n<td>string</td>\n<td>The type of token, usually \"Bearer\".</td>\n</tr>\n<tr>\n<td><code>scope</code></td>\n<td>string</td>\n<td>The permissions granted by the token.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["connect","token"],"host":["oauth","reply","io"],"query":[],"variable":[]}},"response":[{"id":"3cc7af19-4fdb-49aa-88e8-da9034b06d8b","name":"Generate Client Token","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded"}],"body":{"mode":"urlencoded","urlencoded":[{"type":"text","key":"grant_type","value":"client_credentials"},{"type":"text","key":"client_id","value":"{{your-client-id}}"},{"type":"text","key":"client_secret","value":"{{your-client-secret}}"},{"type":"text","key":"scope","value":"external-api-user-management"}]},"url":"https://oauth.reply.io/connect/token"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"access_token\": \"eyJhbGciOiJSUzI1NiIsImtpZCI6IjE4RThDNEVGOTM2MjRFNEFBRjBFQjI2RTFEM0EzQjcxMjIzNEQxQkYiLCJ0eXAiOiJhdCtqd3QiLCJ4NXQiOiJHT2pFNzVOaVRrcXZEckp1SFRvN2NTSTAwYjgifQ.eyJuYmYiOjE3MjExMzAwMzgsImV4cCI6MTcyMTEzMzYzOCwiaXN1IjoiaHR0cHM6Ly9vYXV0aC5yZXBseS5pbyIsImF1ZCI6Imh0dHBzOi8vb2F1dGgucmVwbHkuaW8vcmVzb3VyY2VzIiwiY2xpZW50X2lkIjoicmVwbHlxYSIsImp0aSI6IkuyRTQ5Q0MyODc0NDhFQjMzMTBDOEYyQjU5MUE5MzAzIiwiaWF0IjoxNzIxMTMwMDM4LCJzY29wZSI6WyJleHRlcm5hbC1hcGktdXNlci1tYW5hZ2VtZW50Il19.y4EkVbPvMji3jlGCEH9NmY358bx0PWo4HApoihhYNkV4qger43D9XAZe-sQl0Ep5cVqNJYJ69kXRu3KIIvp76SyoPID0Oe7hqv_fIxyGVv48p4HQHgQnAy6R50st6PQmHBqh2EsuVv-IgH9dyyIMxG_B88jDBnfshhzOyG6N1W5Xf1zxcCgv-vv-fP9iVPiCj35M1ty2xfoDlGyLXhVlkHsFQjA7o1ARN-ZpRwEw6JmItjvCv-OcLqOtJQsejdBSkyuRQ-ukL94BbiINdbk9qzMIN4SP-D4XACH2ACWJxol6V6AkPor7-eFsp6ZYe_ZFmTm0d7BLscdlYqKyfQrI7A\",\n    \"expires_in\": 3600,\n    \"token_type\": \"Bearer\",\n    \"scope\": \"external-api-user-management\"\n}"}],"_postman_id":"45f9d09e-ffdd-43cc-874c-5b309420912d"},{"name":"Generate Resource Token","id":"58842159-1278-497d-8870-2dbb6b68d6d8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded"}],"body":{"mode":"urlencoded","urlencoded":[{"type":"text","key":"grant_type","value":"password"},{"type":"text","key":"client_id","value":"{{your-client-id}}","description":"<p>Your Client Id obtained from customer success manager</p>\n"},{"type":"text","key":"client_secret","value":"{{your-client-secret}}","description":"<p>Your Client Secret Id obtained from customer success manager</p>\n"},{"type":"text","key":"username","value":"{{user-email}}","description":"<p>Email of your registered Reply User</p>\n"},{"type":"text","key":"password","value":"{{user-password}}","description":"<p>Password of your registered Reply User</p>\n"},{"type":"text","key":"scope","value":"reply-web-api"}]},"url":"https://oauth.reply.io/connect/token","description":"<h3 id=\"description\">Description:</h3>\n<p>This endpoint is used to obtain user access token, which is required for authenticating all API requests on behalf of a specific user.</p>\n<h3 id=\"notes\">Notes:</h3>\n<ol>\n<li>To obtain an access token, you must first acquire your personal <em>Client ID</em> and <em>Client Secret</em> from your customer success manager.</li>\n<li>Please note that generated access tokens have a limited lifetime.</li>\n</ol>\n<h3 id=\"throttling\">Throttling:</h3>\n<ul>\n<li>There is no throttling for this endpoint.</li>\n</ul>\n<h1 id=\"response-body-data\">Response Body Data:</h1>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>access_token</code></td>\n<td>string</td>\n<td>Generated token used for authenticated requests.</td>\n</tr>\n<tr>\n<td><code>expires_in</code></td>\n<td>integer</td>\n<td>The lifetime of the token in seconds</td>\n</tr>\n<tr>\n<td><code>token_type</code></td>\n<td>string</td>\n<td>The type of token, usually \"Bearer\".</td>\n</tr>\n<tr>\n<td><code>scope</code></td>\n<td>string</td>\n<td>The permissions granted by the token.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["connect","token"],"host":["oauth","reply","io"],"query":[],"variable":[]}},"response":[{"id":"05940c72-c6ad-4949-aae3-9720ac1a5f44","name":"Generate Resource Token","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded"}],"body":{"mode":"urlencoded","urlencoded":[{"type":"text","key":"grant_type","value":"password"},{"type":"text","key":"client_id","value":"{{your-client-id}}"},{"type":"text","key":"client_secret","value":"{{your-client-secret}}"},{"type":"text","key":"username","value":"{{user-email}}"},{"type":"text","key":"password","value":"{{user-password}}"},{"type":"text","key":"scope","value":"reply-web-api"}]},"url":"https://oauth.reply.io/connect/token"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"access_token\": \"eyJhbGciOiJSUzI1NiIsImtpZCI6IjE2RThDNEVGOTM2MjRFNEFBRjBFQjI2RTFEM0EzQjcxMjIzNEQxQkYiLCJ0eXAiOiJhdCtqd3QiLCJ4NXQiOiJHT2pFNzVOaVRrcXZEckp1SFRvN2NTSTAwYjgifQ.eyJuYmYiOjE3MjExMzE3MzksImV4cCI6MTcyMTEzNTMzOSwiaXNzIjoiaHR0cHM6Ly9vYXV0aC5yZXBseS5pbyIsImF1ZCI6WyJyZXBseS13ZWItYXBpIiwicmVwbHktcGxhdGZvcm0iLCJodHRwczovL29hdXRoLnJlcGx5LmlvL3Jlc291cmNlcyJdLCJjbGllbnRfaWQiOiJyZXBseXFhIiwic3ViIjoiMjE1MjIiLCJhdXRoX3RpbWUiOjE3MjexMzE3MzksImlkcCI6ImxvY2FsIiwiZW1haWwiOiJyZXBseXFhLm93bmVyQGdtYWlsLmNvbSIsImp0aSI6IjBDOUMyNUQ3MjNEMjkzMzk0NDc5QzcxQTFCMUU5NUE1IiwiaWF0IjoxNzIxmTMxNzM5LCJzY29wZSI6WyJyZXBseS13ZWItYXBpIl0sImFtciI6WyJwd2QiXX0.iuZIcm8OJl8BTmpzX8v_FyaLtrmlQcIhgDdHL7KumpS-ksyNgiThG6qeST9cTygw6SX6FfJuoY7m5AH2jfdg_7KM-KYVVUMTylCDPgub5E2eXSdW0wE9ui7QjS6oIbW94QqkivY5zo2KAs9cc4P6ty34lmPSjcVBRpbE8xjRTe0IpeGaEI5WG8cWCkXCdQZ7fK2ET_HovbailA02moJXIm0hvnViWZIW6MStkTPxmyRFHwBI1aZSrPmNzvs0FD6X1Ni51EM7NbEMO5_WjAfvj1HHcig-c-Qb2KY6GoRMlNNn-nh_nnUo2R4SoPtu_Zc2CcSSiJCotegYOwcmsd-tA\",\n    \"expires_in\": 3600,\n    \"token_type\": \"Bearer\",\n    \"scope\": \"reply-web-api\"\n}"}],"_postman_id":"58842159-1278-497d-8870-2dbb6b68d6d8"},{"name":"Register New Reply User","id":"25443752-da52-4c8f-8810-2e111713cdca","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[{"key":"Content-Type","value":"application/json"},{"key":"Authorization","value":"Bearer {{access_token}}","description":"<p>Your access_token obtained from Get Client Token endpoint</p>\n","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"userName\": \"user-email\", \n    \"password\": \"user-password\"\n}"},"url":"https://api.reply.io/v1/external-user-management/register-user","description":"<h3 id=\"description\">Description:</h3>\n<p>This endpoint allows to register a new Reply User.</p>\n<h3 id=\"notes\">Notes:</h3>\n<ul>\n<li><p><strong>200 OK:</strong> User registration successful.</p>\n</li>\n<li><p><strong>400 Bad Request:</strong></p>\n<ul>\n<li>Email address already exists.</li>\n<li>Incorrect password.</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"throttling\">Throttling:</h3>\n<ul>\n<li>There is no throttling for this endpoint</li>\n</ul>\n<h1 id=\"request-body-data\">Request Body Data:</h1>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>userName</td>\n<td>string</td>\n<td>Email address for Reply User</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>password</td>\n<td>string</td>\n<td>Password for Reply User  <br />  <br />Requirements:  <br />1. Minimum length: 10 characters  <br />2. Must contain: At least one uppercase letter (A-Z)  <br />3. At least one special character or digit (e.g., !@#$%^&amp;*0123456789)</td>\n<td>Yes</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["v1","external-user-management","register-user"],"host":["api","reply","io"],"query":[],"variable":[]}},"response":[{"id":"898da200-ba3e-4e35-990f-3cf54efed78a","name":"Register New Reply User","originalRequest":{"method":"POST","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"},{"key":"Authorization","value":"Bearer {{access_token}}","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"userName\": \"demoemail@reply.io\",\n    \"password\": \"Demo_Pa$$_123\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.reply.io/v1/external-user-management/register-user"},"status":"OK","code":200,"_postman_previewlanguage":"text","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"25443752-da52-4c8f-8810-2e111713cdca"},{"name":"Access to Reply API via access token","id":"ef4320c6-c08c-4582-a3f4-697bbae01e59","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"GET","header":[{"key":"Authorization","value":"Bearer {{access_token}}","description":"<p>Your access_token obtained from Get Client Token endpoint</p>\n","type":"text"}],"url":"","description":"<p><strong>To access the Reply Public API, you must first register a new user within the Reply Identity Provider.</strong> Once registered, you can obtain an access token by using the <code>Generate Resource Token</code> endpoint.</p>\n<p><strong>To authenticate your API requests:</strong></p>\n<ol>\n<li>Obtain an access token from the <a href=\"https://documenter.getpostman.com/view/1661965/2sA3kRJ3XS#58842159-1278-497d-8870-2dbb6b68d6d8\">Generate Resource Token</a> endpoint.</li>\n<li>Include the obtained access token in the request header by setting the <code>Authorization</code> header with the format <code>Bearer</code> instead of the <code>x-api-key</code> request<code>header</code></li>\n</ol>\n<p><strong>Example:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer eyJhbGciOiJIUzInR5cCI6IkpXVCJ92eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeCCJ9lv9dgYJ6RbRbXlaXXQ37L7UUo3qQ\n\n</code></pre><p>3. Full List of available Reply API Endpoint can be found here <a href=\"https://apidocs.reply.io/#intro\">https://apidocs.reply.io</a></p>\n","urlObject":{"query":[],"variable":[]}},"response":[{"id":"dff6a983-c196-4a50-a66c-082d7fae75cd","name":"Get List of Campaigns via access token","originalRequest":{"method":"GET","header":[{"key":"Authorization","value":"Bearer {{access_token}}","description":"Your access_token obtained from Get Client Token endpoint","type":"text"}],"url":"https://api.reply.io/v1/campaigns"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","name":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"[\n  {\n    \"id\": 177149,\n    \"name\": \"Api Campaign1\",\n    \"created\": \"2018-07-30T09:43:15.1468839+00:00\",\n    \"status\": 2,\n    \"emailAccounts\": [\n      \"demoEmail@reply.io\"\n    ],\n    \"ownerEmail\": \"demoEmail@reply.io\",\n    \"deliveriesCount\": 50,\n    \"opensCount\": 15,\n    \"repliesCount\": 5,\n    \"bouncesCount\": 6,\n    \"optOutsCount\": 4,\n    \"outOfOfficeCount\": 1,\n    \"peopleCount\": 50,\n    \"peopleFinished\": 0,\n    \"peopleActive\": 50,\n    \"peoplePaused\": 0\n  },\n  {\n    \"id\": 177150,\n    \"name\": \"Api Campaign2\",\n    \"created\": \"2018-07-30T09:47:08.7700281+00:00\",\n    \"status\": 4,\n    \"emailAccounts\": [\n      \"demoEmail@reply.io\"\n    ],\n    \"ownerEmail\": \"demoEmail@reply.io\",\n    \"deliveriesCount\": 35,\n    \"opensCount\": 20,\n    \"repliesCount\": 3,\n    \"bouncesCount\": 1,\n    \"optOutsCount\": 2,\n    \"outOfOfficeCount\": 1,\n    \"peopleCount\": 45,\n    \"peopleFinished\": 35,\n    \"peopleActive\": 5,\n    \"peoplePaused\": 5\n  }\n]"}],"_postman_id":"ef4320c6-c08c-4582-a3f4-697bbae01e59"}]}