Guusto Reports API
Pull paginated recognition activity for teams (sender, receiver, status, reason, timestamps) and manager-insight data on when team members were last recognized by their managers. The manager-insight resource is rate limited.
Pull paginated recognition activity for teams (sender, receiver, status, reason, timestamps) and manager-insight data on when team members were last recognized by their managers. The manager-insight resource is rate limited.
openapi: 3.0.3
info:
title: Guusto Gifts API
description: >-
The Guusto Gifts API lets you programmatically send digital gifts, track
order status, retrieve reward budgets, and pull recognition activity and
manager-insight reports from the Guusto employee recognition and rewards
platform. API access is available on the Guusto Premium plan. All requests
are authenticated with a Bearer API token and an X-Workspace-id header. This
document models Guusto's publicly documented REST surface
(docs.guusto.com); request and response schemas are summarized from the
published API reference and may not capture every field.
version: '1.0'
contact:
name: Guusto
url: https://guusto.com
termsOfService: https://guusto.com/terms
servers:
- url: https://api.guusto.com/api/v1
description: Production
- url: https://api-demo.guusto.io/api/v1
description: Demo / Test
security:
- bearerAuth: []
tags:
- name: Order Gift
description: Order digital gifts and track order status.
- name: Account Budget
description: Retrieve available reward budget balances.
- name: Reports
description: Recognition activity and manager-insight reports.
paths:
/orders:
post:
tags:
- Order Gift
summary: Order gifts
description: >-
Submit an order of one to twenty gift items. Each item carries a
message, an amount, and a recipient identified by email or employee
number (email takes precedence when both are present).
operationId: createOrder
parameters:
- $ref: '#/components/parameters/WorkspaceId'
- $ref: '#/components/parameters/CustomerRequestId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/OrderRequest'
responses:
'201':
description: Order accepted.
content:
application/json:
schema:
$ref: '#/components/schemas/OrderResponse'
'400':
description: Invalid request.
'401':
description: Missing or invalid authentication.
/orders/status/{requestId}:
get:
tags:
- Order Gift
summary: Get order status
description: Retrieve the processing status of a previously submitted order.
operationId: getOrderStatus
parameters:
- $ref: '#/components/parameters/WorkspaceId'
- name: requestId
in: path
required: true
description: The order tracking ID returned when the order was created.
schema:
type: string
responses:
'200':
description: Order status.
content:
application/json:
schema:
$ref: '#/components/schemas/OrderResponse'
'404':
description: Order not found.
/orders/{requestId}:
get:
tags:
- Order Gift
summary: Get order
description: Retrieve the full details of a previously submitted order.
operationId: getOrder
parameters:
- $ref: '#/components/parameters/WorkspaceId'
- name: requestId
in: path
required: true
description: The order tracking ID returned when the order was created.
schema:
type: string
responses:
'200':
description: Order details.
content:
application/json:
schema:
$ref: '#/components/schemas/OrderResponse'
'404':
description: Order not found.
/balances/workspaces/currencies/{currency}:
get:
tags:
- Account Budget
summary: Get workspace budget
description: Retrieve the available reward budget balance for the workspace.
operationId: getWorkspaceBudget
parameters:
- $ref: '#/components/parameters/WorkspaceId'
- $ref: '#/components/parameters/Currency'
responses:
'200':
description: Available workspace budget.
content:
application/json:
schema:
$ref: '#/components/schemas/Balance'
/balances/members/{employeeNumber}/currencies/{currency}:
get:
tags:
- Account Budget
summary: Get member budget
description: Retrieve the available reward budget balance for a single member.
operationId: getMemberBudget
parameters:
- $ref: '#/components/parameters/WorkspaceId'
- name: employeeNumber
in: path
required: true
description: The member's employee number.
schema:
type: string
- $ref: '#/components/parameters/Currency'
responses:
'200':
description: Available member budget.
content:
application/json:
schema:
$ref: '#/components/schemas/Balance'
/balances/members/currencies/{currency}:
get:
tags:
- Account Budget
summary: Get all member budgets
description: Retrieve paginated available reward budget balances for all members.
operationId: listMemberBudgets
parameters:
- $ref: '#/components/parameters/WorkspaceId'
- $ref: '#/components/parameters/Currency'
- $ref: '#/components/parameters/Page'
- $ref: '#/components/parameters/Size'
responses:
'200':
description: Paginated member budgets.
content:
application/json:
schema:
$ref: '#/components/schemas/MemberBalancePage'
/reports/teams/activity:
get:
tags:
- Reports
summary: Get team activity
description: >-
Retrieve a paginated list of workspace recognition activities including
sender, receiver, status, description, reason, and timestamps.
operationId: getTeamActivity
parameters:
- $ref: '#/components/parameters/WorkspaceId'
- $ref: '#/components/parameters/Page'
- $ref: '#/components/parameters/Size'
responses:
'200':
description: Paginated activity list.
content:
application/json:
schema:
$ref: '#/components/schemas/Page'
/reports/members/last-recognized:
get:
tags:
- Reports
summary: Get last recognized by manager
description: >-
Retrieve a paginated list of team members with the last time they were
recognized by their managers. This manager-insight resource is rate
limited.
operationId: getLastRecognized
parameters:
- $ref: '#/components/parameters/WorkspaceId'
- $ref: '#/components/parameters/Page'
- $ref: '#/components/parameters/Size'
responses:
'200':
description: Paginated last-recognized list.
content:
application/json:
schema:
$ref: '#/components/schemas/Page'
'429':
description: Request limit reached for the manager-insight resource.
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: Bearer API token issued from the Guusto workspace (Premium plan).
parameters:
WorkspaceId:
name: X-Workspace-id
in: header
required: true
description: The workspace the request is scoped to.
schema:
type: string
CustomerRequestId:
name: X-Customer-Request-Id
in: header
required: false
description: Optional idempotency / correlation identifier supplied by the caller.
schema:
type: string
Currency:
name: currency
in: path
required: true
description: ISO currency code supported by Guusto.
schema:
type: string
enum:
- CAD
- USD
Page:
name: page
in: query
required: false
description: Zero-based page index.
schema:
type: integer
default: 0
Size:
name: size
in: query
required: false
description: Page size.
schema:
type: integer
default: 20
schemas:
OrderRequest:
type: object
required:
- orderItems
- currency
properties:
orderItems:
type: array
minItems: 1
maxItems: 20
items:
$ref: '#/components/schemas/OrderItem'
currency:
type: string
enum:
- CAD
- USD
language:
type: string
enum:
- ES_MX
- FR_CA
- EN_CA
description: Optional language for the gift experience.
OrderItem:
type: object
required:
- message
- amount
- recipient
properties:
message:
type: string
description: Message shown to the recipient.
amount:
type: number
minimum: 1
maximum: 10000
description: Gift amount.
recipient:
$ref: '#/components/schemas/Recipient'
Recipient:
type: object
description: >-
The gift recipient, identified by employeeNumber or email (email takes
precedence when both are supplied).
properties:
firstName:
type: string
lastName:
type: string
employeeNumber:
type: string
email:
type: string
format: email
OrderResponse:
type: object
properties:
requestId:
type: string
description: Order tracking ID.
requestStatus:
type: string
enum:
- ACCEPTED
- WAITING_PROCESSING
- PROCESSING_IN_PROGRESS
- COMPLETED
- FAILED
orderStep:
type: string
description: Current processing step, e.g. PENDING, PRECHECK_ORDER, COMPLETED.
orderId:
type: integer
customerRequestId:
type: string
Balance:
type: object
properties:
amount:
type: number
description: Available budget amount.
currency:
type: string
enum:
- CAD
- USD
MemberBalancePage:
allOf:
- $ref: '#/components/schemas/Page'
- type: object
properties:
memberBalanceResponses:
type: array
items:
type: object
properties:
amount:
type: number
employeeNumber:
type: string
user:
type: object
Page:
type: object
properties:
page:
type: integer
size:
type: integer
totalElements:
type: integer
totalPages:
type: integer