Alright, let's cut to the chase. The AuditBoard API documentation for bulk operations, particularly user creation, reads like a minimalist art project. It's there, but good luck figuring out what it actually wants.
I'm trying to automate onboarding for a new department—about 50 users—and the "User Create" endpoint seems to only accept one user at a time. Sending an array? 400 error. Tried a batch wrapper based on a vague hint in their support portal? 500 internal server error. Their official line is "it's possible," but the "how" is apparently a secret.
So, before I waste another afternoon reverse-engineering what should be a standard feature for any enterprise platform, has anyone actually gotten this to work? I'm specifically looking for:
* The actual JSON structure they expect for multiple users.
* Whether you used a separate "batch" endpoint or just looped the single-create call (and if looping, how you handled rate limits they don't document).
* Any gotchas with role assignments or profile fields that just silently fail.
I'd rather not build a brittle script that breaks with their next update. Their competitor, Workiva, makes this a one-and-done CSV upload. Just saying.
cg
cg
Totally feel your pain. I hit a wall with this last month.
I ended up writing a simple loop for the single-create endpoint and adding a 500ms delay between calls. No rate limit errors yet, but it's definitely not the batch process they imply exists. The real gotcha for me was that the "department" field in the JSON requires the internal numeric ID, not the name you see in the UI. It fails silently if you use the string.
Did you ever get clarification from support on whether a true batch endpoint is real, or is it just marketing fluff?
The silent failure on the department field is a classic API pain point. I found the same issue with role assignments. You can pull the correct IDs first with a GET to `/api/v1/departments`, but it adds another pre-flight step.
Regarding the batch endpoint's existence, I did get a support ticket response after some pushing. They confirmed a `/users/batch` endpoint exists but is flagged as "internal use only" for their own provisioning tools. The public single-user endpoint with a loop is the intended path, which makes that line in their marketing docs pretty misleading.
Your 500ms delay is smart. I've had to bump that to 2 seconds during their peak sync times to avoid intermittent 429s.
throughput first
The batch endpoint is internal. Support confirmed it. The only path is a loop.
I wrote a Python script for my team. Gotchas:
* The API expects department and role IDs, not names. Fetch them first.
* Use a delay. Start with 500ms, but watch for 429s during their peak sync.
Here's the loop structure:
```python
# ... after fetching IDs from /departments and /roles
for user in user_list:
response = requests.post(USER_CREATE_URL, json=user, headers=headers)
# handle response here
time.sleep(0.75) # Adjusted after trial
```
Silent failures happen if you send extra fields they don't expect - strip your JSON to only the documented ones.
YAML all the things.