For Agents
Query, upload, and edit fitness activities, gear, laps, and media in a self-hosted Endurain workspace.
Use for: I need to upload a new activity file to my Endurain account, List all my activities for this week, Find every activity logged against a specific bike, Get the laps recorded for a given activity
Not supported: Does not handle real-time GPS streaming, payments, or social-feed publishing - use for managing activities, gear, laps, and media in a self-hosted Endurain instance only.
Jentic publishes the only available OpenAPI specification for Endurain, keeping it validated and agent-ready. Endurain is a self-hosted activity and fitness-tracking platform. The API exposes activities, gear, exercise titles, laps, and media uploads, scoped per user and supporting bulk imports of activity files. Athletes and self-hosters use it to query their training history, attach media to activities, and sync activities programmatically with other tools.
Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Endurain, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fendurain.com%2Fendurain" | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fendurain.com%2Fendurain" | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with Endurain API.
List a user's activities filtered by week, month, or pagination
Upload an activity file or perform a bulk import of activities
Edit an activity's metadata or change its visibility
Attach and remove media files on a given activity
Query gear-linked activities to track equipment usage
GET STARTED
Patterns agents use Endurain API for, with concrete tasks.
★ Activity Upload from a Watch Sync
When a fitness watch finishes a workout, an agent uploads the file via POST /api/v1/activities/create/upload so the activity is parsed and stored in Endurain. Bulk catch-up after a gap is handled by POST /api/v1/activities/create/bulkimport. This makes Endurain a destination for athletes who want to keep their data in a self-hosted system instead of a closed cloud.
Upload an FIT file for today's run and confirm the activity was created with non-zero distance
Training History Reporting
Build a weekly or monthly training summary using GET /api/v1/activities/user/{user_id}/week/{week_number} and GET /api/v1/activities/user/{user_id}/thismonth/distances. Athletes get a quick recap and coaches can pull the same view across multiple users. The endpoints are paginated for higher-volume reporting.
Return the total distance and activity count for user_id 5 for the current month
Gear Tracking
Use GET /api/v1/activities/gear/{gear_id} and GET /api/v1/activities/gear/{gear_id}/number to track lifetime mileage and activity count on a specific bike or pair of shoes, so an athlete knows when to replace gear before failure.
Return total distance and activity count for gear_id 3 to determine whether it has crossed a 500 km wear threshold
Agent-Driven Training Assistant
An AI training assistant searches Jentic for 'list this week's activities', loads the Endurain operation, and answers user questions like 'how much did I run this week?' without requiring a custom Endurain client. Editing activity visibility or metadata can be chained into the same agent turn.
When asked 'how much did I run this week?', call the week-distance endpoint for the current user and return the total in km
171 endpoints — jentic publishes the only available openapi specification for endurain, keeping it validated and agent-ready.
METHOD
PATH
DESCRIPTION
/api/v1/activities/{activity_id}
Get an activity by ID
/api/v1/activities/create/upload
Create an activity from an uploaded file
/api/v1/activities/create/bulkimport
Bulk import activities
/api/v1/activities/edit
Edit an activity
/api/v1/activities/{activity_id}/delete
Delete an activity
/api/v1/activities/user/{user_id}/week/{week_number}
List a user's activities for a specific week
/api/v1/activities_media/upload/activity_id/{activity_id}
Upload media for an activity
/api/v1/activities/{activity_id}
Get an activity by ID
/api/v1/activities/create/upload
Create an activity from an uploaded file
/api/v1/activities/create/bulkimport
Bulk import activities
/api/v1/activities/edit
Edit an activity
/api/v1/activities/{activity_id}/delete
Delete an activity
/api/v1/activities/user/{user_id}/week/{week_number}
List a user's activities for a specific week
/api/v1/activities_media/upload/activity_id/{activity_id}
Upload media for an activity
What agents get from Jentic-routed access to this vendor.
Setup
Wiring Endurain by hand means running its OAuth2 password flow for a bearer token alongside an X-Client-Type header, pointing at your self-hosted instance rather than a fixed host, and building your own error handling across its 171 operations. Through Jentic you install once, import Endurain from the API Directory, store the credentials once, and your agent calls it.
Permission scoping
Endurain puts the activity id in the URL path (/api/v1/activities/{activity_id}), so a rule can pin your agent to one activity: it can read that activity and nothing else. You choose the operations it may call, so ones like editing, deleting, or bulk-importing activities are not included unless you add them.
Credential isolation
Your Endurain credentials are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
Intent-based discovery
Agents search Jentic by intent such as 'read a training activity' or 'upload a new activity file', and Jentic returns the matching Endurain operation with its input schema so the agent calls the right endpoint without browsing the reference docs.
Alternatives and complements available in the Jentic catalogue.
Specific to using Endurain API through Jentic.
Why is there no official OpenAPI spec for Endurain?
Endurain ships its OpenAPI spec with the application, but Jentic publishes the curated, validated version against the public corpus so AI agents and developers can call Endurain via structured tooling. It is kept up to date against the live API. Get started with Jentic One, the self-hosted execution layer.
What authentication does the Endurain API use?
Endurain supports OAuth2 password-bearer tokens, API key headers, and API key cookies. Through Jentic, the chosen credential is stored encrypted in the vault and supplied to the request at execution time.
Can I bulk-import activities into Endurain?
Yes. POST /api/v1/activities/create/bulkimport accepts a batch of activity files in one call. Use POST /api/v1/activities/create/upload for single-activity uploads.
Why does the spec list a localhost server URL?
Endurain is self-hosted, so the spec ships with `http://localhost:8080` as the default. When calling a deployed instance, override the base URL to your own domain - for example `https://endurain.example.com`.
What are the rate limits for the Endurain API?
Endurain is self-hosted, so rate limits depend entirely on your deployment. There are no spec-declared limits; tune your reverse proxy or app server if you need throttling.
How do I upload an activity through Jentic?
Run `pip install jentic`, search 'upload an endurain activity file', and Jentic returns POST /api/v1/activities/create/upload with its input schema. Configure your deployed Endurain base URL and the agent can execute the upload.
Can I limit what my agent is allowed to do with the Endurain API?
Yes. Because you run Jentic One yourself, your own rules decide which Endurain operations and credentials the agent may use. Since the activity id sits in the URL path (/api/v1/activities/{activity_id}), you can pin the agent to a single activity so it reads that activity and nothing else. You also choose the operations it can call, so editing, deleting, and bulk-importing activities stay off unless you add them.