generated: '2026-07-18' method: derived source: https://api.comma.ai notes: >- Entity graph derived from the documented comma connect API resource surface (no OpenAPI is published). Relationships inferred from path structure and id-reference fields (dongle_id, route_name). entities: - name: User id_field: id endpoints: - GET /v1/me/ - GET /v1/me/devices/ description: The authenticated comma account. - name: Device id_field: dongle_id endpoints: - GET /v1.1/devices/{dongle_id}/ - PATCH /v1/devices/{dongle_id}/ - GET /v1/devices/{dongle_id}/location - GET /v1.1/devices/{dongle_id}/stats - GET /v1/devices/{dongle_id}/users - GET /v1/devices/{dongle_id}/bootlogs - GET /v1/devices/{dongle_id}/crashlogs description: A comma / openpilot hardware unit (dongle) owned by a user. - name: Route id_field: route_name endpoints: - GET /v1/route/{route_name}/ - GET /v1/route/{route_name}/segments - GET /v1/route/{route_name}/files description: A recorded drive, identified as {dongle_id}|{timestamp}. - name: Segment id_field: segment endpoints: - GET /v1/devices/{dongle_id}/segments description: A ~1-minute slice of a route with video, GPS and event data. - name: Location id_field: id endpoints: - GET /v1/navigation/{dongle_id}/locations - PUT /v1/navigation/{dongle_id}/locations - PATCH /v1/navigation/{dongle_id}/locations - DELETE /v1/navigation/{dongle_id}/locations description: A saved navigation destination for a device. - name: Subscription id_field: dongle_id endpoints: - GET /v1/prime/subscription - POST /v1/prime/pay - GET /v1/prime/payment_source - POST /v1/prime/cancel description: comma prime subscription and billing state for a device. relationships: - from: User to: Device type: has_many via: dongle_id - from: Device to: Route type: has_many via: dongle_id - from: Route to: Segment type: has_many via: route_name - from: Device to: Segment type: has_many via: dongle_id - from: Device to: Location type: has_many via: dongle_id - from: Device to: Subscription type: has_one via: dongle_id - from: Device to: User type: has_many via: add_user/del_user access grants