BodySpec Partner Users API
Partner integration endpoints for user management
Partner integration endpoints for user management
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/bodyspec:bodyspec-partner-users-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: BodySpec Partner Users API
description: This API allows BodySpec users to integrate their DEXA scan data with other platforms.
license:
name: Proprietary
version: 0.18.2
servers:
- url: https://app.bodyspec.com
description: Production server
security:
- OAuth2:
- openid
- profile
- email
- BearerAuth: []
tags:
- name: Partner Users
description: Partner integration endpoints for user management
paths:
/api/v1/partners/{partner_id}/users:
get:
tags:
- Partner Users
summary: List partner users
description: Retrieve paginated list of users linked to the authenticated partner.
operationId: _list_partner_users_api_v1_partners__partner_id__users_get
security:
- HTTPBasic: []
- PartnerAuth: []
parameters:
- name: partner_id
in: path
required: true
schema:
type: string
description: Partner ID
title: Partner Id
description: Partner ID
- name: page
in: query
required: false
schema:
type: integer
minimum: 1
description: Page number (starts at 1)
default: 1
title: Page
description: Page number (starts at 1)
- name: page_size
in: query
required: false
schema:
type: integer
maximum: 100
minimum: 1
description: Items per page (max 100)
default: 20
title: Page Size
description: Items per page (max 100)
- name: link_time[eq]
in: query
required: false
schema:
anyOf:
- type: string
format: date-time
- type: 'null'
description: 'ISO 8601 datetime: link_time = value'
title: Link Time[Eq]
description: 'ISO 8601 datetime: link_time = value'
- name: link_time[gt]
in: query
required: false
schema:
anyOf:
- type: string
format: date-time
- type: 'null'
description: 'ISO 8601 datetime: link_time > value'
title: Link Time[Gt]
description: 'ISO 8601 datetime: link_time > value'
- name: link_time[gte]
in: query
required: false
schema:
anyOf:
- type: string
format: date-time
- type: 'null'
description: 'ISO 8601 datetime: link_time >= value'
title: Link Time[Gte]
description: 'ISO 8601 datetime: link_time >= value'
- name: link_time[lt]
in: query
required: false
schema:
anyOf:
- type: string
format: date-time
- type: 'null'
description: 'ISO 8601 datetime: link_time < value'
title: Link Time[Lt]
description: 'ISO 8601 datetime: link_time < value'
- name: link_time[lte]
in: query
required: false
schema:
anyOf:
- type: string
format: date-time
- type: 'null'
description: 'ISO 8601 datetime: link_time <= value'
title: Link Time[Lte]
description: 'ISO 8601 datetime: link_time <= value'
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/PartnerUsersListResponse'
example:
users:
- user_id: a5950beea2a7487fb79cfdbeb77fa555
email: user@example.com
first_name: Jane
last_name: Smith
phone: '+14155551234'
link_time: '2024-01-15T10:30:00Z'
pagination:
page: 1
page_size: 20
results: 1
has_more: false
'401':
description: Invalid partner authentication
'403':
description: Partner ID mismatch
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
type: object
required:
- loc
- msg
- type
title: ValidationError
x-internal: true
PartnerUsersListResponse:
properties:
users:
items:
$ref: '#/components/schemas/PartnerUserResponse'
type: array
title: Users
description: List of users linked to the partner
pagination:
$ref: '#/components/schemas/Pagination'
description: Pagination information
type: object
required:
- users
- pagination
title: PartnerUsersListResponse
description: Paginated partner users list response.
x-internal: true
Pagination:
properties:
page:
type: integer
title: Page
description: Current page number
page_size:
type: integer
title: Page Size
description: Number of items per page
results:
type: integer
title: Results
description: Number of results in this page
has_more:
type: boolean
title: Has More
description: Whether more results exist after this page
type: object
required:
- page
- page_size
- results
- has_more
title: Pagination
description: Pagination information for list responses.
x-internal: true
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
x-internal: true
PartnerUserResponse:
properties:
user_id:
type: string
title: User Id
description: Unique identifier for the user
email:
type: string
format: email
title: Email
description: User's email address
first_name:
anyOf:
- type: string
- type: 'null'
title: First Name
description: User's first name
last_name:
anyOf:
- type: string
- type: 'null'
title: Last Name
description: User's last name
phone:
anyOf:
- type: string
- type: 'null'
title: Phone
description: Phone number in E.164 format
examples:
- '+14155551234'
link_time:
type: string
format: date-time
title: Link Time
description: UTC timestamp when user was linked to partner
type: object
required:
- user_id
- email
- link_time
title: PartnerUser
description: User model for partner API responses, includes link_time.
securitySchemes:
OAuth2:
type: oauth2
description: OAuth2 authentication via Keycloak with PKCE
flows:
authorizationCode:
authorizationUrl: https://auth.bodyspec.com/realms/bodyspec/protocol/openid-connect/auth
tokenUrl: https://auth.bodyspec.com/realms/bodyspec/protocol/openid-connect/token
scopes:
openid: OpenID Connect scope
profile: Access to user profile
email: Access to user email
x-usePkce: SHA-256
x-scalar-client-id: bodyspec-api-ext-v1
BearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
description: JWT Bearer token for authentication
PartnerAuth:
type: http
scheme: basic
description: For partner integrations only. Contact BodySpec to obtain credentials.
x-tagGroups:
- name: 👤 User Data
tags:
- Users
- Appointments
- Results
- name: 📅 Availability
tags:
- Locations
- Services
- Availability
- name: 🤝 Partners
tags:
- Reservations
- Partner Users
- Partner Appointments
- Partner Results
- Partner Intake
- Partner Orders
- Partner Webhooks
- name: 🏥 API Status
tags:
- API Status