GymLinx REST API

Build custom integrations with your gym management platform. The GymLinx API provides programmatic access to members, classes, payments, check-ins, and more.

Base URL

https://api.gymlinx.com/v1

Authentication

All API requests require a Bearer token in the Authorization header. Generate API keys at Settings → API → Generate Key in your dashboard.

Example Header
Authorization: Bearer your_api_key_here

API keys have scoped permissions — you choose which resources each key can access (members.read, payments.write, etc.).

Rate Limits

Plan Limit Headers
Starter 100 req/min X-RateLimit-Limit, X-RateLimit-Remaining
Professional 500 req/min X-RateLimit-Limit, X-RateLimit-Remaining
Enterprise Custom X-RateLimit-Limit, X-RateLimit-Remaining
GET /v1/members

List Members

Returns a paginated list of members for your organization. You can filter the results by branch or search for specific member names.

Requires scope: members.read

Parameters

limit Optional integer Default: 20

Number of records to return per page. Maximum value is 100.

offset Optional integer Default: 0

The number of items to skip before starting to collect the result set.

branch_id Optional UUID

Filter members belonging to a specific gym branch.

search Optional string

Search members by name or email.

Request

curl -X GET "https://api.gymlinx.com/v1/members?limit=20" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json"
GET /v1/classes

List Classes

Returns upcoming classes with schedule, instructor, and capacity information. Filter by branch, date range, or instructor.

Requires scope: classes.read

Parameters

branch_id Optional UUID

Filter classes by branch.

from Optional date

Start date (ISO 8601). Defaults to today.

to Optional date

End date (ISO 8601). Defaults to 7 days from now.

instructor_id Optional UUID

Filter by instructor.

Request

curl -X GET "https://api.gymlinx.com/v1/classes?limit=20" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json"
GET /v1/payments

List Payments

Returns transaction history with amounts, statuses, and member details. Filter by date range, status, or member.

Requires scope: payments.read

Parameters

status Optional string

Filter by status: succeeded, failed, refunded, pending.

member_id Optional UUID

Filter transactions for a specific member.

from Optional date

Start date for transaction range.

to Optional date

End date for transaction range.

Request

curl -X GET "https://api.gymlinx.com/v1/payments?limit=20" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json"
GET /v1/check-ins

List Check-ins

Returns check-in records with timestamps, member details, and branch information. Useful for attendance analytics.

Requires scope: check_ins.read

Parameters

branch_id Optional UUID

Filter check-ins by branch.

member_id Optional UUID

Filter check-ins for a specific member.

date Optional date

Filter by specific date (ISO 8601).

Request

curl -X GET "https://api.gymlinx.com/v1/check-ins?limit=20" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json"

Webhooks

Configure webhooks to receive real-time notifications when events occur in your gym. Set up webhook endpoints at Settings → API → Webhooks.

Available Events

member.created
member.updated
member.deleted
payment.succeeded
payment.failed
class.booked
class.cancelled
check_in.created

SDKs

Official client libraries for popular languages. All SDKs are open source and available on GitHub.

JavaScript / TypeScript

npm install @gymlinx/sdk

Python

pip install gymlinx

PHP

composer require gymlinx/sdk

Error Codes

Code Message Description
400 bad_request The request body or parameters are invalid.
401 unauthorized Invalid or expired API key.
403 forbidden Scope insufficient for this resource.
404 not_found The requested resource does not exist.
429 rate_limit_exceeded Too many requests in a given window.
500 internal_error An unexpected error occurred. Contact support.

Need help?

Connect with our integration team for dedicated support.

Contact Support