Skip to main content

Overview

The Adcyma API lets you create, update, look up, and offboard Entra ID users from your own systems.

Base URL: https://api.adcyma.com
Path prefix: /v1/api
Content type: application/json

All endpoints are mounted under the path prefix above. For example, the create-user endpoint is at https://api.adcyma.com/v1/api/user.

Authentication

Every request (except the health check) must include three headers:

  • X-Company-ID: Your tenant identifier. You can find this under Settings > Company profile in Adcyma.
  • X-Api-User: The username of an active API user from your tenant.
  • X-Api-Key: The secret key paired with that API user.

API users and keys are managed in the System Users section of your Adcyma portal. The key is only shown once when you create it. Store it somewhere safe. If you lose it, generate a new one and revoke the old.

Example headers

X-Company-ID: AcmeAB-1f2c8a90
X-Api-User: integrations-bot
X-Api-Key: <your-secret-key>
Content-Type: application/json

Response envelope

Successful responses wrap the payload in a data object:

{
"data": {
"message": "User creation queued successfully"
}
}

Errors come back in a consistent shape:

{
"error": {
"code": "BAD_REQUEST",
"message": "Missing required field: userPrincipalName"
}
}

The HTTP status code matches the error code:

HTTP statuscodeWhen it happens
400BAD_REQUESTA required field is missing, or a value fails validation.
401UNAUTHORIZEDAPI credentials are missing, mistyped, or belong to a disabled API user.
404NOT_FOUNDThe user you referenced does not exist in your tenant.
429RATE_LIMIT_EXCEEDEDYou hit one of the rate limits described below.
500INTERNAL_ERRORUnexpected server-side error. Safe to retry after a short wait.

Rate limits

Limits are evaluated on a 60-second sliding window. When you hit a limit, the response is 429 RATE_LIMIT_EXCEEDED. Wait for the window to clear and retry.

ScopeDefault limitNotes
Per IP200 requests / minCounted across all tenants behind the same IP.
Per tenant100 requests / minCounted per X-Company-ID.
Failed auth10 attempts / minPer tenant. Triggered by missing or wrong X-Api-User / X-Api-Key.

Request body limits

  • The maximum JSON request body is 16 KB. Larger payloads are rejected before they reach the route.
  • All authenticated endpoints expect a JSON body (or query string on GET). Always send Content-Type: application/json.

Health check

One unauthenticated endpoint is available for uptime monitoring.

Endpoint: /v1/api/health
Method: GET
Description: Returns 200 OK when the API is running. Useful for liveness probes and external monitors.

Success Response (200 OK):

{
"data": {
"status": "ok"
}
}