Only one of these is something your integration creates. Everything else is either configured in Katilyst beforehand or happens as a consequence.
Project
A single program, or a track within one. “Developer Champions” and “Security Awareness Champions” might be separate Projects in the same account. Projects are how you segment participants by focus area or maturity. Every action you log lands in a Project and is evaluated against that Project’s configuration.User
The people whose contributions you care about: Security Champions, program managers, stakeholders, and optionally other developers you want to benchmark against. In API payloads a User is identified by email address. Most GET endpoints address them byuserId instead, which you can look up with List a project’s users.
Attribute
A configurable data element representing progress, status, or relationship. Katilyst supports three types:
Attributes are never set directly through the API. They change as a consequence of actions you log.
Available Action
An activity your team has configured that a User can complete — “Resolve a vulnerability in JIRA,” “Complete secure code training.” Each one carries its own business logic: which Attribute it changes, by how much, under what conditions, and how often it can be claimed. Available Actions come in two kinds, and the distinction decides which endpoint you call.Instance
Awards its Attribute change every time it is logged. Closing a vulnerability ticket is an instance action.Logged with
POST /v1/logged-actions.State
Switched on or off for a User, holding its credit until switched off. Annual training completion is a state action — enable it when they finish, disable it when the certification lapses.Driven with
PUT .../action-states.Logged Action
What an Available Action becomes once it has been registered for a specific User. The Logged Action carries the outcome: which Attribute changed, by what operator and amount, the resulting value, and the status Katilyst assigned. This is the object you read back when you want to know what actually happened to an event you sent.Reward
The outcome of an eligible action — points awarded, a badge earned, a level advanced. Rewards are defined in your Project configuration rather than in your API call.Guardrails and limits
The rules controlling when and how often an action can be rewarded: admin approval requirements, time-based expiration, conditional availability, and maximum frequency. Actions logged through the API are treated as admin-driven, which changes which of these apply to your integration.
Reading actions back, you may still see a
status of LIMIT_EXCEEDED_TIMEFRAME. Those are actions people submitted inside the platform, where frequency limits do apply. They did not come from your integration.
