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.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/goody:goody-order-activities-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Goody 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
- 'null'
format: date-time
description: ISO 8601
description: Filter activities created at or after this timestamp (ISO 8601)
required: false
- name: before
in: query
schema:
type:
- string
- 'null'
format: date-time
description: ISO 8601
description: Filter activities created at or before this timestamp (ISO 8601)
required: false
- name: statuses
in: query
schema:
type:
- string
- 'null'
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: 8e78abef-249a-495e-8ddf-0843fe96627a
order_status: opened
created_at: '2026-07-28T20:20:13Z'
order:
id: eacd383b-aa90-4a28-a683-cb104625afb2
status: opened
individual_gift_link: https://gifts.ongoody.com/gift/X5RQOXFWRPDCGRLKVMJF6OFE
recipient_first_name: Recipient
recipient_last_name: Smith
recipient_email: null
card_id: 5825dda3-bf71-466b-bc08-f939ccd100be
message: Test Message
thank_you_note: null
view_count_recipient: 0
is_swapped: false
order_batch_id: 6622c37c-ae81-464b-8dfe-0ad6838004c2
expires_at: null
cart:
id: 9db7c144-d96d-4cab-87e5-fbab0a9f3aab
items:
- id: 5a5d350c-9be7-41e7-9aff-73a77690879d
quantity: 1
product:
id: a765d068-351e-4342-b2a7-ce726279636b
name: Cookies
brand:
id: e639d927-fc75-4c15-8578-19635cb097f1
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: 15557054220@test.ongoody.com
workspace_id: 0f272130-1e9a-4e82-9517-1f9419d4ffdf
workspace_name: Test Team
original_cart: null
original_amounts: null
reference_id: EJJ3A2BYMU4AGNVM4SGE0YBD
payment_link: null
- id: 6b57f605-3894-4f02-8c28-3a9500cd1a69
order_status: created
created_at: '2026-07-28T20:20:13Z'
order:
id: eacd383b-aa90-4a28-a683-cb104625afb2
status: opened
individual_gift_link: https://gifts.ongoody.com/gift/X5RQOXFWRPDCGRLKVMJF6OFE
recipient_first_name: Recipient
recipient_last_name: Smith
recipient_email: null
card_id: 5825dda3-bf71-466b-bc08-f939ccd100be
message: Test Message
thank_you_note: null
view_count_recipient: 0
is_swapped: false
order_batch_id: 6622c37c-ae81-464b-8dfe-0ad6838004c2
expires_at: null
cart:
id: 9db7c144-d96d-4cab-87e5-fbab0a9f3aab
items:
- id: 5a5d350c-9be7-41e7-9aff-73a77690879d
quantity: 1
product:
id: a765d068-351e-4342-b2a7-ce726279636b
name: Cookies
brand:
id: e639d927-fc75-4c15-8578-19635cb097f1
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: 15557054220@test.ongoody.com
workspace_id: 0f272130-1e9a-4e82-9517-1f9419d4ffdf
workspace_name: Test Team
original_cart: null
original_amounts: null
reference_id: EJJ3A2BYMU4AGNVM4SGE0YBD
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'
operationId: getV1OrderActivities
x-operation-id-source: derived
components:
schemas:
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
price:
type:
- integer
- 'null'
description: Catalog price in USD cents. Only present on `/order_batches?cloneable=true` listings.
cart_eligible:
type: boolean
description: Whether this product can share a cart with other products. Only present on `/order_batches?cloneable=true` listings.
is_collection:
type: boolean
description: Whether this product is a collection. Collections carry their own recipient-experience settings (multi-select, shipping), so batch-level swap and international options do not apply to them. Only present on `/order_batches?cloneable=true` listings.
image_url:
type:
- string
- 'null'
description: A thumbnail image URL for the product. Only present on `/order_batches?cloneable=true` listings.
required:
- id
- name
- brand
quantity:
type: integer
variants:
type:
- array
- 'null'
items:
type: string
description: The variants chosen by the sender for this line, if any. Only present on `/order_batches?cloneable=true` listings.
variable_price:
type:
- integer
- 'null'
description: For flex gifts and gift cards, the amount (in cents) the sender originally chose; `null` for fixed-price products. Only present on `/order_batches?cloneable=true` listings.
free_shipping:
type: boolean
description: Whether this line item ships free on its own (per-item rule; lines from the same brand may still combine to reach a free-shipping minimum). Only present on `/order_batches?cloneable=true` listings.
required:
- id
- product
- quantity
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
OrderStatus:
type: string
enum:
- created
- notified
- opened
- accepted
- pending_payment
- paid
- ordered
- shipped
- delivered
- failed
- canceled
ListMeta:
type: object
properties:
total_count:
type: integer
description: The total number of items in this list.
Sender:
type: object
properties:
first_name:
type: string
last_name:
type: string
email:
type: string
required:
- first_name
- last_name
- email
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
Cart:
type: object
properties:
id:
type: string
format: uuid
items:
type: array
items:
$ref: '#/components/schemas/CartItem'
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
- 'null'
description: The carrier for this shipment, e.g. UPS.
tracking_number:
type:
- string
- 'null'
description: Only for approved distribution partners.
tracking_url:
type:
- string
- 'null'
description: Only for approved distribution partners.
shipped_at:
type:
- string
- 'null'
format: date-time
description: ISO 8601
delivered_at:
type:
- string
- 'null'
format: date-time
description: ISO 8601
delivery_eta:
type:
- string
- 'null'
format: date-time
description: The estimated delivery time of this shipment.
required:
- id
- status
- brand_name
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.
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
- 'null'
recipient_email:
type:
- string
- 'null'
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
- 'null'
items:
$ref: '#/components/schemas/CartSelection'
description: Product variant selections for each cart product. Only for commerce app orders.
shipments:
type: array
items:
$ref: '#/components/schemas/Shipment'
description: A list of the shipments for the order.
workspace_id:
type:
- string
- 'null'
format: uuid
description: Organizations are sub-divided into workspaces. Orders are contained in workspaces, identified by this ID.
workspace_name:
type:
- string
- 'null'
expires_at:
type:
- string
- 'null'
format: date-time
description: For gifts, the date and time the gift is set to expire.
card_id:
type:
- string
- 'null'
format: uuid
description: The digital greeting card on this gift.
message:
type:
- string
- 'null'
description: The message in this gift, provided by the sender.
thank_you_note:
type:
- string
- 'null'
description: A thank you note sent by the recipient.
form_responses:
type:
- array
- 'null'
items:
type: object
properties:
question:
type: string
description: The question text as shown to the recipient when they accepted.
answer:
type: string
description: The recipient's answer. For multiple-select questions, the selected options are joined with "; ".
required:
- question
- answer
description: Recipient answers to the custom form attached to this gift. Only present when the recipient submitted at least one answer.
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
- 'null'
description: Total cost of processing fees for this order.
amount_credit_applied:
type:
- integer
- 'null'
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
- 'null'
description: Total tax for this order.
amount_total:
type:
- integer
- 'null'
description: Total cost of the products, shipping, processing fees, tax, and global shipping costs in this order.
amount_global_relay_cost:
type:
- integer
- 'null'
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
- 'null'
description: Only provided when calling the /orders/:id endpoint.
properties:
created_at:
type: string
format: date-time
description: ISO 8601
notified_at:
type:
- string
- 'null'
format: date-time
description: When the recipient was notified of the order.
opened_at:
type:
- string
- 'null'
format: date-time
description: For gifts, when the recipient opened the order.
accepted_at:
type:
- string
- 'null'
format: date-time
description: For gifts, when the recipient accepted the order.
pending_payment_at:
type:
- string
- 'null'
format: date-time
description: When the order entered pending payment status.
paid_at:
type:
- string
- 'null'
format: date-time
description: When the order was paid for.
shipped_at:
type:
- string
- 'null'
format: date-time
description: When the order was first shipped. If there are multiple shipments, this is when the first shipment shipped.
delivered_at:
type:
- string
- 'null'
format: date-time
description: When the order was delivered. If there are multiple shipments, this is when all shipments were delivered.
required:
- created_at
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.
original_amounts:
type:
- object
- 'null'
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
- 'null'
original_amount_shipping:
type:
- integer
- 'null'
original_amount_credit_applied:
type:
- integer
- 'null'
original_amount_pre_tax_total:
type:
- integer
- 'null'
sender:
$ref: '#/components/schemas/Sender'
description: The Goody user who sent this order.
payment_link:
type:
- string
- 'null'
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
securitySchemes:
bearer:
type: http
scheme: bearer
description: Your Goody API key.
x-provenance:
method: harvested
publisher: Goody
source: https://assets.ongoody.com/static/web/goody-api-openapi.json
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)