canonical: https://jentic.com/apis/join.me/joinme

# join.me API

join.me is a screen-sharing and online-meeting service from LogMeIn that lets teams launch instant or scheduled meetings without forcing participants to install software. The API exposes endpoints to start ad-hoc meetings, schedule and manage future meetings, and read user profile data so that calendar tools, CRMs, and support apps can spin up join.me sessions inline. It is well suited to embedding meeting links in customer workflows where a quick voice or screen-share is needed.

## For AI agents

Start instant join.me meetings, schedule and update future meetings, and look up the authenticated user's profile so agents can drop a meeting link into a chat, ticket, or calendar invite.

## Scope

Does not handle in-meeting recording management, webinar registration, or telephony billing - use for meeting creation, scheduling, and user profile lookup only.

## Capabilities

- Start an instant join.me meeting and return its join URL for embedding in chat or email
- Schedule a future meeting with start time, subject, and conference dial-in details
- Update or cancel an upcoming meeting when calendar events shift
- List the authenticated user's scheduled meetings within a time window
- Launch a previously scheduled meeting on demand from an inbound trigger
- Read the signed-in user's profile to populate meeting host metadata

## Use cases

### Embed meeting links in support tickets

Support agents working in a help desk can spin up a join.me session directly from a ticket without leaving the tool. The API's meeting start endpoint returns a join URL that can be posted into the ticket reply and shared with the customer in seconds. Integration is a single POST and no scheduling logic is required.

Example prompt: Call POST `/meetings/start` to create an instant meeting and post the returned join URL as a customer reply in the active support ticket

### Calendar-driven meeting scheduling

Sales and customer success teams can sync calendar events to join.me by creating scheduled meetings programmatically when a calendar invite is booked. The API persists subject, start time, and meeting metadata so links remain stable across reschedules. This avoids the manual click-through to the join.me dashboard for every appointment.

Example prompt: Call POST /meetings with subject 'Discovery Call' and start time 2026-07-12T14:00:00Z, then store the returned meeting URL on the calendar event

### Bulk meeting hygiene and clean-up

Operations teams can audit a host's upcoming schedule and clear stale or duplicated meetings with the list and delete endpoints. Listing meetings with a date filter surfaces orphaned events from cancelled deals or churned customers, and a single DELETE removes each one. This keeps the calendar surface clean for hosts juggling many concurrent prospects.

Example prompt: Call GET /meetings to list this user's upcoming meetings, then call DELETE `/meetings/{meetingId}` for any meeting whose subject contains 'CANCELLED'

### Agent-triggered meeting creation via Jentic

AI assistants can use Jentic to find and call the join.me start endpoint without storing API keys in agent memory. The agent sends a natural-language intent like 'start a meeting now', Jentic resolves it to POST `/meetings/start`, injects the credential at execution time, and returns the join URL for the agent to share. Total latency is one Jentic round-trip.

Example prompt: Use Jentic to search for 'start a join.me meeting', load the operation schema, and execute it with the user's stored join.me credential to return a fresh meeting URL

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/meetings/start` | Start a new instant meeting |
| POST | `/meetings` | Schedule a new meeting |
| GET | `/meetings` | List the user's scheduled meetings |
| GET | `/meetings/{meetingId}` | Get a specific scheduled meeting |
| PATCH | `/meetings/{meetingId}` | Update a scheduled meeting |
| DELETE | `/meetings/{meetingId}` | Delete a scheduled meeting |
| POST | `/meetings/{meetingId}/start` | Start a previously scheduled meeting |
| GET | `/user` | Get the authenticated user's profile |

## Key resources

- **Meetings** — Create, list, update, delete, and start instant or scheduled join.me meetings
- **User** — Read profile data for the authenticated join.me account

## Why Jentic

- **Setup:** Wiring join.me by hand means learning its X-API-Key header, wiring up the OAuth2 flow for user-scoped calls, and managing meeting lifecycle state yourself. Through Jentic you install once, import the join.me API from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** join.me puts the meeting id in the URL path (`/meetings/{meetingId}`), so a rule can pin your agent to one meeting: it can read and update that meeting and nothing else. You choose the operations it may call, so destructive ones like deleting a meeting are not included unless you add them.
- **Credential handling:** Your join.me API key and OAuth tokens 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.
- **Discovery method:** Agents search Jentic by intent such as 'start a meeting' or 'schedule a join.me call', and Jentic returns the matching join.me operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Zoom Meetings API** — Larger ecosystem and richer meeting features than join.me, with broader webinar and recording APIs
- **Webex API** — Enterprise meeting and messaging platform with comparable scheduling endpoints
- **Slack API** — Post the join.me link generated by the API into a Slack channel or DM
- **BigBlueButton API** — Open-source web conferencing alternative for self-hosted deployments

## FAQ

### What authentication does the join.me API use?

The join.me API supports an API key passed in the X-API-Key header and OAuth 2.0 for user-context flows. Through Jentic, credentials are stored in the encrypted vault and injected at call time, so neither the raw API key nor a refresh token enters the agent's prompt context.

### Can I schedule a join.me meeting through the API?

Yes. POST /meetings creates a scheduled meeting with a start time and subject, GET /meetings lists upcoming meetings for the host, and PATCH `/meetings/{meetingId}` updates them. To run a scheduled meeting on demand, call POST `/meetings/{meetingId}/start.`

### What are the rate limits for the join.me API?

join.me does not publish a fixed numeric rate limit in the spec. In practice the service throttles bursty calls per API key; treat creation endpoints as low-volume and back off on HTTP 429. Check developer.join.me for the current published limits before designing high-frequency integrations.

### How do I start an instant meeting through Jentic?

Search Jentic for 'start a join.me meeting', load the POST `/meetings/start` operation, and execute it. Jentic returns the join URL from the response so the agent can paste it into chat, email, or a CRM note. Get started with Jentic One, the self-hosted execution layer.

### Is the join.me API free to use?

API access is bundled with paid join.me business plans. There is no public free tier for the API, and account-level limits on concurrent meetings and participants apply to API-created meetings the same as UI-created ones.

### Can I retrieve a list of a user's scheduled meetings?

Yes. GET /meetings returns the authenticated user's scheduled meetings; GET `/meetings/{meetingId}` returns a single meeting by ID. Pair this with DELETE `/meetings/{meetingId}` to clean up stale entries.

### Can I limit what my agent is allowed to do with the join.me API?

Yes. Jentic One is self-hosted by you, so your own rules decide which join.me operations and credentials the agent may use. Because join.me puts the meeting id in the URL path (`/meetings/{meetingId}`), a rule can pin the agent to a single meeting so it can read and update that one meeting and nothing else. You also choose the exact operations it may call, so destructive ones like DELETE `/meetings/{meetingId}` stay off limits unless you add them.
