canonical: https://jentic.com/apis/1fit.com/1fit

# 1FIT Zapier Webhook API

Jentic publishes the only available OpenAPI specification for 1FIT Zapier Webhook API, keeping it validated and agent-ready. The 1FIT Zapier Webhook API connects external automation tools to a personal trainer's 1FIT account, letting third-party systems register a Zapier connection, validate it, and post lifecycle events into 1FIT through a user-scoped webhook URL. It accepts a fixed set of event types covering client and prospect creation, client activation and deletion, check-in submissions, activity logs, and completed workouts. Authentication is a JWT bearer token, and every event uses a shared envelope with an event name, timestamp, and event-specific data block.

## For AI agents

Register a Zapier connection for a 1FIT trainer account and post client, prospect, check-in, activity, and workout events into 1FIT through user-scoped webhook URLs.

## Scope

Does not handle payments, scheduling, workout program design, or messaging - use only for delivering Zapier-routed lifecycle, activity, check-in, and workout events into a 1FIT trainer account.

## Capabilities

- Register a Zapier connection for a 1FIT account using key, secret, and endpoint identifiers
- Validate that an existing Zapier connection and its credentials are still working
- Post a client.created or prospect.created event with name, email, mobile, and check-in cadence into 1FIT
- Send activity.logged events with duration, distance, heart rate, and calories from a connected fitness tool
- Forward workout.completed events with rated workouts, exercises, and elapsed time into a trainer's 1FIT workspace
- Deliver checkin.submitted and client lifecycle events (activated, deleted) to keep 1FIT client records in sync

## Use cases

### Sync new clients from a sales tool into 1FIT

When a personal trainer closes a deal in an external CRM, an automation can post a client.created event to the 1FIT Zapier webhook with first name, last name, email, mobile, and check-in cadence. 1FIT receives the payload via the user-scoped webhook URL returned at connection setup and creates the client record without manual entry. This removes the duplicate data work between sales pipelines and the trainer's coaching platform.

Example prompt: Call POST /api/integrations/webhooks/zapier/{endpoint} with event=client.created and a CreateClientData payload containing first_name, last_name, email, mobile, and checkin_frequency=weekly

### Forward fitness tracker activity into 1FIT

When a client completes a session in a third-party fitness app, an automation can send an activity.logged event to 1FIT with the activity name, duration in seconds, distance in meters, average heart rate, and calories. 1FIT uses the user's webhook endpoint to attribute the activity to the right client by email or mobile. This lets trainers review external workout data inside 1FIT alongside their own check-ins.

Example prompt: Call POST /api/integrations/webhooks/zapier/{endpoint} with event=activity.logged and an ActivityLoggedData payload containing email, activity, duration, distance, hr, and calories

### Capture check-in submissions from external forms

When a client submits a weekly check-in through an external form tool, an automation can post a checkin.submitted event to 1FIT with the client's contact details and submission timestamp. 1FIT records the check-in against the matching client so the trainer sees it in their normal check-in review flow. This is useful when a coach prefers a form builder for the questionnaire itself but wants the response logged in 1FIT.

Example prompt: Call POST /api/integrations/webhooks/zapier/{endpoint} with event=checkin.submitted and a CheckinSubmittedData payload containing email, requested_at, and submitted_at

### AI agent integration via Jentic

An AI assistant for a personal training business can use the 1FIT Zapier Webhook API through Jentic to register a connection on behalf of a trainer and then route client lifecycle events from upstream tools into 1FIT. The agent searches Jentic for an intent like sync a client into 1FIT, loads the schema for receiveZapierWebhook, and posts each event with the correct envelope. The bearer token is stored in your Jentic One instance, so the agent never sees the raw JWT.

Example prompt: Search Jentic for sync a client lifecycle event into 1FIT, load the receiveZapierWebhook schema, and execute a POST to /api/integrations/webhooks/zapier/{endpoint} with event=client.activated

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /api/integrations/connections/zapier/setup | Register a Zapier connection and receive the user webhook URL |
| POST | /api/integrations/connections/zapier/test | Validate that a Zapier connection is still working |
| POST | /api/integrations/webhooks/zapier/{endpoint} | Receive a Zapier event (client, prospect, activity, check-in, workout) |

## Key resources

- **Zapier Connections** — Register a new Zapier connection for a 1FIT user (returns the user-scoped webhook URL) and test that the connection is still valid.
- **Zapier Webhooks** — Receive Zapier event payloads at the user-scoped webhook URL for client.created, client.activated, client.deleted, prospect.created, activity.logged, checkin.submitted, and workout.completed.

## Why Jentic

- **Setup:** Wiring the 1FIT Zapier Webhook API by hand means managing its bearer token, wiring up the Zapier connection setup and test steps, and shaping the webhook envelope yourself. Through Jentic you install once, import the 1FIT Zapier Webhook API from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** The 1FIT API carries its target in the request body and endpoint segment rather than a resource id you own, so limit the agent to the operations it needs, such as testing a connection, and leave out live webhook delivery unless you add it. You choose the allowed set, so only the operations you pick can run.
- **Credential handling:** Your 1FIT bearer token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'sync a client into 1FIT' or 'post a workout completed event', and Jentic returns the matching 1FIT operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Zapier Natural Language Actions** — Zapier's automation layer that fires the events this 1FIT API is designed to receive.
- **HubSpot CRM Contacts** — Source of new client and prospect records that can be forwarded into 1FIT.
- **Mindbody Public API** — Broader fitness business platform covering booking, payments, and client records.
- **Calendly API** — Books the consultation that becomes a 1FIT prospect.

## FAQ

### Why is there no official OpenAPI spec for 1FIT Zapier Webhook API?

1FIT does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call 1FIT Zapier Webhook API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the 1FIT Zapier Webhook API use?

The API uses HTTP bearer authentication with a JWT. Every request to /api/integrations/connections/zapier/setup, /api/integrations/connections/zapier/test, and /api/integrations/webhooks/zapier/{endpoint} requires an Authorization: Bearer <jwt> header. When called through Jentic, the JWT is stored in your Jentic One instance and injected at execution time so the agent never handles the raw token.

### Can I post completed workouts and activities to 1FIT through this API?

Yes. POST /api/integrations/webhooks/zapier/{endpoint} accepts event=workout.completed with a WorkoutCompletedData payload (workout name, rating, started_at, completed_at, duration, exercises) and event=activity.logged with an ActivityLoggedData payload (activity, duration, distance, hr, calories). Both are routed to the trainer who owns the {endpoint} identifier returned at setup.

### What event types does the webhook endpoint accept?

The WebhookEnvelope schema enumerates seven event types: activity.logged, checkin.submitted, client.activated, client.created, client.deleted, prospect.created, and workout.completed. Any other event value is rejected with a 400 response.

### What are the rate limits for the 1FIT Zapier Webhook API?

The OpenAPI specification does not define explicit rate limits. Treat the webhook endpoint as a per-user ingest channel and batch unrelated events on the client side. If 1FIT introduces limits in the future, retry on 429 responses with exponential backoff.

### How do I register a Zapier connection for 1FIT through Jentic?

Run pip install jentic, then search for register a 1FIT zapier connection. Jentic returns the setupZapierConnection operation; load its schema and execute it with a ConnectionSetupRequest containing key_id, secret, and endpoint_id. The 200 response includes the user-scoped endpoint value to use in subsequent webhook calls.

### Can I limit what my agent is allowed to do with the 1FIT Zapier Webhook API?

Yes. Because you run Jentic One yourself, your own rules decide which of the API's three operations the agent may call and which bearer token it uses. You can allow just the read-only checks, such as registering or testing a Zapier connection, while withholding live webhook delivery to POST /api/integrations/webhooks/zapier/{endpoint} for client, prospect, activity, check-in, and workout events. Only the operations you pick can run, so the agent cannot post events into a trainer's 1FIT account unless you grant that.
