Evoke Public API (v1)

Download OpenAPI specification:

License: Proprietary

Authorization for API key requests is evaluated against the API key owner's role permissions in the API key organization. Global admin privileges do not bypass organization-scoped authorization in this API surface.

Objectives

List objectives

Authorizations:
bearerAuth
query Parameters
start
required
string <date>
end
required
string <date>
page[page]
required
integer >= 0

Zero-based page number.

page[limit]
required
integer [ 1 .. 500 ]

Number of records per page. Maximum 500.

Responses

Response samples

Content type
application/json
{
  • "entity": "objectives",
  • "results": [
    ],
  • "metadata": {
    }
}

Create objective

Authorizations:
bearerAuth
Request Body schema: application/json
required
required
object (ObjectiveCreateAttributes)

Responses

Request samples

Content type
application/json
{
  • "objective": {
    }
}

Response samples

Content type
application/json
{
  • "entity": "objectives",
  • "results": {
    }
}

Get objective

Authorizations:
bearerAuth
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "entity": "objectives",
  • "results": {
    }
}

Update objective

Authorizations:
bearerAuth
path Parameters
id
required
integer
Request Body schema: application/json
required
required
object (ObjectiveAttributes)

Responses

Request samples

Content type
application/json
{
  • "objective": {
    }
}

Response samples

Content type
application/json
{
  • "entity": "objectives",
  • "results": {
    }
}

Delete objective

Authorizations:
bearerAuth
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "entity": "string",
  • "results": {
    }
}

Metrics

List metrics

Authorizations:
bearerAuth
query Parameters
start
required
string <date>
end
required
string <date>
page[page]
required
integer >= 0

Zero-based page number.

page[limit]
required
integer [ 1 .. 500 ]

Number of records per page. Maximum 500.

Responses

Response samples

Content type
application/json
{
  • "entity": "metrics",
  • "results": [
    ],
  • "metadata": {
    }
}

Create metric

Authorizations:
bearerAuth
Request Body schema: application/json
required
owner_id
integer
required
object (MetricCreateAttributes)

Responses

Request samples

Content type
application/json
{
  • "owner_id": 0,
  • "metric": {
    }
}

Response samples

Content type
application/json
{
  • "entity": "metrics",
  • "results": {
    }
}

Get metric

Authorizations:
bearerAuth
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "entity": "metrics",
  • "results": {
    }
}

Update metric

Authorizations:
bearerAuth
path Parameters
id
required
integer
Request Body schema: application/json
required
required
object (MetricAttributes)

Responses

Request samples

Content type
application/json
{
  • "metric": {
    }
}

Response samples

Content type
application/json
{
  • "entity": "metrics",
  • "results": {
    }
}

Delete metric

Authorizations:
bearerAuth
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "entity": "string",
  • "results": {
    }
}

Goals

List goals

Authorizations:
bearerAuth
query Parameters
start
required
string <date>
end
required
string <date>
page[page]
required
integer >= 0

Zero-based page number.

page[limit]
required
integer [ 1 .. 500 ]

Number of records per page. Maximum 500.

Responses

Response samples

Content type
application/json
{
  • "entity": "goals",
  • "results": [
    ],
  • "metadata": {
    }
}

Create goal

Authorizations:
bearerAuth
Request Body schema: application/json
required
required
object (GoalCreateAttributes)

Responses

Request samples

Content type
application/json
{
  • "goal": {
    }
}

Response samples

Content type
application/json
{
  • "entity": "goals",
  • "results": {
    }
}

Get goal

Authorizations:
bearerAuth
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "entity": "goals",
  • "results": {
    }
}

Update goal

Authorizations:
bearerAuth
path Parameters
id
required
integer
Request Body schema: application/json
required
required
object (GoalAttributes)

Responses

Request samples

Content type
application/json
{
  • "goal": {
    }
}

Response samples

Content type
application/json
{
  • "entity": "goals",
  • "results": {
    }
}

Delete goal

Authorizations:
bearerAuth
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "entity": "string",
  • "results": {
    }
}

Comments

List comments

Authorizations:
bearerAuth
query Parameters
commentable_type
required
string
Enum: "objective" "metric" "plan" "tactic" "insight_rule"
commentable_id
required
integer
page[page]
required
integer >= 0

Zero-based page number.

page[limit]
required
integer [ 1 .. 500 ]

Number of records per page. Maximum 500.

sort[field]
string

Field name to sort comments by.

sort[direction]
string
Enum: "asc" "desc"

Sort direction.

Responses

Response samples

Content type
application/json
{
  • "entity": "comments",
  • "results": [
    ],
  • "metadata": {
    }
}

Create comment

Authorizations:
bearerAuth
Request Body schema: application/json
required
required
object

Exactly one target reference must be present in the payload. Provide one and only one of objective_id, metric_id, plan_id, tactic_id, insight_rule_id, or parent_id. This constraint is enforced by server validation.

Responses

Request samples

Content type
application/json
{
  • "comment": {
    }
}

Response samples

Content type
application/json
{
  • "entity": "comments",
  • "results": {
    }
}

Get comment

Authorizations:
bearerAuth
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "entity": "comments",
  • "results": {
    }
}

Update comment

Authorizations:
bearerAuth
path Parameters
id
required
integer
Request Body schema: application/json
required
required
object

Responses

Request samples

Content type
application/json
{
  • "comment": {
    }
}

Response samples

Content type
application/json
{
  • "entity": "comments",
  • "results": {
    }
}

Delete comment

Authorizations:
bearerAuth
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "entity": "string",
  • "results": {
    }
}

Themes

List themes

Authorizations:
bearerAuth
query Parameters
page[page]
required
integer >= 0

Zero-based page number.

page[limit]
required
integer [ 1 .. 500 ]

Number of records per page. Maximum 500.

Responses

Response samples

Content type
application/json
{
  • "entity": "themes",
  • "results": [
    ],
  • "metadata": {
    }
}

Create theme

Authorizations:
bearerAuth
Request Body schema: application/json
required
required
object
plan_id
integer or null

Optional plan ID to link this theme to a plan

Responses

Request samples

Content type
application/json
{
  • "theme": {
    },
  • "plan_id": 0
}

Response samples

Content type
application/json
{
  • "entity": "themes",
  • "results": {
    }
}

Get theme

Authorizations:
bearerAuth
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "entity": "themes",
  • "results": {
    }
}

Update theme

Authorizations:
bearerAuth
path Parameters
id
required
integer
Request Body schema: application/json
required
required
object

Responses

Request samples

Content type
application/json
{
  • "theme": {
    }
}

Response samples

Content type
application/json
{
  • "entity": "themes",
  • "results": {
    }
}

Delete theme

Authorizations:
bearerAuth
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "entity": "string",
  • "results": {
    }
}

Tactics

List tactics

Authorizations:
bearerAuth
query Parameters
start
required
string <date>
end
required
string <date>
page[page]
required
integer >= 0

Zero-based page number.

page[limit]
required
integer [ 1 .. 500 ]

Number of records per page. Maximum 500.

Responses

Response samples

Content type
application/json
{
  • "entity": "tactics",
  • "results": [
    ],
  • "metadata": {
    }
}

Create tactic

Authorizations:
bearerAuth
Request Body schema: application/json
required
owner_id
integer
required
object (TacticCreateAttributes)

Responses

Request samples

Content type
application/json
{
  • "owner_id": 0,
  • "tactic": {
    }
}

Response samples

Content type
application/json
{
  • "entity": "tactics",
  • "results": {
    }
}

Get tactic

Authorizations:
bearerAuth
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "entity": "tactics",
  • "results": {
    }
}

Update tactic

Authorizations:
bearerAuth
path Parameters
id
required
integer
Request Body schema: application/json
required
required
object (TacticAttributes)

Responses

Request samples

Content type
application/json
{
  • "tactic": {
    }
}

Response samples

Content type
application/json
{
  • "entity": "tactics",
  • "results": {
    }
}

Delete tactic

Authorizations:
bearerAuth
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "entity": "string",
  • "results": {
    }
}

Groups

List groups

Authorizations:
bearerAuth
query Parameters
page[page]
required
integer >= 0

Zero-based page number.

page[limit]
required
integer [ 1 .. 500 ]

Number of records per page. Maximum 500.

Responses

Response samples

Content type
application/json
{
  • "entity": "groups",
  • "results": [
    ],
  • "metadata": {
    }
}

Create group

Authorizations:
bearerAuth
Request Body schema: application/json
required
required
object

Responses

Request samples

Content type
application/json
{
  • "group": {
    }
}

Response samples

Content type
application/json
{
  • "entity": "groups",
  • "results": {
    }
}

Get group

Authorizations:
bearerAuth
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "entity": "groups",
  • "results": {
    }
}

Update group

Authorizations:
bearerAuth
path Parameters
id
required
integer
Request Body schema: application/json
required
required
object

Responses

Request samples

Content type
application/json
{
  • "group": {
    }
}

Response samples

Content type
application/json
{
  • "entity": "groups",
  • "results": {
    }
}

Delete group

Authorizations:
bearerAuth
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "entity": "string",
  • "results": {
    }
}

SavedViews

List saved views

Authorizations:
bearerAuth
query Parameters
page[page]
required
integer >= 0

Zero-based page number.

page[limit]
required
integer [ 1 .. 500 ]

Number of records per page. Maximum 500.

sort[field]
string
Example: sort[field]=created_at

Field to sort by (e.g. name, created_at, resource)

sort[direction]
string
Enum: "asc" "desc"
Example: sort[direction]=desc

Sort direction

filter[resource]
string

Filter by resource type (e.g. objectives, metrics, tactics)

filter[is_public]
boolean

Filter by visibility

filter[name]
string

Filter by name (case-insensitive partial match)

Responses

Response samples

Content type
application/json
{
  • "entity": "saved_views",
  • "results": [
    ],
  • "metadata": {
    }
}

Create saved view

Authorizations:
bearerAuth
Request Body schema: application/json
required
required
object

Responses

Request samples

Content type
application/json
{
  • "saved_view": {
    }
}

Response samples

Content type
application/json
{
  • "entity": "saved_views",
  • "results": {
    }
}

Get saved view

Authorizations:
bearerAuth
path Parameters
id
required
integer
query Parameters
include[]
string
Value: "resource"

Expand related resources; use include[]=resource to return resourceIds

Responses

Response samples

Content type
application/json
{
  • "entity": "saved_views",
  • "results": {
    }
}

Update saved view

Authorizations:
bearerAuth
path Parameters
id
required
integer
Request Body schema: application/json
required
required
object

Responses

Request samples

Content type
application/json
{
  • "saved_view": {
    }
}

Response samples

Content type
application/json
{
  • "entity": "saved_views",
  • "results": {
    }
}

Delete saved view

Authorizations:
bearerAuth
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "entity": "string",
  • "results": {
    }
}

Users

List users

Authorizations:
bearerAuth
query Parameters
page[page]
required
integer >= 0

Zero-based page number.

page[limit]
required
integer [ 1 .. 500 ]

Number of records per page. Maximum 500.

Responses

Response samples

Content type
application/json
{
  • "entity": "users",
  • "results": [
    ],
  • "metadata": {
    }
}

Create user

Authorizations:
bearerAuth
Request Body schema: application/json
required
required
object

Responses

Request samples

Content type
application/json
{
  • "user": {
    }
}

Response samples

Content type
application/json
{
  • "entity": "users",
  • "results": {
    }
}

Get user

Authorizations:
bearerAuth
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "entity": "users",
  • "results": {
    }
}

Update user

Authorizations:
bearerAuth
path Parameters
id
required
integer
Request Body schema: application/json
required
required
object (UserAttributes)

Responses

Request samples

Content type
application/json
{
  • "user": {
    }
}

Response samples

Content type
application/json
{
  • "entity": "users",
  • "results": {
    }
}

Delete user

Authorizations:
bearerAuth
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "entity": "string",
  • "results": {
    }
}

Reports

Download report PDF

Authorizations:
bearerAuth
path Parameters
id
required
integer

Responses

Response samples

Content type
application/json
{
  • "message": "Unauthorized"
}