Platform · API

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 records

Reference

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.