mPort Mappings API v0.1(beta)

Documentation for all of the mPort's APIs.

Base URLs

Environment Base URL

In the resources below all the URL are listed as relative URLs. Base URL has to be added to the relative URL to reach the endpoint.



Refer to the table for the supported OAuth flows.

OAuth2 Flow Authorization Code
OAuth endpoints
Authorization URL /oauth2/auth
Token URL /oauth2/token

OAuth2 Scopes

Scope Description
member:mapping:measurement:body:read Allows client to retrieve body measurements
member:mapping:measurement:health:read Allows client to retrieve health measurements
offline Allows client to use long lived refresh tokens


Do not implement OAuth2 flow yourself. OAuth is a popular protocol and a proven library exists for your programming language of choice.

For the list of the oauth2 server and client libraries see link.

For more details please refer to the specification:

Client App Requirements

Client App (Web, Mobile, Server) must satisfy following requirements:

  • App must be reachable via remote network call to complete OAuth flow
  • App must be able to follow HTTP redirects
  • Public app (SPAor Mobile) supports only Authorization Flow with Proof Key for Code Exchange (PKCE)

To register your client please email


To retrieve member's mapping data use the mPort GraphQL API.

To communicate with the GraphQL API, you'll need an OAuth token with the right scopes.

GraphQL API accepts only POST requests.

To query GraphQL using cURL, make a POST request with a JSON payload:

curl -H "Authorization: bearer token" -X POST -d " \
 { \
   \"query\": \"query { mappings { id }}\" \
 } \

Discover the GraphQL API Schema

Graphql Explorer -

GraphQL Explorer

To use GraphQL Explorer you must provide a valid access token.

You can query __schema to list all types defined in the schema and their details:

query {
  __schema {
    types {
        fields {

Below is the snapshot of some key API types

GraphQL API Types


The aggregate of the body measurements and health statistics
produced as a result of 3D body mapping
type Mapping {
  "Unique id of the 3D body mapping"
  id: ID!
  "Time of the occurrence of the 3D body mapping (UTC)"
  time: Time!
  "Collection of body measurements and health statistics"
  measurements: [Measurement!]!


Measurement represents a body measurement like height, weight, chest circumference, etc
or derived health statistics such as BMI, Body Fat Estimate and others
type Measurement {
  Immutable Name(grouping) of the measurement
  name: MeasurementName!
  Measurement pack: Body, Health
  Measurement can belong to more than one Measurement Pack
  packs: [MeasurementPack!]!
  Measurement value
  values: [MeasurementValueCollection!]!


Collection of the imperial and metric values of the measurement
type MeasurementValueCollection {
  "Display (user-friendly) label of the measurement "
  label: String!
  "Value of the measurement represented in the metric units"
  metric: MeasurementValue!
  "Value of the measurement represented in the imperial units"
  imperial: MeasurementValue!


Value (metric or imperial) of the measurement alongside the unit of measure
type MeasurementValue  {
  Value of the measurement
  Type of this field is string as some measurements(health statistics) cannot be represented as a number
  value: String!
  Unit of the measurement: kg, in, cm, etc
  unit: String!


You can also use a conventional REST style API to retrieve member's mappings statistics.

Please refer to OpenAPI spec below.


You are viewing REST API documentation.

This documentation is auto-generated from a swagger specification which itself is generated from annotations in the source code of the project.

It is possible that this documentation includes bugs and that code samples are incomplete or wrong.

OpenAPI Specification