Goody Order Activities API

The Order Activities API from Goody — 1 operation(s) for order activities.

OpenAPI Specification

goody-order-activities-api-openapi.yml Raw ↑
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.