Discover/cnc-line.com API
live

cnc-line.com APIwww.cnc-line.com

Track CNC Line (CMA CGM intra-Asia) shipments by container, bill of lading, or booking number. Get route, vessel, moves, and progress data.

Endpoint health
verified 2h ago
get_shipment_tracking
1/1 passing latest checkself-healing
Endpoints
1
Updated
3h ago
Try it
Container number, bill of lading number, or booking number to track. Container numbers follow ISO 6346 format (4 letters + 7 digits, e.g. CMAU1043320). Multiple references (up to 3) can be comma-separated.
api.parse.bot/scraper/33ba42b8-ac2c-4d7b-bf6f-20c1163598fa/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Use it in your codegrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/33ba42b8-ac2c-4d7b-bf6f-20c1163598fa/get_shipment_tracking?reference=CMAU1043320' \
  -H 'X-API-Key: $PARSE_API_KEY'
Or use the typed Python SDKfully typed · autocompletes

Typed Python client. Install the CLI, sign in, then pull this API’s generated client:

pip install parse-sdk
parse login
parse add --marketplace cnc-line-com-api

parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.


"""Walkthrough: CNC Line shipment tracking — fetch container status and movement history."""
from parse_apis.CNC_Line_Shipment_Tracking_API import CNCLine, NotFoundError

client = CNCLine()

# Track a container by its ISO 6346 reference number.
shipment = client.shipments.get(reference="CMAU1043320")
print(f"Found: {shipment.found}, Container: {shipment.container_reference}")

# Inspect the route: port of loading to port of discharge.
if shipment.route:
    print(f"Route: {shipment.route.port_of_loading} -> {shipment.route.port_of_discharge}")

# Walk the movement history — each move records a location, vessel, and status.
if shipment.moves:
    for move in shipment.moves.past_moves[:3]:
        print(f"  [{move.state}] {move.date} — {move.status_description} at {move.location} ({move.terminal})")

# Check progress milestones and dates.
if shipment.progress:
    print(f"Sea progress: {shipment.progress.progression_on_sea}%")
if shipment.dates:
    print(f"ETA: {shipment.dates.estimated_time_of_arrival}")

# Handle a reference that does not exist.
try:
    missing = client.shipments.get(reference="XXXX0000000")
    print(f"Lookup returned found={missing.found}")
except NotFoundError as exc:
    print(f"Not found: {exc}")

print("exercised: shipments.get / route / moves / progress / dates / NotFoundError")
All endpoints · 1 totalmissing one? ·

Track a shipment by container number, bill of lading, or booking number. Returns detailed shipment tracking data including container status, route (port of loading, port of discharge), movement history (past, current, and provisional moves with vessel/voyage details), and progress indicators. The reference can be a container number (e.g. CMAU1043320), bill of lading number, or booking number.

Input
ParamTypeDescription
referencerequiredstringContainer number, bill of lading number, or booking number to track. Container numbers follow ISO 6346 format (4 letters + 7 digits, e.g. CMAU1043320). Multiple references (up to 3) can be comma-separated.
Response
{
  "type": "object",
  "fields": {
    "dates": "object with ISO datetime strings for key milestones",
    "found": "boolean indicating whether the shipment was found",
    "moves": "object with past_moves, current_moves, and provisional_moves arrays",
    "route": "object with port_of_loading, port_of_discharge, place_of_origin, final_place_of_delivery",
    "vessel": "object with vessel name and mode of transport",
    "progress": "object with progression percentages and completion flags",
    "bl_number": "bill of lading number",
    "reference": "the reference that was searched",
    "booking_number": "associated booking number",
    "container_size": "container size code",
    "container_type": "container type code",
    "additional_info": "object with collection/delivery addresses and remaining days",
    "container_status": "integer status code",
    "container_reference": "container number if found"
  },
  "sample": {
    "data": {
      "dates": {
        "empty_return_date": null,
        "loaded_on_board_time": null,
        "place_of_origin_date": null,
        "port_of_loading_date": "2025-12-09T04:10:00",
        "actual_time_of_arrival": null,
        "port_of_discharge_date": "2026-01-05T09:58:00",
        "estimated_time_of_arrival": "2026-01-05T09:58:00",
        "final_place_of_delivery_date": null
      },
      "found": true,
      "moves": {
        "past_moves": [
          {
            "date": "2025-12-05T17:08:00",
            "state": "DONE",
            "vessel": "",
            "voyage": "",
            "location": "COCHIN",
            "terminal": "CHAKIAT AGENCIES PVT. LTD., DEPOT",
            "location_code": "INCOK",
            "mode_of_transport": "TRUCK",
            "status_description": "Empty to shipper"
          }
        ],
        "current_moves": [
          {
            "date": "2026-01-21T12:00:00",
            "state": "CURRENT",
            "vessel": "",
            "voyage": "",
            "location": "FREMANTLE",
            "terminal": "ABC CONTAINERS PTY LTD",
            "location_code": "AUFRE",
            "mode_of_transport": "TRUCK",
            "status_description": "Empty in depot"
          }
        ],
        "provisional_moves": []
      },
      "route": {
        "place_of_origin": "",
        "port_of_loading": "INCOK",
        "port_of_discharge": "AUFRE",
        "final_place_of_delivery": "",
        "alternate_base_port_export": "",
        "alternate_base_port_import": ""
      },
      "vessel": {
        "name": null,
        "mode_of_transport": "TRUCK"
      },
      "progress": {
        "progression_on_sea": 100,
        "progression_pre_pol": 100,
        "progression_post_pod": 0,
        "is_final_delivery_done": true,
        "is_place_of_origin_done": true,
        "is_port_of_loading_done": true,
        "is_port_of_discharge_done": true
      },
      "bl_number": "",
      "reference": "CMAU1043320",
      "booking_number": "",
      "container_size": "22",
      "container_type": "G1",
      "additional_info": {
        "remaining_days": -166,
        "delivery_address": null,
        "collection_address": null,
        "empty_return_address": null,
        "empty_return_reference": ""
      },
      "container_status": 18,
      "container_reference": "CMAU1043320"
    },
    "status": "success"
  }
}

About the cnc-line.com API

The CNC Line API exposes 1 endpoint — get_shipment_tracking — that returns up to 10 structured response fields for any CNC Line shipment identified by container number, bill of lading, or booking number. Response data includes the full movement history (past, current, and provisional moves), port-to-port route details, vessel name, and a progress object showing how far along the shipment is toward final delivery.

What the API Returns

The get_shipment_tracking endpoint accepts a single reference parameter — a container number (ISO 6346 format), bill of lading number, or booking number — and returns a structured response covering the full lifecycle of the shipment. The found boolean tells you immediately whether the reference resolved to a live shipment record. Key fields include bl_number, booking_number, and container_size for identifying the shipment, plus a dates object with ISO datetime strings for milestone events such as departure and arrival.

Route and Vessel Data

The route object exposes port_of_loading, port_of_discharge, place_of_origin, and final_place_of_delivery, giving you the complete origin-to-destination picture for each shipment. The vessel object returns the vessel name and mode of transport, which is particularly useful when tracking multi-leg intra-Asia moves within the CMA CGM Group network.

Movement History and Progress

The moves object breaks movement history into three arrays: past_moves, current_moves, and provisional_moves. Each move entry includes vessel and voyage details, allowing you to reconstruct the shipment's full path and anticipate upcoming legs. The progress object provides numeric progression percentages alongside boolean completion flags, so you can build dashboards or alerting logic without parsing raw date strings.

Reliability & maintenanceVerified

The cnc-line.com API is a managed, monitored endpoint for www.cnc-line.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when www.cnc-line.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official www.cnc-line.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
2h ago
Latest check
1/1 endpoint passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Automatically update an internal TMS when a CNC Line container's current_moves changes
  • Trigger customer notifications when progress completion flags indicate a shipment has departed or arrived
  • Aggregate route data across multiple bookings to analyze port pair frequency for intra-Asia lanes
  • Cross-reference vessel details with a vessel schedule feed to estimate actual vs. expected arrival
  • Flag overdue shipments by comparing dates milestone timestamps against expected transit windows
  • Build a shipment visibility dashboard that surfaces provisional_moves to show upcoming port calls
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000250 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does CNC Line offer an official developer API?+
CNC Line does not publish a documented public developer API. The CNC Line website (cnc-line.com) provides a tracking interface for end users, but no official API credentials or documentation are available to third-party developers.
What does the `moves` object actually contain?+
The moves object contains three arrays: past_moves (completed legs), current_moves (the shipment's active position), and provisional_moves (planned future legs). Each entry includes vessel name, voyage identifier, and associated port information. This lets you reconstruct the full itinerary and flag which leg is currently in progress.
Can I search for multiple shipments in a single request?+
The get_shipment_tracking endpoint accepts one reference per call. Bulk or batch lookups across multiple container or BL numbers are not currently supported. You can fork this API on Parse and revise it to add a batch endpoint that accepts an array of references.
Does the API return estimated time of arrival (ETA) dates?+
The dates object contains ISO datetime strings for key milestones, but specific labeling of individual date fields (e.g., a dedicated ETA field) depends on what CNC Line exposes for each shipment. Not every field in the dates object is guaranteed to be populated for every shipment, particularly for future legs. You can fork the API on Parse and revise it to surface or rename specific date fields for your use case.
Is CNC Line tracking coverage limited to certain trade lanes?+
CNC Line operates as a CMA CGM Group carrier focused on intra-Asia trade lanes, so the tracking data reflects shipments on those routes. Shipments outside the CNC Line network — including mainline CMA CGM services or other group carriers — are not covered by this API. You can fork it on Parse and revise it to add endpoints for other CMA CGM Group carrier tracking pages.
Page content last updated . Spec covers 1 endpoint from www.cnc-line.com.
Related APIs in OtherSee all →
maersk.com API
Track your Maersk shipping containers in real-time, monitor vessel schedules and locations, and discover available routes between ports and countries. Access comprehensive port data, search for specific locations, and view detailed shipping route information to plan your logistics more effectively.
pexels.com API
Search and browse millions of free stock photos and videos on Pexels. Access trending content, photographer galleries, photo/video challenges, and search suggestions via a clean API.
powerball.com API
Check the latest Powerball drawing results, historical winning numbers, current jackpot amounts, and prize information all in one place. Browse past draws by date, view odds and prize breakdowns, and explore stories from winners to stay informed about your favorite lottery game.
pageviews.wmcloud.org API
Access Wikipedia pageview analytics across articles, languages, and time periods. Retrieve per-article view counts, top-viewed pages, cross-language traffic breakdowns, site-wide aggregates, category-level mass analysis, redirect traffic attribution, user contribution metrics, and Wikimedia Commons media request counts.
megamillions.com API
Check the latest Mega Millions winning numbers and jackpot amounts, browse historical drawings, and discover the top jackpots across participating lottery states. Stay updated on lottery results and track winning combinations whenever you need them.
lotteryusa.com API
Check the latest winning numbers and jackpot amounts across all US lotteries, and view detailed prize breakdowns by state and game. Stay updated on lottery results instantly without visiting multiple lottery websites.
identify.plantnet.org API
Identify and explore plant species by searching through Pl@ntNet's comprehensive botanical database to access detailed information like taxonomic families, genera, species descriptions, photos, and community observations. Track plant distributions, view contribution trends, and discover expert contributors within the platform's collaborative plant identification community.
bible.com API
Access Bible verses and chapters across multiple translations, retrieve daily devotional content, and build scripture-based applications with real-time data from Bible.com. Get specific verses, entire chapters, or the verse of the day to enhance your spiritual reading and study experience.