Skip to content

Workspace audit log

GET
/v1/workspaces/{workspaceId}/audit
curl --request GET \
--url 'https://shareout.site/v1/workspaces/example/audit?limit=100' \
--header 'Authorization: Bearer <token>'

Owner/admin. Newest first. No offset/cursor — only the most recent limit entries.

workspaceId
required
string

Workspace ID or slug.

limit
integer
default: 100 >= 1 <= 500

Entries

Media typeapplication/json
object
entries
Array<object>
object
id
string
ts
string format: date-time
actor_id
string | null
actor_email
string | null
action
string
target_type
string | null
target_id
string | null
detail

Parsed JSON detail, or null.

Examplegenerated
{
"entries": [
{
"id": "example",
"ts": "2026-04-15T12:00:00Z",
"actor_id": "example",
"actor_email": "example",
"action": "example",
"target_type": "example",
"target_id": "example",
"detail": "example"
}
]
}

Access denied

Media typeapplication/json
object
success
required
boolean
error
required

Human-readable message.

string
code
required

Machine-readable error code.

string
request_id

Correlation id (also the X-Request-Id header). Quote it in support tickets.

string
reason

Finer cause under code. For UNAUTHORIZED: missing, invalid, revoked or expired.

string
hint

What to do next, in plain words.

string
suggestion
string
param

The request field at fault.

string
docs

Doc page for this error.

string
redirect_url
string
support

Present on 5xx — how to reach a human.

object
how
string
include
Array<string>
Example
{
"success": false,
"support": {
"how": "POST /v1/support/tickets",
"include": [
"request_id"
]
}
}