π Shipment Search
π Item Search
π Portfolio Search
amazon-api-pipes.eddie_v2_portfolio_level.vw_has_portfolio. Pick one to see its ASINs + their current shipment activity (from v2024 joined data).
π By Portfolio
π FC β Fulfillable Email Log
agent-inventory. One row per send β click to see the same transition table that appeared in the email. Source of truth: Firestore fc_transition_email_logs.π¦ FBA Shipments
tbl_fba_shipments_items_v2 where shipment_id starts with FBA (i.e. real labels generated). Search runs across the FULL result set (server-side, not just this page). Export downloads ALL matching rows as CSV.β Recon β FBA Main vs RE Inbound Qty (joined-tab math)
- Buckets: WORKING β shipment_status β (WORKING, READY_TO_SHIP, UNCONFIRMED, DRAFT_NO_LABEL_YET); SHIPPED β (SHIPPED, IN_TRANSIT, CHECKED_IN); RECEIVING β (RECEIVING, DELIVERED).
- Per-row math:
RE Inbound Qty = 0if status is CLOSED/CANCELLED,0if v0 60d has no row for (shipment_id, seller_sku), elseRE QTY β quantity_received(where RE QTY = v0.quantity_shipped, per-shipment β avoids sibling-shipment plan-level duplication). - Source joins: v2024 getShipment metadata Γ v2024 listInboundPlanItems Γ v0 60-day items. CLOSED/CANCELLED shipments excluded from totals; workflow/pre-shipment plans included if they have items.
π v2024 getShipment β one row per shipment
fba-shipments-pull-job Β· scheduler fba-shipments-pull-all-brands (every 3h @ :40 NY) Β· function _walk_v2024() in fba-shipments-pull/main.py Β· BQ table tbl_fba_shipments_items_v2 WHERE source_workflow='v2024'. Manual trigger: GET /pull?brand=ALL on fba-shipments-pull.
GET /inboundPlans/{planId}/shipments/{shipmentId}. Each row = one shipment with its FBA label (shipment_confirmation_id), v2024 internal id, plan id, name, status, FC destination, delivery window. Search runs across every page, and the Export button dumps ALL matching rows to CSV regardless of which page you're on.
π¦ v2024 listInboundPlanItems β canonical plan-level items
fba-shipments-pull-job Β· scheduler fba-shipments-pull-all-brands (every 3h @ :40 NY) Β· function _walk_v2024() (plan-items canonical block) in fba-shipments-pull/main.py Β· BQ table tbl_fba_shipments_items_v2 WHERE source_workflow='v2024_plan_items'. Manual trigger: GET /pull?brand=ALL on fba-shipments-pull.
GET /inboundPlans/{planId}/items. Each row = one (plan Γ ASIN Γ SKU) tuple with quantity. This is the source that solved the v0 200-SKU cap bug β every plan returns every item without truncation. Search across all pages, export all matches.
π v2024 Shipment + Items β joined on inbound_plan_id (+ v0 received qty)
inbound_plan_id) Γ v0 getShipmentItems 60-day pull (received qty, joined on shipment_id + seller_sku). One row per (shipment Γ item).
Click any column header to see exactly which API/endpoint that column's data came from, including formulas for calculated columns.
Caveats:
- Plans with multiple sibling shipments duplicate items per sibling. Dedup by
(inbound_plan_id, child_asin)in Excel for plan-level totals. - Plans not yet labeled show synthetic
(no shipment yet β label not created)in shipment_id; their received columns are NULL. - Shipments outside the v0 60-day window also show NULL received β rerun
/v0/pull-items-date-range?days=Nto widen.
π₯ v0 getShipmentItems (DATE_RANGE) β raw, includes received qty
v0_pull_items_date_range() in fba-shipments-pull/main.py Β· endpoint GET /v0/pull-items-date-range?days=N or ?start=YYYY-MM-DD&end=YYYY-MM-DD Β· BQ table tbl_fba_v0_items_60d (UPSERT via MERGE on (shipment_id, seller_sku, fulfillment_network_sku) β prior pulls survive).
GET /fba/inbound/v0/shipmentItems?QueryType=DATE_RANGE for the last 60 days. Each row = one (shipment Γ SKU) tuple. This is the only source that gives us QuantityReceived at the item level. Raw API fields β no brand enrichment, no joins with other sources. Refresh via the puller (/v0/pull-items-date-range) β replaces the table on every pull.
πΎ All Data β full BQ snapshot for Excel
tbl_fba_shipments_items_v2 from the
latest puller run (rows within 6 hours of the most recent
sync_timestamp). Use this when the prepared views don't
slice the way you need β pull it into Excel and pivot freely.
Includes EVERY source: v0, v2024 (per-shipment), v2024_workflow
(pre-shipment drafts), v2024_plan_items (canonical plan-level walk).
source_workflow is kept because without it you can't
tell which Amazon endpoint a row came from (v0 vs v2024 vs plan-items).
π¨ v0 vs v2024 β which API family to use for what (read once)
Amazon retired the v0 transport + preorder endpoints (returns "deprecated" β verified 2026-06-04). Anything richer than headline shipment fields now lives in v2024-03-20 Fulfillment Inbound, which uses inboundPlans as the top entity.
What still works on v0 (per-shipment ID): getShipments, getShipmentItems (shipped vs received per SKU), getBillOfLading.
What you need v2024 for: destinationAddress (which FC), placementOptions (FC distribution), transportationOptions (carrier/ETA), contentUpdatePreviews (pending edits β huge cascade signal), deliveryWindowOptions (Amazon-quoted receive windows).
v0 shipment IDs (FBA1XYZ) don't directly map to v2024. Use the v2024 Inbound Plans tab β load plans β drill into a plan β drill into a shipment under that plan to see the rich data.