Goody Order Activities API
The Order Activities API from Goody — 1 operation(s) for order activities.
The Order Activities API from Goody — 1 operation(s) for order activities.
openapi: 3.0.1
info:
title: Goody Brands Order Activities API
version: 1.0.0
contact:
name: Goody Support
email: support@ongoody.com
servers:
- url: https://api.ongoody.com
description: Production
- url: https://api.sandbox.ongoody.com
description: Sandbox
tags:
- name: Order Activities
paths:
/v1/order_activities:
get:
summary: List order activities
tags:
- Order Activities
security:
- bearer: []
parameters:
- name: page
in: query
schema:
type: integer
default: 1
minimum: 1
description: Page for pagination, starting at 1
required: false
- name: per_page
in: query
schema:
type: integer
default: 20
minimum: 1
maximum: 100
description: Items per page for pagination
required: false
- name: after
in: query
schema:
type: string
format: date-time
description: ISO 8601
nullable: true
description: Filter activities created at or after this timestamp (ISO 8601)
required: false
- name: before
in: query
schema:
type: string
format: date-time
description: ISO 8601
nullable: true
description: Filter activities created at or before this timestamp (ISO 8601)
required: false
- name: statuses
in: query
schema:
type: string
nullable: true
description: Comma-separated list of statuses to filter by (e.g. "created,opened,shipped")
required: false
responses:
'200':
description: Order activities retrieved
content:
application/json:
examples:
Order activities retrieved:
value:
data:
- id: 2f7fda94-5e06-42a4-b856-010a83afe76d
order_status: opened
created_at: '2026-06-03T12:24:10Z'
order:
id: e3d4235a-9367-4bff-a0dd-a9339784cac2
status: opened
individual_gift_link: https://gifts.ongoody.com/gift/MAWESE8CCGYUEHZBDNFNH8V8
recipient_first_name: Recipient
recipient_last_name: Smith
recipient_email: null
card_id: ffdb7f07-1d78-4e0c-ac3d-580394c9eea6
message: Test Message
thank_you_note: null
view_count_recipient: 0
is_swapped: false
order_batch_id: 93b36a7e-2de8-495c-8192-fc45be4c970e
expires_at: null
cart:
id: 1d2b284b-9a88-4ea1-8b0b-1ca983d214c9
items:
- id: 9acd31ae-a9bd-43e4-9b7d-dd6ace754184
quantity: 1
product:
id: b55b1c75-d69a-42fd-a1d3-aaa881db000d
name: Cookies
brand:
id: c710da1e-18d0-46b2-93c1-7b91f93603c5
name: Cookie Company
shipments: []
amounts:
amount_product: 0
amount_shipping: 0
amount_processing_fee: 0
amount_pre_tax_total: 0
amount_tax: null
amount_total: null
amount_global_relay_cost: null
sender:
first_name: Test
last_name: User
email: 15554158553@test.ongoody.com
workspace_id: 7fb09027-7350-46bc-954a-ee9c2b4f5126
workspace_name: Test Team
original_cart: null
original_amounts: null
reference_id: DRKRUKB5XGWRB7VRKNZBWN5Q
payment_link: null
- id: 542c1b8b-2819-44fd-a79b-a5e07018a7a8
order_status: created
created_at: '2026-06-03T12:24:10Z'
order:
id: e3d4235a-9367-4bff-a0dd-a9339784cac2
status: opened
individual_gift_link: https://gifts.ongoody.com/gift/MAWESE8CCGYUEHZBDNFNH8V8
recipient_first_name: Recipient
recipient_last_name: Smith
recipient_email: null
card_id: ffdb7f07-1d78-4e0c-ac3d-580394c9eea6
message: Test Message
thank_you_note: null
view_count_recipient: 0
is_swapped: false
order_batch_id: 93b36a7e-2de8-495c-8192-fc45be4c970e
expires_at: null
cart:
id: 1d2b284b-9a88-4ea1-8b0b-1ca983d214c9
items:
- id: 9acd31ae-a9bd-43e4-9b7d-dd6ace754184
quantity: 1
product:
id: b55b1c75-d69a-42fd-a1d3-aaa881db000d
name: Cookies
brand:
id: c710da1e-18d0-46b2-93c1-7b91f93603c5
name: Cookie Company
shipments: []
amounts:
amount_product: 0
amount_shipping: 0
amount_processing_fee: 0
amount_pre_tax_total: 0
amount_tax: null
amount_total: null
amount_global_relay_cost: null
sender:
first_name: Test
last_name: User
email: 15554158553@test.ongoody.com
workspace_id: 7fb09027-7350-46bc-954a-ee9c2b4f5126
workspace_name: Test Team
original_cart: null
original_amounts: null
reference_id: DRKRUKB5XGWRB7VRKNZBWN5Q
payment_link: null
list_meta:
total_count: 2
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/OrderActivity'
list_meta:
$ref: '#/components/schemas/ListMeta'
components:
schemas:
Order:
type: object
description: An individual order contains the gift link to be sent to the recipient (if applicable) and other information about the order.
properties:
id:
type: string
format: uuid
recipient_first_name:
type: string
recipient_last_name:
type: string
nullable: true
recipient_email:
type: string
nullable: true
status:
$ref: '#/components/schemas/OrderStatus'
individual_gift_link:
type: string
description: This gift link can be sent to the recipient or shared with the sender. For privacy reasons, this gift link does not display tracking information. A separate link, the recipient link, is sent directly to the recipient after they accept their gift, which does contain tracking information.
cart:
$ref: '#/components/schemas/Cart'
description: The cart currently on this order. If the order is a gift that was swapped, `cart` displays the most recent products selected (i.e. post-swap).
cart_selections:
type: array
items:
$ref: '#/components/schemas/CartSelection'
description: Product variant selections for each cart product. Only for commerce app orders.
nullable: true
shipments:
type: array
items:
$ref: '#/components/schemas/Shipment'
description: A list of the shipments for the order.
workspace_id:
type: string
format: uuid
nullable: true
description: Organizations are sub-divided into workspaces. Orders are contained in workspaces, identified by this ID.
workspace_name:
type: string
nullable: true
expires_at:
type: string
format: date-time
description: For gifts, the date and time the gift is set to expire.
nullable: true
card_id:
type: string
format: uuid
nullable: true
description: The digital greeting card on this gift.
message:
type: string
nullable: true
description: The message in this gift, provided by the sender.
thank_you_note:
type: string
nullable: true
description: A thank you note sent by the recipient.
view_count_recipient:
type: integer
description: The number of times the recipient viewed the gift.
is_swapped:
type: boolean
description: If this gift was swapped by the recipient. Swapping allows a recipient to select another product or products, which replaces the `cart`. The original products are saved to `original_cart`.
order_batch_id:
type: string
format: uuid
description: On Goody for Business, all orders are attached to a order batch, which is a collection of one or more orders.
amounts:
type: object
description: Costs in USD cents (i.e. $1.00 = 100). If the order was swapped, `amounts` displays the most recent amounts (i.e. post-swap).
properties:
amount_product:
type: integer
description: Total cost of the products in this order.
amount_shipping:
type: integer
description: Total cost of shipping for this order.
amount_processing_fee:
type: integer
nullable: true
description: Total cost of processing fees for this order.
amount_credit_applied:
type: integer
nullable: true
description: Total amount of credit applied to this order.
amount_pre_tax_total:
type: integer
description: Total cost of the products, shipping, and processing fees in this order.
amount_tax:
type: integer
nullable: true
description: Total tax for this order.
amount_total:
type: integer
nullable: true
description: Total cost of the products, shipping, processing fees, tax, and global shipping costs in this order.
amount_global_relay_cost:
type: integer
nullable: true
description: Total cost of global shipping for this order through the Global Relay service.
required:
- amount_product
- amount_shipping
- amount_pre_tax_total
event_times:
type: object
description: Only provided when calling the /orders/:id endpoint.
properties:
created_at:
type: string
format: date-time
description: ISO 8601
notified_at:
type: string
format: date-time
description: When the recipient was notified of the order.
nullable: true
opened_at:
type: string
format: date-time
description: For gifts, when the recipient opened the order.
nullable: true
accepted_at:
type: string
format: date-time
description: For gifts, when the recipient accepted the order.
nullable: true
pending_payment_at:
type: string
format: date-time
description: When the order entered pending payment status.
nullable: true
paid_at:
type: string
format: date-time
description: When the order was paid for.
nullable: true
shipped_at:
type: string
format: date-time
description: When the order was first shipped. If there are multiple shipments, this is when the first shipment shipped.
nullable: true
delivered_at:
type: string
format: date-time
description: When the order was delivered. If there are multiple shipments, this is when all shipments were delivered.
nullable: true
required:
- created_at
nullable: true
original_cart:
$ref: '#/components/schemas/Cart'
description: If this order is a gift that was swapped, this displays the original cart that was sent to the recipient.
nullable: true
original_amounts:
type: object
description: If this order is a gift that was swapped, this displays the original amounts of the cart that was sent to the recipient.
properties:
original_amount_product:
type: integer
nullable: true
original_amount_shipping:
type: integer
nullable: true
original_amount_credit_applied:
type: integer
nullable: true
original_amount_pre_tax_total:
type: integer
nullable: true
nullable: true
sender:
$ref: '#/components/schemas/Sender'
description: The Goody user who sent this order.
payment_link:
type: string
nullable: true
description: For commerce apps using Hosted Payment, the payment link for the gift with the credit card entry form. Available when the gift is in `pending_payment` status (after it has been accepted).
reference_id:
type: string
description: The reference ID displayed on receipts and other locations as the ID for this order.
required:
- id
- recipient_first_name
- status
- individual_gift_link
- cart
- shipments
- amounts
- sender
- reference_id
OrderActivityStatus:
type: string
enum:
- created
- opened
- pending_payment
- paid
- ordered
- shipped
- delivered
- failed
- pending_user_approval
description: The status of the order activity event. Mapped from internal statuses using the same logic as order status.
Shipment:
type: object
properties:
id:
type: string
format: uuid
status:
type: string
enum:
- pending
- tracking
- shipped
- delivered
- delivered_override
- failed
- failed_unset_tracking
- failed_with_reship
brand_name:
type: string
description: The name of the brand that this shipment is from.
tracking_carrier:
type: string
nullable: true
description: The carrier for this shipment, e.g. UPS.
tracking_number:
type: string
nullable: true
description: Only for approved distribution partners.
tracking_url:
type: string
nullable: true
description: Only for approved distribution partners.
shipped_at:
type: string
format: date-time
description: ISO 8601
nullable: true
delivered_at:
type: string
format: date-time
description: ISO 8601
nullable: true
delivery_eta:
type: string
format: date-time
description: The estimated delivery time of this shipment.
nullable: true
required:
- id
- status
- brand_name
OrderStatus:
type: string
enum:
- created
- notified
- opened
- accepted
- pending_payment
- paid
- ordered
- shipped
- delivered
- failed
- canceled
Sender:
type: object
properties:
first_name:
type: string
last_name:
type: string
email:
type: string
required:
- first_name
- last_name
- email
OrderActivity:
type: object
description: An order activity represents a status change event for an order.
properties:
id:
type: string
format: uuid
order_status:
$ref: '#/components/schemas/OrderActivityStatus'
description: The status that the order transitioned to.
created_at:
type: string
format: date-time
description: When this activity occurred.
order:
$ref: '#/components/schemas/Order'
description: The current state of the order.
required:
- id
- order_status
- created_at
- order
ListMeta:
type: object
properties:
total_count:
type: integer
description: The total number of items in this list.
Cart:
type: object
properties:
id:
type: string
format: uuid
items:
type: array
items:
$ref: '#/components/schemas/CartItem'
CartItem:
type: object
properties:
id:
type: string
format: uuid
product:
type: object
properties:
id:
type: string
format: uuid
name:
type: string
brand:
type: object
description: The brand that this product is from.
properties:
id:
type: string
format: uuid
name:
type: string
required:
- id
- name
required:
- id
- name
- brand
quantity:
type: integer
required:
- id
- product
- quantity
CartSelection:
type: object
description: Product variant selections for a specific gift cart product.
properties:
id:
type: string
format: uuid
cart_item_id:
type: string
format: uuid
description: The cart item ID this selection belongs to. Match this with cart.items[].id.
quantity_index:
type: integer
description: The index of this selection within multiple quantities of the same product. If a given cart product has multiple quantities, this will be 0 for the first unit, 1 for the second unit, etc.
variants:
type: array
items:
type: string
description: The selected variants for this product selection and quantity index.
required:
- id
- cart_item_id
- quantity_index
- variants
securitySchemes:
bearer:
type: http
scheme: bearer
description: Your Goody API key.