Quickstart
Every planning request uses a bearer credential. Trial credentials have an expiry, allowed operations, rate limits, total request allowances, road-matrix work limits, and solve-time ceilings.
Before you start
You need curl and a bearer credential issued by Haladir. The examples below use synthetic operating data.
export SIMEONS_API_URL="https://api.simeons.haladir.com"
export SIMEONS_API_KEY="your-trial-key"
Keep the credential outside source control and application logs. The API never needs the source platform's PTV or Hexaly credentials.
Generate a driver manifest
The documentation service provides a synthetic one-day scenario because a complete operating snapshot is too large to make a useful inline shell example. It contains two customer deliveries, two Nuggets, one driver, and one lorry. Its dates are generated for the next operating day; it is not live business data.
curl --silent --show-error --fail \
--output manifest-request.json \
"$SIMEONS_API_URL/docs/examples/manifest-request.json"
curl --silent --show-error --fail-with-body \
--max-time 60 \
--request POST "$SIMEONS_API_URL/v1/manifests" \
--header "Authorization: Bearer $SIMEONS_API_KEY" \
--header "Content-Type: application/json" \
--data-binary @manifest-request.json \
--output manifest-response.json
A full manifest request is a batch solve and may take tens of seconds. The HTTP timeout should exceed the solve allowance shown by the trial-usage route.
The response contains one entry in manifests for each assigned driver, any unplanned_movements, technical evidence, and planning notices. If jq is installed, this command prints a short result summary:
jq '{
manifests: (.manifests | length),
unplanned_movements: (.unplanned_movements | length),
planning_engine: .evidence.planning_engine,
validation: .evidence.validation
}' manifest-response.json
For the supplied scenario, a successful result contains a driver manifest, no unplanned movements, and validation set to passed. Exact activity times can change with road data and solver improvements.
Check a proposed booking
The booking check uses the same operating snapshot plus new_movements. It is the bounded capacity check used before a full manifest replan.
curl --silent --show-error --fail \
--output booking-check-request.json \
"$SIMEONS_API_URL/docs/examples/booking-check-request.json"
curl --silent --show-error --fail-with-body \
--max-time 30 \
--request POST "$SIMEONS_API_URL/v1/booking-checks" \
--header "Authorization: Bearer $SIMEONS_API_KEY" \
--header "Content-Type: application/json" \
--data-binary @booking-check-request.json \
--output booking-check-response.json
Read Manifests and evidence before turning status into a booking decision: unknown does not mean that the booking is impossible.
Visual inspection
The Playground builds the same requests with a form, shows the exact JSON and cURL, submits the request, and renders the returned schedule. It uses synthetic data and does not change source-platform records.
See Authentication and trial limits for credential usage, Errors and retries for failure handling, or the API reference for every field.