Skip to main content

Documentation Index

Fetch the complete documentation index at: https://enfinitos.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

The Robotics SDK is the reference client for fleets that move through physical or aerial space. The Drone SDK extends it with the airspace-specific machinery FAA Part 89 and equivalents require.
Publish at launch. Both the Robotics SDK and the Drone SDK publish at the April 2027 production launch. Sandbox access is available now at enfinitos.com/apply. The sandbox base URL is https://sandbox.api.enfinitos.com; the production URL https://api.enfinitos.com is shown in code examples below for reference.

Robotics

npm install @enfinitos/sdk-robotics       # TypeScript
pip install enfinitos-sdk-robotics         # Python
Both implementations expose the same shape — an EnfinitOSRobotClient that:
  • Subscribes to operator policy updates (push, not poll).
  • Reports a typed telemetry heartbeat (pose, battery, kinematic state).
  • Enforces a kinematic envelope against the BehaviouralConstraint.ROBOTICS rule set.
  • Surfaces an emergency-stop primitive on a separate code path.
Python is the most-used language in real robotic fleets (Starship, Nuro, ROS 2). The Python SDK is the one most customers will start with.

Drone — composition, not inheritance

The Drone SDK composes the Robotics SDK; it does not extend it. A EnfinitOSDroneClient wraps a RobotClientLike and adds airspace concerns:
  • Pre-flight airspace check against NOTAMs, behavioural rules, and BVLOS waivers.
  • Remote ID broadcast per ASTM F3411-22a (FAA Part 89 / EASA Implementing Regulation 2019/947).
  • NOTAM polling with provider skeletons for FAA / CAA / EASA.
  • BVLOS waiver verification before takeoff.
  • In-flight corridor check — is the drone inside the planned corridor, given the time window?
npm install @enfinitos/sdk-drone
const drone = new EnfinitOSDroneClient({
  apiBaseUrl: "https://api.enfinitos.com",
  fleetId: "fleet_...",
  droneId: "drone_...",
  airframe: { /* mass, max speed, Remote ID serial */ },
  operatingAreaCentre: { lat, lng },
  operatingAreaRadiusM: 5000,
  operatingAreaAuthorities: ["FAA"],
  waivers: [/* BVLOS waivers */],
  robotClient: existingRoboticsClient, // composed, not inherited
});

await drone.connect();
await drone.checkAirspace(planClaim);
drone.startRemoteIdBroadcast();
See the Drone SDK README for the full surface.