MonsterOps API Reference
This page documents API v3 GraphQL. V3 exposes teams, rocks, KPIs, issues, to-dos, and news with name-based object fields.
API v3 GraphQL Help
Conventions
Relay-style mutations: all mutations accept one top-level input argument and return a payload object.
Field names are camelCase in GraphQL requests/responses, for example teamId, ownerId, and iconColor.
ID values are prefixed IDs, for example team, rock, to-do, issue, and KPI IDs.
V3 object fields use name for issues, to-dos, and news.
Quick Start
query OrganizationTeams {
organization {
id
name
teams(first: 10) {
nodes {
id
name
}
}
}
}
Read Team Data
query TeamData($teamId: ID!) {
organization {
team(id: $teamId) {
id
name
rocks(first: 10, archived: false) {
nodes {
id
name
status
}
}
kpis(first: 10) {
nodes {
id
name
values {
id
value
forecastValue
valueAt
}
owner {
id
name
}
}
}
issues(first: 10, archived: false) {
nodes {
id
name
completedAt
}
}
todos(first: 10, archived: false) {
nodes {
id
name
dueAt
completedAt
}
}
news(first: 10, archived: false) {
nodes {
id
name
completedAt
}
}
}
}
}
Create A Rock
mutation CreateRock($teamId: ID!, $name: String!) {
createRock(
input: {
teamId: $teamId
rock: {
name: $name
status: "on-track"
}
}
) {
rock {
id
name
status
}
clientMutationId
}
}
Query Entry Point
organization: Get the organization for the current API key.
Organization Fields
team(id: ID!): Find a team by ID.
teams(text: String, skip: Int, first: Int, after: String): List filterable teams.
Team Read Fields
rocks(archived: Boolean, first: Int, after: String): RockConnection!
kpis(first: Int, after: String): KpiConnection!
issues(archived: Boolean, first: Int, after: String): IssueConnection!
todos(archived: Boolean, first: Int, after: String): TodoConnection!
news(archived: Boolean, first: Int, after: String): NewsConnection!
Mutation Index
News Mutations
createNews(input: { teamId: ID!, news: NewsCreateInput!, clientMutationId?: String })
updateNews(input: { teamId: ID!, newsId: ID!, news: NewsUpdateInput!, clientMutationId?: String })
deleteNews(input: { teamId: ID!, newsId: ID!, clientMutationId?: String })
Objective Mutations
createObjective(input: { teamId: ID!, objective: ObjectiveInput!, clientMutationId?: String })
updateObjective(input: { teamId: ID!, objectiveId: ID!, objective: ObjectiveUpdateInput!, clientMutationId?: String })
deleteObjective(input: { teamId: ID!, objectiveId: ID!, clientMutationId?: String })
Rock Mutations
createRock(input: { teamId: ID!, rock: RockInput!, clientMutationId?: String })
updateRock(input: { teamId: ID!, id: ID!, rock: RockUpdateInput!, clientMutationId?: String })
deleteRock(input: { teamId: ID!, id: ID!, clientMutationId?: String })
Todo Mutations
createTodo(input: { teamId: ID!, todo: TodoInput!, clientMutationId?: String })
updateTodo(input: { teamId: ID!, todoId: ID!, todo: TodoUpdateInput!, clientMutationId?: String })
deleteTodo(input: { teamId: ID!, todoId: ID!, clientMutationId?: String })
Issue Mutations
createIssue(input: { teamId: ID!, issue: IssueInput!, clientMutationId?: String })
updateIssue(input: { teamId: ID!, issueId: ID!, issue: IssueUpdateInput!, clientMutationId?: String })
deleteIssue(input: { teamId: ID!, issueId: ID!, clientMutationId?: String })
KPI Mutations
createKpi(input: { teamId: ID!, kpi: KpiInput!, clientMutationId?: String })
updateKpi(input: { teamId: ID!, kpiId: ID!, kpi: KpiUpdateInput!, clientMutationId?: String })
deleteKpi(input: { teamId: ID!, kpiId: ID!, clientMutationId?: String })
setKpiSnooze(input: { teamId: ID!, kpiIds: [ID!]!, snooze: Boolean!, clientMutationId?: String })
Snoozes or unsnoozes one or more KPIs. Returns the updated KPIs.
KPI Value Mutations
createKpiValue(input: { teamId: ID!, kpiId: ID!, kpiValue: KpiValueInput!, clientMutationId?: String })
updateKpiValue(input: { teamId: ID!, kpiId: ID!, kpiValueId: ID!, kpiValue: KpiValueUpdateInput!, clientMutationId?: String })
deleteKpiValue(input: { teamId: ID!, kpiId: ID!, kpiValueId: ID!, clientMutationId?: String })
Input Objects
NewsCreateInput
{ name: String!, description?: String, icon?: String, iconColor?: String, ownerId?: ID, completedAt?: ISO8601DateTime, archived?: Boolean }
NewsUpdateInput
{ name?: String, description?: String, icon?: String, iconColor?: String, ownerId?: ID, completedAt?: ISO8601DateTime, archived?: Boolean }
ObjectiveInput
{ name: String!, description?: String, dueAt?: ISO8601Date, ownerId?: ID, icon?: String, iconColor?: String, completedAt?: ISO8601DateTime, archived?: Boolean }
ObjectiveUpdateInput
{ name?: String, description?: String, dueAt?: ISO8601Date, ownerId?: ID, icon?: String, iconColor?: String, completedAt?: ISO8601DateTime, archived?: Boolean }
RockInput
{ name: String!, description?: String, icon?: String, iconColor?: String, ownerId?: ID, status?: String, dueAt?: ISO8601Date, archived?: Boolean, milestones?: [RockMilestoneInput!] }
RockUpdateInput
{ name?: String, description?: String, icon?: String, iconColor?: String, ownerId?: ID, status?: String, dueAt?: ISO8601Date, archived?: Boolean, milestones?: [RockMilestoneInput!] }
RockMilestoneInput
{ id?: ID, name: String!, description?: String, icon?: String, status?: String, completedBy?: ISO8601Date, position?: Int, ownerId?: ID }
TodoInput
{ name: String!, description?: String, dueAt?: ISO8601DateTime, ownerId?: ID, icon?: String, iconColor?: String, completedAt?: ISO8601DateTime, archived?: Boolean, priority?: Int }
TodoUpdateInput
{ name?: String, description?: String, dueAt?: ISO8601DateTime, ownerId?: ID, icon?: String, iconColor?: String, completedAt?: ISO8601DateTime, archived?: Boolean, priority?: Int }
IssueInput
{ name: String!, description?: String, priority?: Int, ownerId?: ID, icon?: String, iconColor?: String, timeframe?: String, completedAt?: ISO8601DateTime, archived?: Boolean }
IssueUpdateInput
{ name?: String, description?: String, priority?: Int, ownerId?: ID, icon?: String, iconColor?: String, timeframe?: String, completedAt?: ISO8601DateTime, archived?: Boolean }
KpiInput
{ name: String!, description?: String, icon?: String, targetUnit?: String, targetFormula?: String, targetValue1?: String, targetValue2?: String, targetCurrency?: String, ownerId?: ID, supportWeekly?: Boolean, supportMonthly?: Boolean, supportQuarterly?: Boolean, supportYearly?: Boolean, interpolation?: String }
KpiUpdateInput
{ name?: String, description?: String, icon?: String, targetUnit?: String, targetFormula?: String, targetValue1?: String, targetValue2?: String, targetCurrency?: String, ownerId?: ID, supportWeekly?: Boolean, supportMonthly?: Boolean, supportQuarterly?: Boolean, supportYearly?: Boolean, interpolation?: String }
KpiValueInput
{ valueAt: ISO8601Date!, value?: Float, forecastValue?: Float }
KpiValueUpdateInput
{ valueAt?: ISO8601Date, value?: Float, forecastValue?: Float }
Output Objects
Organization
{ id: ID!, name: String!, team(id: ID!): Team, teams(text?: String, skip?: Int, first?: Int, after?: String): TeamConnection }
Team
{ id: ID!, name: String!, rocks(...): RockConnection!, kpis(...): KpiConnection!, issues(...): IssueConnection!, todos(...): TodoConnection!, news(...): NewsConnection! }
Rock
{ id: ID!, name: String!, description: String, status: String, icon: String, iconColor: String, dueAt: ISO8601Date, archivedAt: ISO8601DateTime, owner: User, milestones: [Milestone!]! }
Milestone
{ id: ID!, name: String!, description: String, status: String, icon: String, completedBy: ISO8601Date, completedAt: ISO8601DateTime, owner: User }
Issue
{ id: ID!, name: String!, description: String, priority: Int, icon: String, iconColor: String, completedAt: ISO8601DateTime, archivedAt: ISO8601DateTime, owner: User }
Todo
{ id: ID!, name: String!, description: String, icon: String, iconColor: String, dueAt: ISO8601DateTime, completedAt: ISO8601DateTime, archivedAt: ISO8601DateTime, owner: User }
News
{ id: ID!, name: String, description: String, icon: String, iconColor: String, completedAt: ISO8601DateTime, archivedAt: ISO8601DateTime, owner: User }
Kpi
{ id: ID!, name: String!, description: String, icon: String, iconColor: String, owner: User, values: [KpiValue!]! }
Objective
{ id: ID!, name: String!, description: String, icon: String, iconColor: String, dueAt: ISO8601Date, completedAt: ISO8601DateTime, archivedAt: ISO8601DateTime, owner: User }
KpiValue
{ id: ID!, value: Float, forecastValue: Float, valueAt: ISO8601Date! }
User
{ id: ID!, name: String!, email: String }