Developers · API Reference

Appz360 API Documentation

Build on Appz360 apps for Microsoft 365. Authenticate with OAuth 2.0, manage apps and users, and subscribe to workspace events with webhooks.

Version: v1 Base URL: https://api.appz360.com/v1 Last updated: October 12, 2026
01

Introduction

The Appz360 API lets you manage apps, users, and integrations programmatically across our AI-native suite for Microsoft 365 (CLMS360, Payroll360, Helpdesk360, and related products). The API is organized around REST, accepts JSON-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes.

All requests must be made over HTTPS. Requests over plain HTTP are rejected.

Quickstart

  1. Create an API key. In the Appz360 admin console, open Settings → Developers → API Keys.
  2. Get an access token. Exchange your client ID and secret for a short-lived bearer token (see Authentication).
  3. Call the API. Send the token in the Authorization header, for example to list your installed apps:
curl https://api.appz360.com/v1/apps \ -H "Authorization: Bearer <access_token>"

Build for the products in your tenant: CLMS360 (contract lifecycle management), Helpdesk360 (ticketing) and Payroll360 (payroll).

02

Authentication

The API uses OAuth 2.0 client-credentials tokens scoped to your workspace. Generate an API key from Settings → Developers → API Keys in your Appz360 admin console, then exchange it for a short-lived bearer token.

Request an access token
curl https://api.appz360.com/v1/oauth/token \ -X POST \ -H "Content-Type: application/json" \ -d '{ "client_id": "YOUR_CLIENT_ID", "client_secret": "YOUR_CLIENT_SECRET", "grant_type": "client_credentials" }'

Include the returned token on every request:

Authorization: Bearer <access_token>
03

Making requests

Send requests to the base URL https://api.appz360.com/v1. Set Content-Type: application/json on requests with a body. List endpoints support limit and cursor query parameters for pagination.

Example request
curl https://api.appz360.com/v1/apps \ -H "Authorization: Bearer <access_token>"
04

Rate limits

Requests are limited to 120 requests per minute per API key. Each response includes rate-limit headers:

HeaderDescription
X-RateLimit-LimitMaximum requests allowed in the current window
X-RateLimit-RemainingRequests remaining in the current window
X-RateLimit-ResetUnix timestamp when the window resets

Exceeding the limit returns a 429 Too Many Requests response.

05

Apps

Manage the Appz360 applications installed in your Microsoft 365 tenant.

GET/apps

List all apps installed for the authenticated workspace.

Response
{ "data": [ { "id": "app_clms360", "name": "CLMS360", "status": "active" }, { "id": "app_payroll360", "name": "Payroll360", "status": "active" } ], "next_cursor": null }

GET/apps/{app_id}

Retrieve details for a single app, including its enabled features and Microsoft Graph permission scopes.

PATCH/apps/{app_id}/settings

Update configuration for an app, such as enabled modules or notification preferences.

Request body
{ "notifications_enabled": true, "default_locale": "en-IN" }
06

Users

GET/users

List users provisioned in your workspace, synced from Microsoft 365 via Microsoft Graph.

POST/users/{user_id}/roles

Assign an app-level role to a user (for example, admin, approver, member).

DELETE/users/{user_id}

Deprovision a user from Appz360 apps. This does not remove the user from your Microsoft 365 tenant.

07

Webhooks

Subscribe to workspace events (app installs, user changes, workflow completions) by registering a webhook endpoint. Appz360 signs each payload with an X-Appz360-Signature header using your webhook signing secret.

POST/webhooks

Register a new webhook endpoint.

Request body
{ "url": "https://example.com/webhooks/appz360", "events": ["app.installed", "user.deprovisioned"] }
08

Errors

Errors return a JSON body describing what went wrong, alongside a standard HTTP status code.

{ "error": { "code": "invalid_request", "message": "The 'app_id' field is required." } }
StatusMeaning
200/201Success
400Invalid request parameters
401Missing or invalid access token
403Token lacks required scope
404Resource not found
429Rate limit exceeded
500Internal server error — retry with backoff
09

SDKs & libraries

Official client libraries are planned for Node.js and Python. Until then, the API can be called directly over HTTPS from any language using the examples on this page.

10

Changelog

DateChange
2026-10-12Documentation finalized: quickstart added, draft notice removed
2026-09-10Initial public API reference published
11

Support

Questions about integrating with the Appz360 API can be sent to developers@appz360.com.

Appz360 — AI-native apps for Microsoft 365. API v1 · Questions? developers@appz360.com