{
  "info": {
    "name": "Axis Unified Inbox API — Authentication",
    "description": "# Axis Unified Inbox API\n\nAuthentication — 15 endpoints, generated from the Laravel route table on Tue, 04 Aug 2026 12:47:23 GMT.\n\n## Getting started\n\n1. Set the `baseUrl` collection variable if you are not using the default.\n2. Run **Authentication → `POST /user/login`** with your email and password.\n   A test script stores the returned JWT into `{{access_token}}` automatically.\n3. Every other request inherits that bearer token — just hit Send.\n\nRequests using an API key instead read `{{api_key}}` or `{{engage_key}}`; set those\nvariables if you need them.\n\n## Variables\n\n| Variable | Purpose |\n| --- | --- |\n| `baseUrl` | API host, e.g. `https://api.axis.im` |\n| `access_token` | JWT bearer token (auto-filled by the login request) |\n| `api_key` | Value for the `X-API-KEY` header |\n| `engage_key` | Value for the `X-Axis-Admin-API-Key` header |",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
    "_exporter_id": "axis-api-docs"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{access_token}}",
        "type": "string"
      }
    ]
  },
  "item": [
    {
      "name": "GET /auth/{provider}/callback",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/auth/:provider/callback",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "auth",
            ":provider",
            "callback"
          ],
          "variable": [
            {
              "key": "provider",
              "value": "",
              "description": "provider identifier"
            }
          ]
        },
        "description": "**Authentication:** Public\n**Handler:** `Auth\\UserAuthController@handleProviderCallback`",
        "auth": {
          "type": "noauth"
        }
      },
      "response": []
    },
    {
      "name": "GET /auth/{provider}/redirect",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/auth/:provider/redirect",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "auth",
            ":provider",
            "redirect"
          ],
          "variable": [
            {
              "key": "provider",
              "value": "",
              "description": "provider identifier"
            }
          ]
        },
        "description": "**Authentication:** Public\n**Handler:** `Auth\\UserAuthController@redirectToProvider`",
        "auth": {
          "type": "noauth"
        }
      },
      "response": []
    },
    {
      "name": "POST /user/delete-account",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/user/delete-account",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "user",
            "delete-account"
          ]
        },
        "description": "**Authentication:** JWT (user)\n**Handler:** `Auth\\UserAuthController@deleteAccount`\n\n> This endpoint accepts a body, but no `FormRequest` class backs it — validation happens\n> inline in the controller, so the fields could not be derived automatically. An empty JSON\n> body is provided as a starting point.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      },
      "response": []
    },
    {
      "name": "POST /user/device-token",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/user/device-token",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "user",
            "device-token"
          ]
        },
        "description": "**Authentication:** JWT (user)\n**Handler:** `Auth\\UserAuthController@updateDeviceToken`\n\n> This endpoint accepts a body, but no `FormRequest` class backs it — validation happens\n> inline in the controller, so the fields could not be derived automatically. An empty JSON\n> body is provided as a starting point.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      },
      "response": []
    },
    {
      "name": "POST /user/generate-code",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/user/generate-code",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "user",
            "generate-code"
          ]
        },
        "description": "**Authentication:** Optional JWT\n**Handler:** `Auth\\UserAuthController@generateCode`\n\n> This endpoint accepts a body, but no `FormRequest` class backs it — validation happens\n> inline in the controller, so the fields could not be derived automatically. An empty JSON\n> body is provided as a starting point.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      },
      "response": []
    },
    {
      "name": "POST /user/generate-token",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/user/generate-token",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "user",
            "generate-token"
          ]
        },
        "description": "**Authentication:** Optional JWT\n**Handler:** `Auth\\UserAuthController@generateToken`\n\n> This endpoint accepts a body, but no `FormRequest` class backs it — validation happens\n> inline in the controller, so the fields could not be derived automatically. An empty JSON\n> body is provided as a starting point.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      },
      "response": []
    },
    {
      "name": "POST /user/login",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/user/login",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "user",
            "login"
          ]
        },
        "description": "**Authentication:** Optional JWT\n**Handler:** `Auth\\UserAuthController@login`\n\n> This endpoint accepts a body, but no `FormRequest` class backs it — validation happens\n> inline in the controller, so the fields could not be derived automatically. An empty JSON\n> body is provided as a starting point.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      },
      "response": [],
      "event": [
        {
          "listen": "test",
          "script": {
            "type": "text/javascript",
            "exec": [
              "const json = pm.response.json();",
              "const token = json.access_token || json.token;",
              "if (token) {",
              "  pm.collectionVariables.set('access_token', token);",
              "  console.log('✓ access_token saved to collection variables');",
              "} else {",
              "  console.warn('No access_token in response');",
              "}"
            ]
          }
        }
      ]
    },
    {
      "name": "POST /user/logout",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/user/logout",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "user",
            "logout"
          ]
        },
        "description": "**Authentication:** Optional JWT\n**Handler:** `Auth\\UserAuthController@logout`\n\n> This endpoint accepts a body, but no `FormRequest` class backs it — validation happens\n> inline in the controller, so the fields could not be derived automatically. An empty JSON\n> body is provided as a starting point.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      },
      "response": []
    },
    {
      "name": "POST /user/newpassword",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/user/newpassword",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "user",
            "newpassword"
          ]
        },
        "description": "**Authentication:** Optional JWT\n**Handler:** `Auth\\ResetPasswordController@newpassword`\n\n> This endpoint accepts a body, but no `FormRequest` class backs it — validation happens\n> inline in the controller, so the fields could not be derived automatically. An empty JSON\n> body is provided as a starting point.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      },
      "response": []
    },
    {
      "name": "POST /user/provider-auth",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/user/provider-auth",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "user",
            "provider-auth"
          ]
        },
        "description": "**Authentication:** Optional JWT\n**Handler:** `Auth\\UserAuthController@confirmProviderAuth`\n\n> This endpoint accepts a body, but no `FormRequest` class backs it — validation happens\n> inline in the controller, so the fields could not be derived automatically. An empty JSON\n> body is provided as a starting point.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      },
      "response": []
    },
    {
      "name": "POST /user/refresh",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/user/refresh",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "user",
            "refresh"
          ]
        },
        "description": "**Authentication:** Optional JWT\n**Handler:** `Auth\\UserAuthController@refresh`\n\n> This endpoint accepts a body, but no `FormRequest` class backs it — validation happens\n> inline in the controller, so the fields could not be derived automatically. An empty JSON\n> body is provided as a starting point.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      },
      "response": []
    },
    {
      "name": "POST /user/reset",
      "request": {
        "method": "POST",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          },
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/user/reset",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "user",
            "reset"
          ]
        },
        "description": "**Authentication:** Optional JWT\n**Handler:** `Auth\\ForgotCredentialsController@reset`\n\n> This endpoint accepts a body, but no `FormRequest` class backs it — validation happens\n> inline in the controller, so the fields could not be derived automatically. An empty JSON\n> body is provided as a starting point.",
        "body": {
          "mode": "raw",
          "raw": "{\n  \n}",
          "options": {
            "raw": {
              "language": "json"
            }
          }
        }
      },
      "response": []
    },
    {
      "name": "GET /user/session-status",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/user/session-status",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "user",
            "session-status"
          ]
        },
        "description": "**Authentication:** JWT (user)\n**Handler:** `Auth\\UserAuthController@sessionStatus`"
      },
      "response": []
    },
    {
      "name": "GET /user/user",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/user/user",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "user",
            "user"
          ]
        },
        "description": "**Authentication:** JWT (user)\n**Handler:** `Auth\\UserAuthController@me`"
      },
      "response": []
    },
    {
      "name": "GET /verify/{id}/{hash}",
      "request": {
        "method": "GET",
        "header": [
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{baseUrl}}/api/verify/:id/:hash",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "api",
            "verify",
            ":id",
            ":hash"
          ],
          "variable": [
            {
              "key": "id",
              "value": "",
              "description": "id identifier"
            },
            {
              "key": "hash",
              "value": "",
              "description": "hash identifier"
            }
          ]
        },
        "description": "**Authentication:** Public\n**Handler:** `Auth\\UserAuthController@verifyUserEmail`\n**Route name:** `verification.verify`",
        "auth": {
          "type": "noauth"
        }
      },
      "response": []
    }
  ],
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://api.axis.im",
      "type": "string"
    },
    {
      "key": "access_token",
      "value": "",
      "type": "string"
    },
    {
      "key": "api_key",
      "value": "",
      "type": "string"
    },
    {
      "key": "engage_key",
      "value": "",
      "type": "string"
    }
  ]
}