Create Member

Create Member

POST https://api.ocamba.com/v2/adex/members
Creates an Adex Member by adding an existing Workspace Member. This is not an invite — the person must already exist on the Workspace. Name and email are taken from the Workspace profile; status is stored as active. Optional assign_to_role may be omitted or null (treated as “default”), “default” (company default role when present), “none” (no role), or a role id. If the company has no default role, the member is still created without a role. Role assignment is not returned in the response.

Note
POST existing member → 409.

Rate limits:

  • Burst: 10/s
  • Steady: 150/m

Request schema

body

Response schemas

curl -X POST \
 "https://api.ocamba.com/v2/adex/members" \
  -H "Authorization: Bearer {TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
  "id": "1000077",
  "assign_to_role": "default"
}'
const url = 'https://api.ocamba.com/v2/adex/members';
const options = {
  method: 'POST',
  headers: {
    Authorization: "Bearer {TOKEN}",
    'Content-Type': "application/json"
  },
  body: JSON.stringify(
    {
      "id": "1000077",
      "assign_to_role": "default"
    }
  )
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
$ch = curl_init("https://api.ocamba.com/v2/adex/members");
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  "Authorization: Bearer {TOKEN}",
  "Content-Type: application/json"
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(
  [
    "id" => "1000077",
    "assign_to_role" => "default"
  ]
));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);

Responses

201 Created

{
  "id": "1000077",
  "company_id": "200",
  "name": "Ana Petrović",
  "status": "active",
  "email": "[email protected]",
  "image": "https://example.com/avatar.png",
  "create_time": "2026-03-01 10:15:00",
  "update_time": "2026-03-01 10:15:00"
}

400 Bad Request

{
  "code": 400,
  "title": "Bad request.",
  "message": "The request is not valid.",
  "trace_id": "99a84211-f73d-4ff8-acdf-eb3e06bb9d62"
}

409 Conflict

{
  "code": 409,
  "title": "Conflict",
  "message": "Object already exists",
  "trace_id": "99a84211-f73d-4ff8-acdf-eb3e06bb9d62"
}

500 Internal Server Error

{
  "code": 500,
  "title": "Internal server error.",
  "trace_id": "99a84211-f73d-4ff8-acdf-eb3e06bb9d62"
}
Responses