---
title: "List customs entries"
method: GET
path: "/api/v1/external/customs-entries"
tags: ["Customs Entries"]
---

# List customs entries

`GET /api/v1/external/customs-entries`

## Request

- Base URL: `https://api.wove.com`
- URL: `https://api.wove.com/api/v1/external/customs-entries`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/wove/apis/wove-external-api/docs/api/v1/external/customs-entries/get.ts> (a function with typed inputs; its response is checked against the schema)

Retrieve a paginated list of your organization's customs entries, newest first. Requires `customs:read`.

## Query parameters

- `page` integer
- `limit` integer
- `status` 'pending' | 'draft' | 'review' | 'filed' | 'released' | 'liquidated' | 'cancelled'
- `entryType` '01' | '11' | 'export' | 'in_bond' | 'ca_b3' | 'ca_clvs' | 'ca_type_f'
- `filingCountry` string
- `shipmentId` string
- `search` string
- `createdAfter` string, date-time
- `createdBefore` string, date-time

## Response `200`

Customs entries retrieved successfully

- object
  - `success` boolean, required
  - `data` object[], required
    - `creation` EntityCreationInfo: How the record came into existence. `user` is a person in Wove (manual); `email`, `document_upload`, `bulk_upload`, `tms_import` and `api` are Wove-created from that source; `system` is created by Wove with no further source. `null` means nothing was recorded (most records created before October 2026): treat it as unknown, not as manual.
      - `source` 'user' | 'email' | 'document_upload' | 'bulk_upload' | 'tms_import' | 'api' | 'system' | 'null', nullable
    - `sync` EntitySyncInfo, nullable: The latest push of the record to your TMS (e.g. CargoWise), the same one the Sync Reports in Wove show. `null` when the record was never synced.
      - `method` 'automation' | 'manual' | 'webhook': An automation rule pushed it, a person pushed it, or a webhook did
      - `status` string
      - `syncedAt` string, date-time, nullable
      - `syncedBy` object, nullable: The person who pushed it. `null` for an automation or webhook push, and for a manual push recorded before Wove kept who made it.
        - `userId` string
        - `name` string, nullable
        - `email` string, nullable
      - `tmsReference` string, nullable: The record's reference in the TMS (for a shipment, the job it was pushed to)
    - `id` string
    - `shipmentId` string, nullable
    - `branchId` string, nullable
    - `teamId` string, nullable
    - `entryNumber` string, nullable
    - `entryType` '01' | '11' | 'export' | 'in_bond' | 'ca_b3' | 'ca_clvs' | 'ca_type_f' | 'null', nullable
    - `status` 'pending' | 'draft' | 'review' | 'filed' | 'released' | 'liquidated' | 'cancelled'
    - `syncStatus` string, nullable: TMS sync status, separate from the customs status lifecycle
    - `tmsSyncedAt` string, date-time, nullable
    - `complianceStatus` string, nullable
    - `filingCountry` string, nullable
    - `customsAuthority` string, nullable
    - `portOfEntry` CustomsEntryPort, nullable
      - `type` string
      - `portCode` string
      - `portName` string
      - `country` string: ISO-2 country code, empty when the LOCODE is unknown
    - `portOfLoading` CustomsEntryPort, nullable
      - `type` string
      - `portCode` string
      - `portName` string
      - `country` string: ISO-2 country code, empty when the LOCODE is unknown
    - `portOfOrigin` CustomsEntryPort, nullable
      - `type` string
      - `portCode` string
      - `portName` string
      - `country` string: ISO-2 country code, empty when the LOCODE is unknown
    - `portOfDischarge` CustomsEntryPort, nullable
      - `type` string
      - `portCode` string
      - `portName` string
      - `country` string: ISO-2 country code, empty when the LOCODE is unknown
    - `portOfDestination` CustomsEntryPort, nullable
      - `type` string
      - `portCode` string
      - `portName` string
      - `country` string: ISO-2 country code, empty when the LOCODE is unknown
    - `regime` string, nullable
    - `importerName` object, nullable: Party reference
      - `id` string
      - `name` string
    - `importerAddress` object, nullable
    - `importerTaxId` string, nullable
    - `exporterName` object, nullable: Party reference
      - `id` string
      - `name` string
    - `exporterAddress` object, nullable
    - `brokerName` object, nullable: Party reference
      - `id` string
      - `name` string
    - `brokerAddress` object, nullable
    - `brokerReference` string, nullable
    - `sendingAgentName` object, nullable: Party reference
      - `id` string
      - `name` string
    - `sendingAgentAddress` object, nullable
    - `totalPacks` number, nullable
    - `totalPacksPackageType` string, nullable
    - `totalNoOfPieces` number, nullable
    - `totalWeight` number, nullable
    - `weightUnit` string, nullable
    - `totalVolume` number, nullable
    - `volumeUnit` string, nullable
    - `entryDate` string, date, nullable
    - `arrivalDate` string, date-time, nullable
    - `releaseDate` string, date, nullable
    - `liquidationDate` string, date, nullable
    - `departureDate` string, date, nullable
    - `totalCustomsValue` string, nullable
    - `totalDuties` string, nullable
    - `totalTaxes` string, nullable
    - `totalFees` string, nullable
    - `currency` string, nullable
    - `authorityReference` string, nullable
    - `amendmentType` string, nullable
    - `originalEntryNumber` string, nullable
    - `filingMethod` string, nullable
    - `sourceSystem` string, nullable
    - `fieldSources` object, nullable: Per-field provenance of extracted values
    - `aiInputSnapshot` object, nullable
    - `transportMode` string, nullable
    - `vesselName` string, nullable
    - `voyageFlightNo` string, nullable
    - `lloydsImo` string, nullable
    - `masterBill` string, nullable
    - `houseBill` string, nullable
    - `externalShipmentRefId` string, nullable
    - `manifestNumber` string, nullable
    - `poNumber` string, nullable
    - `carrierCode` string, nullable
    - `lvsId` string, nullable
    - `cadTransactionNumber` string, nullable
    - `portOfClearance` string, nullable
    - `subLocationCode` string, nullable
    - `subLocationDescription` string, nullable
    - `examLocationCode` string, nullable
    - `examLocationDescription` string, nullable
    - `incoterm` string, nullable
    - `carrier` object, nullable
      - `id` string
      - `code` string
      - `name` string
    - `previousExportMrn` string, nullable
    - `deliveryNoteNumber` string, nullable
    - `customsOfficeOfExit` string, nullable
    - `vehicleRegistration` string, nullable
    - `lineCount` integer
    - `documentCount` integer
    - `tmsReference` string, nullable
    - `allTmsReferences` string, nullable: Comma-separated list of every TMS reference the entry is synced under
    - `tmsType` string, nullable
    - `tags` object[]
      - `description` string
      - `effectiveFrom` string, date
      - `authority` string, nullable
      - `condition` string, nullable
      - `sourceReference` string, nullable
      - `supersededDuties` string[]
    - `availableExclusions` string[]: Exclusion or exemption codes an importer could claim.
    - `requiredInputs` string[]: Keys of inputs needed for an exact calculation, e.g. `steel`, `steel.countryOfMelt`, `quantity`.
  - `message` string: Optional success message
  - `pagination` object, required
    - `page` integer, required
    - `limit` integer, required
    - `total` integer, required
    - `totalPages` integer, required
    - `hasNext` boolean, required
    - `hasPrev` boolean, required

## Other responses

- `400`: Invalid request parameters
- `401`: Authentication required or invalid credentials
- `403`: Insufficient permissions

---

[API](https://skmtc.dev/wove/apis/wove-external-api.md) - [All operations](https://skmtc.dev/wove/apis/wove-external-api/llms.txt) - [OpenAPI document](https://skmtc.dev/wove/apis/wove-external-api/revisions/37290e267e07?raw)
