Getting started with the API
Hullproof is API-first. Every UI surface consumes the same endpoints third parties use. No SDK required — curl, Python, JavaScript, or any HTTP client works. OpenAPI 3.1 spec is published live for code generators.
60-second quickstart
# 1. Discover what's there curl https://hullproof.com/api/passports # 2. Fetch a passport JSON (use 'demo-offshore-jacket-001' to start) curl https://hullproof.com/api/passports/demo-offshore-jacket-001 # 3. Get the same passport as Cognite CDF Asset + Events JSON curl https://hullproof.com/api/passports/demo-offshore-jacket-001/cdf # 4. Get the OpenAPI 3.1 spec for code generators curl https://hullproof.com/api/openapi
Every export channel
Same passport, different rendering. Choose the one your downstream stack expects.
# All export channels for a passport — same data, different format curl https://hullproof.com/api/passports/demo-offshore-jacket-001 # Canonical JSON curl https://hullproof.com/api/passports/demo-offshore-jacket-001/pdf # Audit-ready PDF curl https://hullproof.com/api/passports/demo-offshore-jacket-001/cdf # Cognite Data Fusion curl https://hullproof.com/api/passports/demo-offshore-jacket-001/osdu # OSDU InspectionRecord curl https://hullproof.com/api/passports/demo-offshore-jacket-001/rdf # RDF / Turtle curl https://hullproof.com/api/passports/demo-offshore-jacket-001/veracity # DNV Veracity Exchange # Vessel-only export channels curl https://hullproof.com/api/passports/demo-vessel-hull-001/eu-ets # EU ETS / IMO CII bundle curl https://hullproof.com/api/passports/demo-vessel-hull-001/bimco # BIMCO biofouling rating
MCP / agent discovery
Claude, GPT, Cognite Atlas AI, and other LLM agents call Hullproof as a tool. Tool list, asset-type catalogue, and JSON Schema are all live endpoints.
# MCP-compatible tool discovery (no SDK required) curl https://hullproof.com/api/mcp/tools # Tool list + descriptions curl https://hullproof.com/api/mcp/asset-types # All 13 verticals + standards curl https://hullproof.com/api/mcp/schema/coating-passport # Live JSON Schema # Platform stats — live count of verticals, fixtures, integrations curl https://hullproof.com/api/stats
Push your own passport
External inspection pipelines can push CoatingPassport JSON into Hullproof via POST /api/passports. Persisted to Firestore, validated against Zod, retrievable via the standard GET + export endpoints.
# POST a CoatingPassport (e.g. from your own inspection pipeline) curl -X POST https://hullproof.com/api/passports \ -H 'Content-Type: application/json' \ --data-binary @my-passport.json # Validation against the Zod schema is strict; invalid payloads return # 422 with structured error issues. See /api/mcp/schema/coating-passport # for the canonical schema.
Python (httpx)
import httpx
# Fetch a passport
r = httpx.get("https://hullproof.com/api/passports/demo-offshore-jacket-001")
passport = r.json()
# Get the same passport as a Cognite CDF payload
r = httpx.get(f"https://hullproof.com/api/passports/{passport['passport_id']}/cdf")
cdf_payload = r.json()
# cdf_payload["asset"] -> ready for cognite_client.assets.create(...)
# cdf_payload["events"] -> ready for cognite_client.events.create(events)JavaScript (fetch)
// Fetch a passport
const r = await fetch("https://hullproof.com/api/passports/demo-offshore-jacket-001");
const passport = await r.json();
// Get the OSDU export
const osduRes = await fetch(`https://hullproof.com/api/passports/${passport.passport_id}/osdu`);
const osdu = await osduRes.json();
// osdu.inspection -> InspectionRecord ready to POST to your OSDU instance
// osdu.observations -> ConditionObservation recordsReference
- OpenAPI 3.1 spec — feed into code generators (openapi-typescript, openapi-python-client, Postman).
- CoatingPassport JSON Schema — Zod-derived, always live, current schema_version.
- Coverage matrix — which verticals × integration channels are wired.
- Why CoatingPassport — design principles, tradeoffs, what this means for buying.
- Security & compliance — data handling, auth, EU AI Act, GDPR.
Need tenant-scoped access?
Demo passports are open + cacheable. For tenant-isolated production passports, contact us — API keys + scoped access land on a per-tenant basis.