Skip to content

Use the Audit API

You can use the Audit API to get fine-grained information about the changes made to any model, usage, user sign-ins, most frequently visited pages and much more. The Audit API exposes most the logs collected by Anaplan.

For API details refer to the Documentation.

Usage

Tenant Level API

Note the absence of workspace_id and model_id in the Audit API. The Audit API is a tenant level API, meaning it is not scoped to a specific workspace or model. You can use the Audit API to get information about all workspaces and models for the default tenant of the user you are providing the credentials for.

The methods for the Audit API reside in a different namespace for better API navigability and comprehensiveness, but are accessible through the same client for convenience. For e.g., you can call the .get_events() method like so:

import anaplan_sdk

anaplan = anaplan_sdk.Client(
    certificate="~/certs/anaplan.pem", private_key="~/keys/anaplan.pem"
)
events = anaplan.audit.get_events()
import anaplan_sdk

anaplan = anaplan_sdk.AsyncClient(
    certificate="~/certs/anaplan.pem", private_key="~/keys/anaplan.pem"
)
events = await anaplan.audit.get_events()

The Audit API also exposes the list_users() method to get a list of all users in the workspace. You can for e.g. use the two methods in combination to get a list of events with the username using polars:

import polars as pl

events, users = anaplan.audit.get_events(14), anaplan.audit.list_users()
df = pl.DataFrame(events, orient="row", infer_schema_length=1_000).join(
    pl.DataFrame(users, orient="row").select(
        pl.col("id").alias("userId"), "first_name", "last_name"
    ),
    on="userId",
    how="left",
)
import polars as pl

events, users = await gather(
    anaplan.audit.get_events(14), anaplan.audit.list_users()
)
df = pl.DataFrame(events, orient="row", infer_schema_length=1_000).join(
    pl.DataFrame(users, orient="row").select(
        pl.col("id").alias("userId"), "first_name", "last_name"
    ),
    on="userId",
    how="left",
)