Fulcrumpro Shipments API

The Shipments API from Fulcrumpro — 2 operation(s) for shipments.

Operations 5

GET /api/shipments/{shipmentId} Get a specific shipment. #
PATCH /api/shipments/{shipmentId} Partially update a Shipment #
PUT /api/shipments/{shipmentId} Update a specific shipment #
GET /api/shipments/{shipmentId}/pdf Download the PDF for a shipment #
POST /api/shipments/list Finds shipments based on search parameters #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/fulcrumpro:fulcrumpro-shipments-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API 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 Specification

fulcrumpro-shipments-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Fulcrum Public Shipments API
  version: v1
servers:
- url: https://api.fulcrumpro.com
tags:
- name: Shipments
paths:
  /api/shipments/{shipmentId}:
    get:
      tags:
      - Shipments
      summary: Get a specific shipment.
      operationId: GetShipment
      parameters:
      - name: shipmentId
        in: path
        required: true
        schema:
          maxLength: 24
          minLength: 24
          type: string
      responses:
        '200':
          description: The shipment for the given id
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ShipmentsShipmentDto'
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ShipmentsShipmentDto'
        '404':
          description: Shipment did not exist
      x-c4-exposed: true
      x-c4-required-permissions:
      - Shipping-Shipping-View Shipments
    patch:
      tags:
      - Shipments
      summary: Partially update a Shipment
      operationId: PatchShipment
      parameters:
      - name: shipmentId
        in: path
        required: true
        schema:
          maxLength: 24
          minLength: 24
          type: string
      requestBody:
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/JsonPatchDocument'
      responses:
        '200':
          description: Shipment item
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ShipmentsShipmentDto'
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ShipmentsShipmentDto'
        '400':
          description: The patch document is malformed — an unknown path, an unsupported operation, or a value the target field cannot hold
        '404':
          description: Shipment did not exist
      x-c4-exposed: true
      x-c4-mutation: true
      x-c4-required-permissions:
      - Shipping-Shipping-Edit Shipments
    put:
      tags:
      - Shipments
      summary: Update a specific shipment
      operationId: UpdateShipment
      parameters:
      - name: shipmentId
        in: path
        required: true
        schema:
          maxLength: 24
          minLength: 24
          type: string
      requestBody:
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/ShipmentsShipmentUpdateDto'
          application/json:
            schema:
              $ref: '#/components/schemas/ShipmentsShipmentUpdateDto'
          text/json:
            schema:
              $ref: '#/components/schemas/ShipmentsShipmentUpdateDto'
          application/*+json:
            schema:
              $ref: '#/components/schemas/ShipmentsShipmentUpdateDto'
        required: true
      responses:
        '200':
          description: Shipment
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ShipmentsShipmentDto'
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ShipmentsShipmentDto'
        '404':
          description: Shipment did not exist
  /api/shipments/{shipmentId}/pdf:
    get:
      tags:
      - Shipments
      summary: Download the PDF for a shipment
      description: 'The document is rendered when you call this, from

        the shipment''s current state and the tenant''s PDFs & Emails settings, so it is the same

        document the product''s Download button produces rather than a stored copy of one sent

        earlier. Served in every shipment status, including Cancelled.


        The file name is composed from the order the shipment fulfils and the shipment''s sequence

        number rather than from the id you request by: `SO1862-2.pdf` for a shipment against

        sales order 1862, and `PO104-1.pdf` for an outside-processing shipment against purchase

        order 104. The packing slip is rendered against that order, so a shipment whose order has

        been deleted, or which is attached to neither, has no document to return and gives a 404.'
      operationId: GetShipmentPdf
      parameters:
      - name: shipmentId
        in: path
        required: true
        schema:
          maxLength: 24
          minLength: 24
          type: string
      responses:
        '200':
          description: The shipment's packing slip PDF
          content:
            application/pdf:
              schema:
                type: string
                format: binary
        '404':
          description: No shipment with that id, the shipment is deleted, or the order it fulfils is missing or deleted
        '500':
          description: The renderer did not produce a usable document
      x-c4-exposed: true
      x-c4-required-permissions:
      - Shipping-Shipping-View Shipments
  /api/shipments/list:
    post:
      tags:
      - Shipments
      summary: Finds shipments based on search parameters
      operationId: ListShipments
      parameters:
      - name: Sort.Field
        in: query
        description: Sort field
        schema:
          minLength: 1
          type: string
      - name: Sort.Dir
        in: query
        description: Sort direction
        schema:
          $ref: '#/components/schemas/CommonEnumSortDirectionEnum'
      - name: Skip
        in: query
        description: 'Number of records to skip. Defaults to 0. Combine with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Take to page

          through a result set larger than one page.'
        schema:
          minimum: 0
          type: integer
          format: int32
      - name: Take
        in: query
        description: 'Number of records to return. Validation accepts 0 through 5000, but `0` is not a

          page size and what an endpoint does with it varies, so send a value from 1 to 5000.


          Two cases differ. A request that supplies paging but leaves this field out takes this

          field''s default of <b>50</b>. A request that supplies no paging at all is

          endpoint-specific — some define their own fallback — so it does not reliably mean any

          particular number of records. Either way the response says nothing about records it

          did not return, so send this explicitly whenever the size of the answer matters.

          Endpoints returning a paged envelope report `totalCount` and `hasNextPage`

          alongside the records; endpoints returning a bare array report neither, so page those

          with FulcrumProduct.PublicApi.Dto.Common.PagingDto.Skip until a page comes back shorter than the value requested.'
        schema:
          maximum: 5000
          minimum: 0
          type: integer
          format: int32
      requestBody:
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/ShipmentsListParameters'
          application/json:
            schema:
              $ref: '#/components/schemas/ShipmentsListParameters'
          text/json:
            schema:
              $ref: '#/components/schemas/ShipmentsListParameters'
          application/*+json:
            schema:
              $ref: '#/components/schemas/ShipmentsListParameters'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DtoPagedResultDtoShipmentsShipmentDto'
            application/problem+json:
              schema:
                $ref: '#/components/schemas/DtoPagedResultDtoShipmentsShipmentDto'
      x-c4-exposed: true
      x-c4-required-permissions:
      - Shipping-Shipping-View Shipments
components:
  schemas:
    CommonReferenceDto:
      type: object
      properties:
        id:
          maxLength: 24
          minLength: 24
          type:
          - string
          - 'null'
          description: Unique Id associated to the referenced object
        name:
          maxLength: 200
          minLength: 1
          type:
          - string
          - 'null'
          description: Descriptive name associated to the object
      additionalProperties: false
      description: Represents a reference to a document in a DB collection
    ShippingDataPackingStatus:
      enum:
      - notPacked
      - partiallyPacked
      - fullyPacked
      - overPacked
      type: string
    ShipmentsShipmentDto:
      required:
      - id
      - name
      - number
      - packingStatus
      - status
      type: object
      properties:
        id:
          maxLength: 24
          minLength: 24
          type: string
          description: Unique id associated to this entity.
        number:
          minimum: 0
          type: integer
          description: Number
          format: int32
        name:
          minLength: 1
          type: string
          description: Shipment Name
        status:
          $ref: '#/components/schemas/ShippingDataShipmentStatus'
        packingStatus:
          $ref: '#/components/schemas/ShippingDataPackingStatus'
        trackingNumber:
          type:
          - string
          - 'null'
          description: Tracking number
        shipByDate:
          type:
          - string
          - 'null'
          description: Ship by date.
          format: date-time
        shippedDate:
          type:
          - string
          - 'null'
          description: Shipped date.
          format: date-time
        shippedDateOverride:
          type:
          - string
          - 'null'
          description: Shipped date override.
          format: date-time
        notes:
          maxLength: 2000
          minLength: 1
          type:
          - string
          - 'null'
          description: Shipment notes.
        displayNotesToCustomer:
          type: boolean
          description: Whether to display the shipment notes on the pack list.
        shippingMethod:
          $ref: '#/components/schemas/CommonReferenceDto'
        shippingAccount:
          $ref: '#/components/schemas/CommonReferenceDto'
        shippingCost:
          type:
          - number
          - 'null'
          description: The actual cost to ship as set on the shipment page
          format: double
        shippingCharge:
          type:
          - number
          - 'null'
          description: The estimated cost to ship as set on the original shipment from the sales order page. It is charged to the customer via the Shipping/Handling line
          format: double
        address:
          $ref: '#/components/schemas/CommonAddressDto'
        customerAddressId:
          type:
          - string
          - 'null'
          description: 'The id of the recipient address. A shipment addressed from one of the customer''s addresses

            carries that address''s id. Please reference /api/customers/{customerId}/addresses endpoint.'
        customFields:
          type:
          - object
          - 'null'
          additionalProperties: {}
          description: Custom fields that have been defined on this entity.
        externalReferences:
          type:
          - object
          - 'null'
          additionalProperties:
            $ref: '#/components/schemas/CommonExternalReferenceDto'
          description: The external references associated with this shipment
      additionalProperties: false
      description: Represents a shipment
    DtoPagedResultDtoShipmentsShipmentDto:
      required:
      - data
      - hasNextPage
      - hasPreviousPage
      - page
      - pageSize
      - totalCount
      - totalPages
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/ShipmentsShipmentDto'
          description: The data
        page:
          type: integer
          description: The 1-indexed page
          format: int32
          readOnly: true
        pageSize:
          type: integer
          description: The page size
          format: int32
          readOnly: true
        totalCount:
          type: integer
          description: The total count of records
          format: int32
        totalPages:
          type: integer
          description: The total pages
          format: int32
          readOnly: true
        hasPreviousPage:
          type: boolean
          description: True if there is a previous page
          readOnly: true
        hasNextPage:
          type: boolean
          description: True if there is a next page
          readOnly: true
      additionalProperties: false
      description: Paged result
    CommonEnumSortDirectionEnum:
      enum:
      - ascending
      - descending
      type: string
      description: Specify sorting direction.
    ShipmentsListParameters:
      type: object
      properties:
        shipmentStatus:
          $ref: '#/components/schemas/ShippingDataShipmentStatus'
        packingStatus:
          $ref: '#/components/schemas/ShippingDataPackingStatus'
        salesOrderId:
          type:
          - string
          - 'null'
          description: Filter shipments by sales order identifier
        purchaseOrderId:
          type:
          - string
          - 'null'
          description: Filter shipments by purchase order identifier
        shipmentType:
          $ref: '#/components/schemas/ShippingDataShipmentType'
        shipmentIds:
          type: array
          items:
            type: string
          description: Filter shipments by shipment identifiers.
        names:
          maxItems: 500
          type: array
          items:
            type: string
          description: Filter shipments by shipment number, e.g. SHP-SO1234-1 or SHP-PO5678-2.
        shipByDateBefore:
          type:
          - string
          - 'null'
          description: Filter to shipments scheduled to ship before this date (exclusive).
          format: date-time
        shipByDateAfter:
          type:
          - string
          - 'null'
          description: Filter to shipments scheduled to ship after this date (exclusive).
          format: date-time
        shippedDateBefore:
          type:
          - string
          - 'null'
          description: 'Filter to shipments actually shipped before this date (exclusive).

            Compares against the shipped date override (a shop-local date) when one is set, otherwise the shipped date (UTC).'
          format: date-time
        shippedDateAfter:
          type:
          - string
          - 'null'
          description: 'Filter to shipments actually shipped after this date (exclusive).

            Compares against the shipped date override (a shop-local date) when one is set, otherwise the shipped date (UTC).'
          format: date-time
      additionalProperties: false
      description: Parameters used for searching V3 shipments
    ShippingDataShipmentStatus:
      enum:
      - pending
      - open
      - shipped
      - cancelled
      type: string
    CommonAddressDto:
      required:
      - address1
      - city
      - postalCode
      type: object
      properties:
        name:
          maxLength: 200
          minLength: 1
          type:
          - string
          - 'null'
          description: Name of the address (Bob's Shipping, Primary, Reno Warehouse, etc).
        address1:
          maxLength: 200
          minLength: 1
          type: string
          description: Primary address line.
        address2:
          maxLength: 200
          minLength: 1
          type:
          - string
          - 'null'
          description: Second address line.
        address3:
          maxLength: 200
          minLength: 1
          type:
          - string
          - 'null'
          description: Third address line.
        city:
          maxLength: 200
          minLength: 1
          type: string
          description: Address city
        stateProvince:
          maxLength: 200
          minLength: 1
          type:
          - string
          - 'null'
          description: Address state/province.
        postalCode:
          maxLength: 200
          minLength: 1
          type: string
          description: Postal/zip code.
        country:
          maxLength: 200
          minLength: 1
          type:
          - string
          - 'null'
          description: Country identifier.
        phone:
          type:
          - string
          - 'null'
          description: Phone number.
          format: tel
        email:
          type:
          - string
          - 'null'
          description: Email address
          format: email
      additionalProperties: false
      description: Address definition
    JsonPatchOperation:
      type: object
      properties:
        op:
          type: string
        value: {}
        path:
          type: string
        from:
          type: string
          description: Source path — present for move/copy operations, absent otherwise.
    JsonPatchDocument:
      type: array
      items:
        $ref: '#/components/schemas/JsonPatchOperation'
      description: Array of operations to perform
    ShipmentsShipmentUpdateDto:
      type: object
      properties:
        shipByDate:
          type:
          - string
          - 'null'
          description: Ship by date.
          format: date-time
        notes:
          maxLength: 2000
          minLength: 1
          type:
          - string
          - 'null'
          description: Shipment notes.
        displayNotesToCustomer:
          type: boolean
          description: Whether or not to display the shipment notes on the pack list.
        trackingNumber:
          type:
          - string
          - 'null'
          description: The tracking number for the shipment.
        shippingMethodId:
          type:
          - string
          - 'null'
          description: The shipping method identifier
        shippedDate:
          type:
          - string
          - 'null'
          description: 'The shipped date. Read-only: the value is accepted but not applied; the shipped date is set when the shipment ships.'
          format: date-time
        shippedDateOverride:
          type:
          - string
          - 'null'
          description: The actual ship date override. Takes precedence over the shipped date wherever a ship date is reported. Send the calendar date at midnight UTC (e.g. 2014-10-23T00:00:00Z); it is stored as sent and reports compare it as a date. Null clears it. On update, a value outside 2000-01-01 to 2099-12-31 is rejected; patch does not range-check.
          format: date-time
        shippingCost:
          type:
          - number
          - 'null'
          description: 'The shipment''s cost. Read-only: the value is accepted but not applied.'
          format: double
      additionalProperties: false
      description: Represents an update to a Shipment.
    ShippingDataShipmentType:
      enum:
      - unknown
      - standard
      - outsideProcessing
      type: string
    CommonExternalReferenceDto:
      required:
      - externalId
      type: object
      properties:
        type:
          maxLength: 50
          minLength: 0
          type:
          - string
          - 'null'
          description: Specifies the type of this identifier.
        externalId:
          maxLength: 500
          minLength: 0
          type: string
          description: The external identifier
        displayId:
          maxLength: 500
          minLength: 0
          type:
          - string
          - 'null'
          description: 'The id/number that a human sees. For a quote, this might be ''Q1000''.  If this is null, the display

            will fall back to the ExternalId'
        status:
          type:
          - string
          - 'null'
          description: A status for the external reference
        url:
          type:
          - string
          - 'null'
          description: An external url for the reference
        modifiedUtc:
          type:
          - string
          - 'null'
          description: Date the external reference was modified
          format: date-time
        lastSyncedUtc:
          type:
          - string
          - 'null'
          description: 'Date the external system last successfully synced this reference. Set by integrations

            on successful sync only; null means never synced or that the sync timestamp isn''t

            maintained by the integration.'
          format: date-time
      additionalProperties: false
      description: The external reference for entities that implement FulcrumProduct.Domain.Common.IHasExternalReferences
  securitySchemes:
    bearer:
      type: http
      description: Your API bearer token generated in System Data > Advanced > Public API Setup
      scheme: bearer
      bearerFormat: JWT
x-tagGroups:
- name: Accounting Code
  tags:
  - Accounting Code
- name: Alert
  tags:
  - Alert
- name: Attachment
  tags:
  - Attachment
  - Attachment Certification
- name: Auth
  tags:
  - Auth
- name: CAPAs
  tags:
  - CAPAs
- name: Change Order
  tags:
  - Change Order
- name: Chart Of Accounts
  tags:
  - Chart Of Accounts
- name: Company Info
  tags:
  - Company Info
- name: Custom Field
  tags:
  - Custom Field
- name: Customer
  tags:
  - Customer
  - Customer Address
  - Customer Contact
- name: Customer Tier
  tags:
  - Customer Tier
- name: Department
  tags:
  - Department
- name: Department Shift
  tags:
  - Department Shift
- name: Equipment
  tags:
  - Equipment
- name: Equipment Downtime
  tags:
  - Equipment Downtime
- name: Gauge Code
  tags:
  - Gauge Code
- name: Grade Code
  tags:
  - Grade Code
- name: InProcessTrackingFieldType
  tags:
  - InProcessTrackingFieldType
- name: Inventory
  tags:
  - Inventory
- name: Inventory Event
  tags:
  - Inventory Event
  - Inventory Event Details
- name: Inventory Lot
  tags:
  - Inventory Lot
- name: Inventory Transactions
  tags:
  - Inventory Transactions
- name: Invoice
  tags:
  - Invoice
  - Invoice Deposit Adjustment Line Item
  - Invoice Deposit Line Item
  - Invoice Discount Line Item
  - Invoice Fee Line Item
  - Invoice Line Item
  - Invoice Note
  - Invoice Part Line Item
  - Invoice Refund Line Item
  - Invoice Shipping Charge Line Item
  - Invoice Tax Line Item
- name: Item
  tags:
  - Item
  - Item Custom Fields
  - Item Customer
  - Item Material Vendor
  - Item PriceBreaks
  - Item Routing
  - Item Vendor
- name: Item Category
  tags:
  - Item Category
- name: Item Class
  tags:
  - Item Class
- name: Item Tag
  tags:
  - Item Tag
- name: Job
  tags:
  - Job
  - Job Custom Fields
  - Job Full Routing
  - Job Part Line Item Full Routing
  - Job Item To Make
  - Job Item To Make Operation
  - Job Message
  - Job Operation
- name: Job Tracking Timers
  tags:
  - Job Tracking Timers
- name: Location
  tags:
  - Location
- name: Material
  tags:
  - Material
  - Material Vendor
- name: Material Code
  tags:
  - Material Code
- name: NCRs
  tags:
  - NCRs
- name: Nesting
  tags:
  - Nesting
- name: Note
  tags:
  - Note
- name: Operation
  tags:
  - Operation
- name: Payment Term
  tags:
  - Payment Term
- name: Purchase Order
  tags:
  - Purchase Order
  - Purchase Order Custom Fields
  - Purchase Order Discount Line Item
  - Purchase Order Fee Line Item
  - Purchase Order Line Item
  - Purchase Order Outside Processing Line Item
  - Purchase Order Part Line Item
  - Purchase Order Tax Line Item
  - Purchase Order Vendor Credit Line Item
- name: Quote
  tags:
  - Quote
  - Quote Custom Fields
  - Quote Discount Line Item
  - Quote Fee Line Item
  - Quote Part Line Item
  - Quote Part Line Item Custom Fields
  - Quote Part Line Item Full Routing
  - Quote Tax Line Item
- name: Receiving
  tags:
  - Receiving Receipt
  - Receiving Receipt Line Item
- name: Refund Reason Code
  tags:
  - Refund Reason Code
- name: Reporting
  tags:
  - Reporting
- name: Sales Order
  tags:
  - Sales Order
  - Sales Order Blanket Line Item
  - Sales Order Custom Fields
  - Sales Order Discount Line Item
  - Sales Order Fee Line Item
  - Sales Order Line Item
  - Sales Order Part Line Item
  - Sales Order Part Line Item Custom Fields
  - Sales Order Part Line Item Full Routing
  - Sales Order Refund Line Item
  - Sales Order Shipping Charge Line Item
  - Sales Order Tax Line Item
- name: ScrapReport
  tags:
  - ScrapReport
- name: Settings
  tags:
  - Settings
- name: Shape Code
  tags:
  - Shape Code
- name: Shipment Line Items (V3)
  tags:
  - Shipment Line Items (V3)
- name: Shipment
  tags:
  - Shipment Custom Fields
- name: Shipments
  tags:
  - Shipments
- name: Shipping Method
  tags:
  - Shipping Method
- name: Tag
  tags:
  - Tag
- name: Task
  tags:
  - Task
- name: Tax Rate
  tags:
  - Tax Rate
- name: Time Clock Timers
  tags:
  - Time Clock Timers
- name: Timer
  tags:
  - Timer
- name: Tool
  tags:
  - Tool
- name: Tool Calibration
  tags:
  - Tool Calibration
- name: User
  tags:
  - User
  - User Status
- name: Vendor
  tags:
  - Vendor
  - Vendor Address
  - Vendor Contact
- name: Work Order
  tags:
  - Work Order
- name: WorkCenter
  tags:
  - WorkCenter
x-provenance:
  method: harvested
  publisher: Fulcrumpro
  source: https://api.fulcrumpro.com/swagger/v1/swagger.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)