> For the complete documentation index, see [llms.txt](https://docs.prismlabs.tech/api-reference/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.prismlabs.tech/api-reference/prism-hosted-api/scans.md).

# Scans

#### Create and manage body scans for users.

Each scan generates body measurements, body composition metrics, various 3D and image assets, and can further generate **Future Me** predictions. Scans are always linked to a specific user and can be created, queried, and deleted independently of other scans.

Common configurations:

* Default Native Pipeline: assetConfigId == "25f6d3a6-a634-40c3-8452-0342bee242d0"
* Default Web Pipeline: assetConfigId == "ee651a9e-6de1-4621-a5c9-5d31ca874718"
* Legacy Native Pipeline: assetConfigId == "c979ab6b-e46b-4c1c-89e1-bb02435b5cbf"

All Scans endpoints require the following headers:

```http
accept: application/json;v=1
authorization: Bearer {{API_KEY}}
content-type: application/json
```

Replace `{{API_KEY}}` with your Prism API key for the selected environment.

## List scans.

> \
> This operation returns a paginated list of \*\*scans\*\* available for a specific \*\*user\*\* identified by the partner-provided \*\*token\*\*.\
> \
> The \`limit\` query parameter is \*\*required\*\* and must be between 1 and 50 (inclusive). Use the optional \`cursor\` and \`order\` query parameters to page through the results.\
> \
> Optionally, you can use the \`unit-system\` query parameter to receive values in \*\*metric\*\* or \*\*imperial\*\* units.<br>

````json
{"openapi":"3.0.3","info":{"title":"Prism Hosted API","version":"1"},"tags":[{"name":"Scans","description":"### Create and manage body scans for users.\n\nEach scan generates body measurements, body composition metrics, various 3D and image assets, and can further generate **Future Me** predictions.\nScans are always linked to a specific user and can be created, queried, and deleted independently of other scans.\n\nCommon configurations:\n- Default Native Pipeline: assetConfigId == \"25f6d3a6-a634-40c3-8452-0342bee242d0\"\n- Default Web Pipeline: assetConfigId == \"ee651a9e-6de1-4621-a5c9-5d31ca874718\"\n- Legacy Native Pipeline: assetConfigId == \"c979ab6b-e46b-4c1c-89e1-bb02435b5cbf\"\n\nAll Scans endpoints require the following headers:\n```http\naccept: application/json;v=1\nauthorization: Bearer {{API_KEY}}\ncontent-type: application/json\n```\nReplace `{{API_KEY}}` with your Prism API key for the selected environment.","parent":"Prism Hosted API"}],"servers":[{"url":"https://api.hosted.prismlabs.tech","description":"Production environment for Prism Hosted API"},{"url":"https://sandbox-api.hosted.prismlabs.tech","description":"Sandbox environment for Prism Hosted API"}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http","name":"Authorization","in":"header"}},"schemas":{"PaginatedScansDto":{"type":"object","properties":{"results":{"description":"The scans of the requested page, in the requested order.","type":"array","items":{"$ref":"#/components/schemas/ScanDto"}},"pageInfo":{"description":"Where this page ends and how to request the next one.","allOf":[{"$ref":"#/components/schemas/PageInfo"}]}},"required":["results","pageInfo"]},"ScanDto":{"type":"object","properties":{"id":{"type":"string","description":"The unique ID of the scan within the Hosted API."},"status":{"type":"string","enum":["CREATED","PROCESSING","READY","FAILED"],"description":"The current processing status of the scan."},"prismScanId":{"type":"string","description":"The unique ID of the scan in Prism’s internal systems. Used mainly for debugging and support."},"deviceConfigName":{"type":"string","enum":["IPHONE_SCANNER","ANDROID_SCANNER"],"description":"The device configuration used to capture this scan."},"assetConfigId":{"type":"string","description":"The asset configuration applied to this scan.\n\nUse this ID to control which assets (models, images, etc.) are generated for the scan.\n\nCommon configurations:\n- Default Native Pipeline: assetConfigId == \"25f6d3a6-a634-40c3-8452-0342bee242d0\"\n- Default Web Pipeline: assetConfigId == \"ee651a9e-6de1-4621-a5c9-5d31ca874718\"\n- Legacy Native Pipeline: assetConfigId == \"c979ab6b-e46b-4c1c-89e1-bb02435b5cbf\""},"weight":{"description":"The user's body weight at the time of the scan.","allOf":[{"$ref":"#/components/schemas/Weight"}]},"height":{"description":"The user's body height.","allOf":[{"$ref":"#/components/schemas/Height"}]},"userId":{"type":"string","description":"The unique ID of the user in the Prism Hosted API."},"userToken":{"type":"string","description":"The partner-provided unique user token associated with this scan."},"createdAt":{"type":"string","description":"The date and time when the scan was created."},"updatedAt":{"type":"string","description":"The date and time when the scan was last updated."},"scanAssets":{"description":"The asset metadata associated with the scan, including generation status of related assets.","allOf":[{"$ref":"#/components/schemas/ScanAssetsDto"}]},"measurements":{"nullable":true,"description":"The body measurements of the scan, as also returned by `GET /scans/{scanId}/measurements`. `null` while they are not yet available.","type":"object","allOf":[{"$ref":"#/components/schemas/MeasurementDto"}]},"bodyfat":{"nullable":true,"description":"The body composition of the scan, as also returned by `GET /scans/{scanId}/bodyfat`. `null` while it is not yet available.","type":"object","allOf":[{"$ref":"#/components/schemas/BodyfatDto"}]}},"required":["id","status","prismScanId","deviceConfigName","assetConfigId","weight","height","userId","userToken","createdAt","updatedAt","measurements","bodyfat"]},"Weight":{"type":"object","properties":{"value":{"type":"number","minimum":1,"description":"The numeric weight"},"unit":{"type":"string","enum":["kg","lb"],"description":"The unit of the weight value"}},"required":["value","unit"]},"Height":{"type":"object","properties":{"value":{"type":"number","minimum":1,"description":"The numeric height"},"unit":{"type":"string","enum":["m","in"],"description":"The unit of the height value"}},"required":["value","unit"]},"ScanAssetsDto":{"type":"object","properties":{"id":{"type":"string","description":"The unique ID of the scan assets"},"scanId":{"type":"string","description":"The ID of the scan associated with the assets"},"captureData":{"type":"string","nullable":true,"enum":["started","succeeded","failed"],"description":"The status of the capture data associated with the scan"},"captureDataUpdatedAt":{"type":"string","nullable":true,"description":"The date and time the capture data was last updated"},"body":{"type":"string","nullable":true,"enum":["started","succeeded","failed"],"description":"The status of the body associated with the scan"},"bodyUpdatedAt":{"type":"string","nullable":true,"description":"The date and time the body was last updated"},"fittedBody":{"type":"string","nullable":true,"enum":["started","succeeded","failed"],"description":"The status of the fitted body associated with the scan"},"fittedBodyUpdatedAt":{"type":"string","nullable":true,"description":"The date and time the fitted body was last updated"},"measurement":{"type":"string","nullable":true,"enum":["started","succeeded","failed"],"description":"The status of the measurement associated with the scan"},"measurementUpdatedAt":{"type":"string","nullable":true,"description":"The date and time the measurement was last updated"},"createdAt":{"type":"string","description":"The date and time the scan assets were created"},"updatedAt":{"type":"string","description":"The date and time the scan assets were last updated"}},"required":["id","scanId","captureData","captureDataUpdatedAt","body","bodyUpdatedAt","fittedBodyUpdatedAt","measurementUpdatedAt","createdAt","updatedAt"]},"MeasurementDto":{"type":"object","properties":{"neckFit":{"type":"number","description":"Neck circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"shoulderFit":{"type":"number","description":"Shoulder circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"upperChestFit":{"type":"number","description":"Upper chest circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"chestFit":{"type":"number","description":"Chest circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"lowerChestFit":{"type":"number","description":"Lower chest circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"waistFit":{"type":"number","description":"Waist circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"waistNavyFit":{"type":"number","description":"Waist circumference at the navel, the site used by the US Navy body fat method, in metres (metric) or inches (imperial). -1 when the measurement is not available."},"stomachFit":{"type":"number","description":"Stomach circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"hipsFit":{"type":"number","description":"Hips circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"upperThighLeftFit":{"type":"number","description":"Left upper thigh circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"upperThighRightFit":{"type":"number","description":"Right upper thigh circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"thighLeftFit":{"type":"number","description":"Left thigh circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"thighRightFit":{"type":"number","description":"Right thigh circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"lowerThighLeftFit":{"type":"number","description":"Left lower thigh circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"lowerThighRightFit":{"type":"number","description":"Right lower thigh circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"calfLeftFit":{"type":"number","description":"Left calf circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"calfRightFit":{"type":"number","description":"Right calf circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"ankleLeftFit":{"type":"number","description":"Left ankle circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"ankleRightFit":{"type":"number","description":"Right ankle circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"midArmRightFit":{"type":"number","description":"Right mid arm circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"midArmLeftFit":{"type":"number","description":"Left mid arm circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"lowerArmRightFit":{"type":"number","description":"Right lower arm circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"lowerArmLeftFit":{"type":"number","description":"Left lower arm circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"waistToHipRatio":{"type":"number","description":"Waist circumference divided by hip circumference. Unitless, rounded to 2 decimals."},"forearmLeftFit":{"type":"number","description":"Left forearm circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"forearmRightFit":{"type":"number","description":"Right forearm circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"wristLeftFit":{"type":"number","description":"Left wrist circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"wristRightFit":{"type":"number","description":"Right wrist circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"bmiPredicted":{"type":"number","description":"Body mass index predicted from the 3D body model, rounded to 1 decimal."},"bmiConfidence":{"type":"number","description":"Confidence score of the predicted body mass index, rounded to 3 decimals."},"bodyRoundnessIndex":{"type":"number","description":"Body roundness index (BRI). Unitless."},"fullBodyVolume":{"type":"number","description":"Total body volume in cubic metres (metric) or cubic feet (imperial)."}},"required":["neckFit","shoulderFit","upperChestFit","chestFit","lowerChestFit","waistFit","waistNavyFit","stomachFit","hipsFit","upperThighLeftFit","upperThighRightFit","thighLeftFit","thighRightFit","lowerThighLeftFit","lowerThighRightFit","calfLeftFit","calfRightFit","ankleLeftFit","ankleRightFit","midArmRightFit","midArmLeftFit","lowerArmRightFit","lowerArmLeftFit","waistToHipRatio","forearmLeftFit","forearmRightFit","wristLeftFit","wristRightFit","bmiPredicted","bmiConfidence","bodyRoundnessIndex","fullBodyVolume"]},"BodyfatDto":{"type":"object","properties":{"bodyfatMethod":{"type":"string","enum":["adam","army","army_athlete","coco","coco_bri","coco_legacy","coco2","coco2_oc","extended_navy_thinboost","tina_fit"],"description":"Bodyfat method for the scan"},"bodyfatPercentage":{"type":"number","nullable":true,"description":"Bodyfat percentage"},"leanMassPercentage":{"type":"number","nullable":true,"description":"Lean mass percentage"},"fatMass":{"type":"number","nullable":true,"description":"fat mass in kg"},"leanMass":{"type":"number","nullable":true,"description":"lean mass in kg"},"vatPercentage":{"type":"number","nullable":true,"description":"visceral adipose tissue (VAT) in %"},"vatMass":{"type":"number","nullable":true,"description":"visceral adipose tissue (VAT) in kg"},"appendicularLeanMassPercentage":{"type":"number","nullable":true,"description":"appendicular lean mass (ALM) in %"},"appendicularLeanMass":{"type":"number","nullable":true,"description":"appendicular lean mass (ALM) in kg"},"skeletalMuscleMassPercentage":{"type":"number","nullable":true,"description":"skeletal muscle mass (SMM) in %"},"skeletalMuscleMass":{"type":"number","nullable":true,"description":"skeletal muscle mass (SMM) in kg"}},"required":["bodyfatMethod","bodyfatPercentage","leanMassPercentage","fatMass","leanMass","vatPercentage","vatMass","appendicularLeanMassPercentage","appendicularLeanMass","skeletalMuscleMassPercentage","skeletalMuscleMass"]},"PageInfo":{"type":"object","properties":{"cursor":{"type":"string","nullable":true,"description":"Opaque cursor of the last scan on this page. Pass it as the `cursor` query parameter to request the following page. Every non-empty page carries one, including the last; the list is exhausted when a page comes back with empty `results`, which is the only case in which the cursor is `null`."}},"required":["cursor"]}}},"paths":{"/scans":{"get":{"description":"\nThis operation returns a paginated list of **scans** available for a specific **user** identified by the partner-provided **token**.\n\nThe `limit` query parameter is **required** and must be between 1 and 50 (inclusive). Use the optional `cursor` and `order` query parameters to page through the results.\n\nOptionally, you can use the `unit-system` query parameter to receive values in **metric** or **imperial** units.\n","operationId":"ScansController_findAll_1","parameters":[{"name":"unit-system","required":false,"in":"query","description":"The unit system in which values will be returned.","schema":{"enum":["metric","imperial"],"type":"string"}},{"name":"order","required":false,"in":"query","description":"Sorting order used for pagination. Determines how the cursor is applied (for example, ascending or descending by creation time).","schema":{"enum":["asc","desc"],"type":"string"}},{"name":"cursor","required":false,"in":"query","description":"Cursor pointing to the position in the scan list from which the next page should start. Usually taken from the previous response.","schema":{"type":"string"}},{"name":"limit","required":true,"in":"query","description":"Maximum number of scans to return in a single page. Must be between 1 and 50 (inclusive).","schema":{"minimum":1,"maximum":50,"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json;v=1":{"schema":{"$ref":"#/components/schemas/PaginatedScansDto"}}}}},"summary":"List scans.","tags":["Scans"]}}}}
````

## Register a new scan.

> \
> This operation registers a new \*\*scan\*\* in the Hosted API for an existing \*\*user\*\*.\
> \
> To associate the scan with the correct \*\*user\*\*, provide the same \*\*token\*\* in the request body that you used when registering the user via the \`/users\` endpoint.<br>

````json
{"openapi":"3.0.3","info":{"title":"Prism Hosted API","version":"1"},"tags":[{"name":"Scans","description":"### Create and manage body scans for users.\n\nEach scan generates body measurements, body composition metrics, various 3D and image assets, and can further generate **Future Me** predictions.\nScans are always linked to a specific user and can be created, queried, and deleted independently of other scans.\n\nCommon configurations:\n- Default Native Pipeline: assetConfigId == \"25f6d3a6-a634-40c3-8452-0342bee242d0\"\n- Default Web Pipeline: assetConfigId == \"ee651a9e-6de1-4621-a5c9-5d31ca874718\"\n- Legacy Native Pipeline: assetConfigId == \"c979ab6b-e46b-4c1c-89e1-bb02435b5cbf\"\n\nAll Scans endpoints require the following headers:\n```http\naccept: application/json;v=1\nauthorization: Bearer {{API_KEY}}\ncontent-type: application/json\n```\nReplace `{{API_KEY}}` with your Prism API key for the selected environment.","parent":"Prism Hosted API"}],"servers":[{"url":"https://api.hosted.prismlabs.tech","description":"Production environment for Prism Hosted API"},{"url":"https://sandbox-api.hosted.prismlabs.tech","description":"Sandbox environment for Prism Hosted API"}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http","name":"Authorization","in":"header"}},"schemas":{"CreateScanDto":{"type":"object","properties":{"userToken":{"type":"string","description":"The partner-provided unique user token associated with this scan."},"deviceConfigName":{"type":"string","enum":["IPHONE_SCANNER","ANDROID_SCANNER"],"description":"The device configuration used to capture this scan."},"assetConfigId":{"type":"string","format":"uuid","description":"The asset configuration applied to this scan.\n\nUse this ID to control which assets (models, images, etc.) are generated for the scan.\n\nCommon configurations:\n- Default Native Pipeline: assetConfigId == \"25f6d3a6-a634-40c3-8452-0342bee242d0\"\n- Default Web Pipeline: assetConfigId == \"ee651a9e-6de1-4621-a5c9-5d31ca874718\"\n- Legacy Native Pipeline: assetConfigId == \"c979ab6b-e46b-4c1c-89e1-bb02435b5cbf\""},"bodyfatMethod":{"type":"string","enum":["adam","army","army_athlete","coco","coco_bri","coco_legacy","coco2","coco2_oc","extended_navy_thinboost","tina_fit"],"description":"The body fat method applied to this scan."}},"required":["userToken","deviceConfigName"]},"ScanDto":{"type":"object","properties":{"id":{"type":"string","description":"The unique ID of the scan within the Hosted API."},"status":{"type":"string","enum":["CREATED","PROCESSING","READY","FAILED"],"description":"The current processing status of the scan."},"prismScanId":{"type":"string","description":"The unique ID of the scan in Prism’s internal systems. Used mainly for debugging and support."},"deviceConfigName":{"type":"string","enum":["IPHONE_SCANNER","ANDROID_SCANNER"],"description":"The device configuration used to capture this scan."},"assetConfigId":{"type":"string","description":"The asset configuration applied to this scan.\n\nUse this ID to control which assets (models, images, etc.) are generated for the scan.\n\nCommon configurations:\n- Default Native Pipeline: assetConfigId == \"25f6d3a6-a634-40c3-8452-0342bee242d0\"\n- Default Web Pipeline: assetConfigId == \"ee651a9e-6de1-4621-a5c9-5d31ca874718\"\n- Legacy Native Pipeline: assetConfigId == \"c979ab6b-e46b-4c1c-89e1-bb02435b5cbf\""},"weight":{"description":"The user's body weight at the time of the scan.","allOf":[{"$ref":"#/components/schemas/Weight"}]},"height":{"description":"The user's body height.","allOf":[{"$ref":"#/components/schemas/Height"}]},"userId":{"type":"string","description":"The unique ID of the user in the Prism Hosted API."},"userToken":{"type":"string","description":"The partner-provided unique user token associated with this scan."},"createdAt":{"type":"string","description":"The date and time when the scan was created."},"updatedAt":{"type":"string","description":"The date and time when the scan was last updated."},"scanAssets":{"description":"The asset metadata associated with the scan, including generation status of related assets.","allOf":[{"$ref":"#/components/schemas/ScanAssetsDto"}]},"measurements":{"nullable":true,"description":"The body measurements of the scan, as also returned by `GET /scans/{scanId}/measurements`. `null` while they are not yet available.","type":"object","allOf":[{"$ref":"#/components/schemas/MeasurementDto"}]},"bodyfat":{"nullable":true,"description":"The body composition of the scan, as also returned by `GET /scans/{scanId}/bodyfat`. `null` while it is not yet available.","type":"object","allOf":[{"$ref":"#/components/schemas/BodyfatDto"}]}},"required":["id","status","prismScanId","deviceConfigName","assetConfigId","weight","height","userId","userToken","createdAt","updatedAt","measurements","bodyfat"]},"Weight":{"type":"object","properties":{"value":{"type":"number","minimum":1,"description":"The numeric weight"},"unit":{"type":"string","enum":["kg","lb"],"description":"The unit of the weight value"}},"required":["value","unit"]},"Height":{"type":"object","properties":{"value":{"type":"number","minimum":1,"description":"The numeric height"},"unit":{"type":"string","enum":["m","in"],"description":"The unit of the height value"}},"required":["value","unit"]},"ScanAssetsDto":{"type":"object","properties":{"id":{"type":"string","description":"The unique ID of the scan assets"},"scanId":{"type":"string","description":"The ID of the scan associated with the assets"},"captureData":{"type":"string","nullable":true,"enum":["started","succeeded","failed"],"description":"The status of the capture data associated with the scan"},"captureDataUpdatedAt":{"type":"string","nullable":true,"description":"The date and time the capture data was last updated"},"body":{"type":"string","nullable":true,"enum":["started","succeeded","failed"],"description":"The status of the body associated with the scan"},"bodyUpdatedAt":{"type":"string","nullable":true,"description":"The date and time the body was last updated"},"fittedBody":{"type":"string","nullable":true,"enum":["started","succeeded","failed"],"description":"The status of the fitted body associated with the scan"},"fittedBodyUpdatedAt":{"type":"string","nullable":true,"description":"The date and time the fitted body was last updated"},"measurement":{"type":"string","nullable":true,"enum":["started","succeeded","failed"],"description":"The status of the measurement associated with the scan"},"measurementUpdatedAt":{"type":"string","nullable":true,"description":"The date and time the measurement was last updated"},"createdAt":{"type":"string","description":"The date and time the scan assets were created"},"updatedAt":{"type":"string","description":"The date and time the scan assets were last updated"}},"required":["id","scanId","captureData","captureDataUpdatedAt","body","bodyUpdatedAt","fittedBodyUpdatedAt","measurementUpdatedAt","createdAt","updatedAt"]},"MeasurementDto":{"type":"object","properties":{"neckFit":{"type":"number","description":"Neck circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"shoulderFit":{"type":"number","description":"Shoulder circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"upperChestFit":{"type":"number","description":"Upper chest circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"chestFit":{"type":"number","description":"Chest circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"lowerChestFit":{"type":"number","description":"Lower chest circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"waistFit":{"type":"number","description":"Waist circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"waistNavyFit":{"type":"number","description":"Waist circumference at the navel, the site used by the US Navy body fat method, in metres (metric) or inches (imperial). -1 when the measurement is not available."},"stomachFit":{"type":"number","description":"Stomach circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"hipsFit":{"type":"number","description":"Hips circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"upperThighLeftFit":{"type":"number","description":"Left upper thigh circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"upperThighRightFit":{"type":"number","description":"Right upper thigh circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"thighLeftFit":{"type":"number","description":"Left thigh circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"thighRightFit":{"type":"number","description":"Right thigh circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"lowerThighLeftFit":{"type":"number","description":"Left lower thigh circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"lowerThighRightFit":{"type":"number","description":"Right lower thigh circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"calfLeftFit":{"type":"number","description":"Left calf circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"calfRightFit":{"type":"number","description":"Right calf circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"ankleLeftFit":{"type":"number","description":"Left ankle circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"ankleRightFit":{"type":"number","description":"Right ankle circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"midArmRightFit":{"type":"number","description":"Right mid arm circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"midArmLeftFit":{"type":"number","description":"Left mid arm circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"lowerArmRightFit":{"type":"number","description":"Right lower arm circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"lowerArmLeftFit":{"type":"number","description":"Left lower arm circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"waistToHipRatio":{"type":"number","description":"Waist circumference divided by hip circumference. Unitless, rounded to 2 decimals."},"forearmLeftFit":{"type":"number","description":"Left forearm circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"forearmRightFit":{"type":"number","description":"Right forearm circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"wristLeftFit":{"type":"number","description":"Left wrist circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"wristRightFit":{"type":"number","description":"Right wrist circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"bmiPredicted":{"type":"number","description":"Body mass index predicted from the 3D body model, rounded to 1 decimal."},"bmiConfidence":{"type":"number","description":"Confidence score of the predicted body mass index, rounded to 3 decimals."},"bodyRoundnessIndex":{"type":"number","description":"Body roundness index (BRI). Unitless."},"fullBodyVolume":{"type":"number","description":"Total body volume in cubic metres (metric) or cubic feet (imperial)."}},"required":["neckFit","shoulderFit","upperChestFit","chestFit","lowerChestFit","waistFit","waistNavyFit","stomachFit","hipsFit","upperThighLeftFit","upperThighRightFit","thighLeftFit","thighRightFit","lowerThighLeftFit","lowerThighRightFit","calfLeftFit","calfRightFit","ankleLeftFit","ankleRightFit","midArmRightFit","midArmLeftFit","lowerArmRightFit","lowerArmLeftFit","waistToHipRatio","forearmLeftFit","forearmRightFit","wristLeftFit","wristRightFit","bmiPredicted","bmiConfidence","bodyRoundnessIndex","fullBodyVolume"]},"BodyfatDto":{"type":"object","properties":{"bodyfatMethod":{"type":"string","enum":["adam","army","army_athlete","coco","coco_bri","coco_legacy","coco2","coco2_oc","extended_navy_thinboost","tina_fit"],"description":"Bodyfat method for the scan"},"bodyfatPercentage":{"type":"number","nullable":true,"description":"Bodyfat percentage"},"leanMassPercentage":{"type":"number","nullable":true,"description":"Lean mass percentage"},"fatMass":{"type":"number","nullable":true,"description":"fat mass in kg"},"leanMass":{"type":"number","nullable":true,"description":"lean mass in kg"},"vatPercentage":{"type":"number","nullable":true,"description":"visceral adipose tissue (VAT) in %"},"vatMass":{"type":"number","nullable":true,"description":"visceral adipose tissue (VAT) in kg"},"appendicularLeanMassPercentage":{"type":"number","nullable":true,"description":"appendicular lean mass (ALM) in %"},"appendicularLeanMass":{"type":"number","nullable":true,"description":"appendicular lean mass (ALM) in kg"},"skeletalMuscleMassPercentage":{"type":"number","nullable":true,"description":"skeletal muscle mass (SMM) in %"},"skeletalMuscleMass":{"type":"number","nullable":true,"description":"skeletal muscle mass (SMM) in kg"}},"required":["bodyfatMethod","bodyfatPercentage","leanMassPercentage","fatMass","leanMass","vatPercentage","vatMass","appendicularLeanMassPercentage","appendicularLeanMass","skeletalMuscleMassPercentage","skeletalMuscleMass"]}}},"paths":{"/scans":{"post":{"description":"\nThis operation registers a new **scan** in the Hosted API for an existing **user**.\n\nTo associate the scan with the correct **user**, provide the same **token** in the request body that you used when registering the user via the `/users` endpoint.\n","operationId":"ScansController_create_1","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateScanDto"}}}},"responses":{"201":{"description":"","content":{"application/json;v=1":{"schema":{"$ref":"#/components/schemas/ScanDto"}}}}},"summary":"Register a new scan.","tags":["Scans"]}}}}
````

## Get status of a scan.

> \
> This operation provides the current \*\*status\*\* and details of a specific \*\*scan\*\*.\
> \
> Use this endpoint to poll the processing status after registering a scan or to retrieve its latest state for display in your application.<br>

````json
{"openapi":"3.0.3","info":{"title":"Prism Hosted API","version":"1"},"tags":[{"name":"Scans","description":"### Create and manage body scans for users.\n\nEach scan generates body measurements, body composition metrics, various 3D and image assets, and can further generate **Future Me** predictions.\nScans are always linked to a specific user and can be created, queried, and deleted independently of other scans.\n\nCommon configurations:\n- Default Native Pipeline: assetConfigId == \"25f6d3a6-a634-40c3-8452-0342bee242d0\"\n- Default Web Pipeline: assetConfigId == \"ee651a9e-6de1-4621-a5c9-5d31ca874718\"\n- Legacy Native Pipeline: assetConfigId == \"c979ab6b-e46b-4c1c-89e1-bb02435b5cbf\"\n\nAll Scans endpoints require the following headers:\n```http\naccept: application/json;v=1\nauthorization: Bearer {{API_KEY}}\ncontent-type: application/json\n```\nReplace `{{API_KEY}}` with your Prism API key for the selected environment.","parent":"Prism Hosted API"}],"servers":[{"url":"https://api.hosted.prismlabs.tech","description":"Production environment for Prism Hosted API"},{"url":"https://sandbox-api.hosted.prismlabs.tech","description":"Sandbox environment for Prism Hosted API"}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http","name":"Authorization","in":"header"}},"schemas":{"ScanDto":{"type":"object","properties":{"id":{"type":"string","description":"The unique ID of the scan within the Hosted API."},"status":{"type":"string","enum":["CREATED","PROCESSING","READY","FAILED"],"description":"The current processing status of the scan."},"prismScanId":{"type":"string","description":"The unique ID of the scan in Prism’s internal systems. Used mainly for debugging and support."},"deviceConfigName":{"type":"string","enum":["IPHONE_SCANNER","ANDROID_SCANNER"],"description":"The device configuration used to capture this scan."},"assetConfigId":{"type":"string","description":"The asset configuration applied to this scan.\n\nUse this ID to control which assets (models, images, etc.) are generated for the scan.\n\nCommon configurations:\n- Default Native Pipeline: assetConfigId == \"25f6d3a6-a634-40c3-8452-0342bee242d0\"\n- Default Web Pipeline: assetConfigId == \"ee651a9e-6de1-4621-a5c9-5d31ca874718\"\n- Legacy Native Pipeline: assetConfigId == \"c979ab6b-e46b-4c1c-89e1-bb02435b5cbf\""},"weight":{"description":"The user's body weight at the time of the scan.","allOf":[{"$ref":"#/components/schemas/Weight"}]},"height":{"description":"The user's body height.","allOf":[{"$ref":"#/components/schemas/Height"}]},"userId":{"type":"string","description":"The unique ID of the user in the Prism Hosted API."},"userToken":{"type":"string","description":"The partner-provided unique user token associated with this scan."},"createdAt":{"type":"string","description":"The date and time when the scan was created."},"updatedAt":{"type":"string","description":"The date and time when the scan was last updated."},"scanAssets":{"description":"The asset metadata associated with the scan, including generation status of related assets.","allOf":[{"$ref":"#/components/schemas/ScanAssetsDto"}]},"measurements":{"nullable":true,"description":"The body measurements of the scan, as also returned by `GET /scans/{scanId}/measurements`. `null` while they are not yet available.","type":"object","allOf":[{"$ref":"#/components/schemas/MeasurementDto"}]},"bodyfat":{"nullable":true,"description":"The body composition of the scan, as also returned by `GET /scans/{scanId}/bodyfat`. `null` while it is not yet available.","type":"object","allOf":[{"$ref":"#/components/schemas/BodyfatDto"}]}},"required":["id","status","prismScanId","deviceConfigName","assetConfigId","weight","height","userId","userToken","createdAt","updatedAt","measurements","bodyfat"]},"Weight":{"type":"object","properties":{"value":{"type":"number","minimum":1,"description":"The numeric weight"},"unit":{"type":"string","enum":["kg","lb"],"description":"The unit of the weight value"}},"required":["value","unit"]},"Height":{"type":"object","properties":{"value":{"type":"number","minimum":1,"description":"The numeric height"},"unit":{"type":"string","enum":["m","in"],"description":"The unit of the height value"}},"required":["value","unit"]},"ScanAssetsDto":{"type":"object","properties":{"id":{"type":"string","description":"The unique ID of the scan assets"},"scanId":{"type":"string","description":"The ID of the scan associated with the assets"},"captureData":{"type":"string","nullable":true,"enum":["started","succeeded","failed"],"description":"The status of the capture data associated with the scan"},"captureDataUpdatedAt":{"type":"string","nullable":true,"description":"The date and time the capture data was last updated"},"body":{"type":"string","nullable":true,"enum":["started","succeeded","failed"],"description":"The status of the body associated with the scan"},"bodyUpdatedAt":{"type":"string","nullable":true,"description":"The date and time the body was last updated"},"fittedBody":{"type":"string","nullable":true,"enum":["started","succeeded","failed"],"description":"The status of the fitted body associated with the scan"},"fittedBodyUpdatedAt":{"type":"string","nullable":true,"description":"The date and time the fitted body was last updated"},"measurement":{"type":"string","nullable":true,"enum":["started","succeeded","failed"],"description":"The status of the measurement associated with the scan"},"measurementUpdatedAt":{"type":"string","nullable":true,"description":"The date and time the measurement was last updated"},"createdAt":{"type":"string","description":"The date and time the scan assets were created"},"updatedAt":{"type":"string","description":"The date and time the scan assets were last updated"}},"required":["id","scanId","captureData","captureDataUpdatedAt","body","bodyUpdatedAt","fittedBodyUpdatedAt","measurementUpdatedAt","createdAt","updatedAt"]},"MeasurementDto":{"type":"object","properties":{"neckFit":{"type":"number","description":"Neck circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"shoulderFit":{"type":"number","description":"Shoulder circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"upperChestFit":{"type":"number","description":"Upper chest circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"chestFit":{"type":"number","description":"Chest circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"lowerChestFit":{"type":"number","description":"Lower chest circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"waistFit":{"type":"number","description":"Waist circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"waistNavyFit":{"type":"number","description":"Waist circumference at the navel, the site used by the US Navy body fat method, in metres (metric) or inches (imperial). -1 when the measurement is not available."},"stomachFit":{"type":"number","description":"Stomach circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"hipsFit":{"type":"number","description":"Hips circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"upperThighLeftFit":{"type":"number","description":"Left upper thigh circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"upperThighRightFit":{"type":"number","description":"Right upper thigh circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"thighLeftFit":{"type":"number","description":"Left thigh circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"thighRightFit":{"type":"number","description":"Right thigh circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"lowerThighLeftFit":{"type":"number","description":"Left lower thigh circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"lowerThighRightFit":{"type":"number","description":"Right lower thigh circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"calfLeftFit":{"type":"number","description":"Left calf circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"calfRightFit":{"type":"number","description":"Right calf circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"ankleLeftFit":{"type":"number","description":"Left ankle circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"ankleRightFit":{"type":"number","description":"Right ankle circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"midArmRightFit":{"type":"number","description":"Right mid arm circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"midArmLeftFit":{"type":"number","description":"Left mid arm circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"lowerArmRightFit":{"type":"number","description":"Right lower arm circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"lowerArmLeftFit":{"type":"number","description":"Left lower arm circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"waistToHipRatio":{"type":"number","description":"Waist circumference divided by hip circumference. Unitless, rounded to 2 decimals."},"forearmLeftFit":{"type":"number","description":"Left forearm circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"forearmRightFit":{"type":"number","description":"Right forearm circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"wristLeftFit":{"type":"number","description":"Left wrist circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"wristRightFit":{"type":"number","description":"Right wrist circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"bmiPredicted":{"type":"number","description":"Body mass index predicted from the 3D body model, rounded to 1 decimal."},"bmiConfidence":{"type":"number","description":"Confidence score of the predicted body mass index, rounded to 3 decimals."},"bodyRoundnessIndex":{"type":"number","description":"Body roundness index (BRI). Unitless."},"fullBodyVolume":{"type":"number","description":"Total body volume in cubic metres (metric) or cubic feet (imperial)."}},"required":["neckFit","shoulderFit","upperChestFit","chestFit","lowerChestFit","waistFit","waistNavyFit","stomachFit","hipsFit","upperThighLeftFit","upperThighRightFit","thighLeftFit","thighRightFit","lowerThighLeftFit","lowerThighRightFit","calfLeftFit","calfRightFit","ankleLeftFit","ankleRightFit","midArmRightFit","midArmLeftFit","lowerArmRightFit","lowerArmLeftFit","waistToHipRatio","forearmLeftFit","forearmRightFit","wristLeftFit","wristRightFit","bmiPredicted","bmiConfidence","bodyRoundnessIndex","fullBodyVolume"]},"BodyfatDto":{"type":"object","properties":{"bodyfatMethod":{"type":"string","enum":["adam","army","army_athlete","coco","coco_bri","coco_legacy","coco2","coco2_oc","extended_navy_thinboost","tina_fit"],"description":"Bodyfat method for the scan"},"bodyfatPercentage":{"type":"number","nullable":true,"description":"Bodyfat percentage"},"leanMassPercentage":{"type":"number","nullable":true,"description":"Lean mass percentage"},"fatMass":{"type":"number","nullable":true,"description":"fat mass in kg"},"leanMass":{"type":"number","nullable":true,"description":"lean mass in kg"},"vatPercentage":{"type":"number","nullable":true,"description":"visceral adipose tissue (VAT) in %"},"vatMass":{"type":"number","nullable":true,"description":"visceral adipose tissue (VAT) in kg"},"appendicularLeanMassPercentage":{"type":"number","nullable":true,"description":"appendicular lean mass (ALM) in %"},"appendicularLeanMass":{"type":"number","nullable":true,"description":"appendicular lean mass (ALM) in kg"},"skeletalMuscleMassPercentage":{"type":"number","nullable":true,"description":"skeletal muscle mass (SMM) in %"},"skeletalMuscleMass":{"type":"number","nullable":true,"description":"skeletal muscle mass (SMM) in kg"}},"required":["bodyfatMethod","bodyfatPercentage","leanMassPercentage","fatMass","leanMass","vatPercentage","vatMass","appendicularLeanMassPercentage","appendicularLeanMass","skeletalMuscleMassPercentage","skeletalMuscleMass"]}}},"paths":{"/scans/{scanId}":{"get":{"description":"\nThis operation provides the current **status** and details of a specific **scan**.\n\nUse this endpoint to poll the processing status after registering a scan or to retrieve its latest state for display in your application.\n","operationId":"ScansController_findOne_1","parameters":[{"name":"scanId","required":true,"in":"path","description":"The unique ID of the scan.","schema":{"type":"string"}},{"name":"unit-system","required":false,"in":"query","description":"The unit system in which values will be returned.","schema":{"enum":["metric","imperial"],"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json;v=1":{"schema":{"$ref":"#/components/schemas/ScanDto"}}}}},"summary":"Get status of a scan.","tags":["Scans"]}}}}
````

## Delete a scan.

> \
> This operation deletes a specific \*\*scan\*\*.\
> \
> After deletion, the scan and its associated data are no longer available for retrieval or reporting.<br>

````json
{"openapi":"3.0.3","info":{"title":"Prism Hosted API","version":"1"},"tags":[{"name":"Scans","description":"### Create and manage body scans for users.\n\nEach scan generates body measurements, body composition metrics, various 3D and image assets, and can further generate **Future Me** predictions.\nScans are always linked to a specific user and can be created, queried, and deleted independently of other scans.\n\nCommon configurations:\n- Default Native Pipeline: assetConfigId == \"25f6d3a6-a634-40c3-8452-0342bee242d0\"\n- Default Web Pipeline: assetConfigId == \"ee651a9e-6de1-4621-a5c9-5d31ca874718\"\n- Legacy Native Pipeline: assetConfigId == \"c979ab6b-e46b-4c1c-89e1-bb02435b5cbf\"\n\nAll Scans endpoints require the following headers:\n```http\naccept: application/json;v=1\nauthorization: Bearer {{API_KEY}}\ncontent-type: application/json\n```\nReplace `{{API_KEY}}` with your Prism API key for the selected environment.","parent":"Prism Hosted API"}],"servers":[{"url":"https://api.hosted.prismlabs.tech","description":"Production environment for Prism Hosted API"},{"url":"https://sandbox-api.hosted.prismlabs.tech","description":"Sandbox environment for Prism Hosted API"}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http","name":"Authorization","in":"header"}},"schemas":{"ScanDto":{"type":"object","properties":{"id":{"type":"string","description":"The unique ID of the scan within the Hosted API."},"status":{"type":"string","enum":["CREATED","PROCESSING","READY","FAILED"],"description":"The current processing status of the scan."},"prismScanId":{"type":"string","description":"The unique ID of the scan in Prism’s internal systems. Used mainly for debugging and support."},"deviceConfigName":{"type":"string","enum":["IPHONE_SCANNER","ANDROID_SCANNER"],"description":"The device configuration used to capture this scan."},"assetConfigId":{"type":"string","description":"The asset configuration applied to this scan.\n\nUse this ID to control which assets (models, images, etc.) are generated for the scan.\n\nCommon configurations:\n- Default Native Pipeline: assetConfigId == \"25f6d3a6-a634-40c3-8452-0342bee242d0\"\n- Default Web Pipeline: assetConfigId == \"ee651a9e-6de1-4621-a5c9-5d31ca874718\"\n- Legacy Native Pipeline: assetConfigId == \"c979ab6b-e46b-4c1c-89e1-bb02435b5cbf\""},"weight":{"description":"The user's body weight at the time of the scan.","allOf":[{"$ref":"#/components/schemas/Weight"}]},"height":{"description":"The user's body height.","allOf":[{"$ref":"#/components/schemas/Height"}]},"userId":{"type":"string","description":"The unique ID of the user in the Prism Hosted API."},"userToken":{"type":"string","description":"The partner-provided unique user token associated with this scan."},"createdAt":{"type":"string","description":"The date and time when the scan was created."},"updatedAt":{"type":"string","description":"The date and time when the scan was last updated."},"scanAssets":{"description":"The asset metadata associated with the scan, including generation status of related assets.","allOf":[{"$ref":"#/components/schemas/ScanAssetsDto"}]},"measurements":{"nullable":true,"description":"The body measurements of the scan, as also returned by `GET /scans/{scanId}/measurements`. `null` while they are not yet available.","type":"object","allOf":[{"$ref":"#/components/schemas/MeasurementDto"}]},"bodyfat":{"nullable":true,"description":"The body composition of the scan, as also returned by `GET /scans/{scanId}/bodyfat`. `null` while it is not yet available.","type":"object","allOf":[{"$ref":"#/components/schemas/BodyfatDto"}]}},"required":["id","status","prismScanId","deviceConfigName","assetConfigId","weight","height","userId","userToken","createdAt","updatedAt","measurements","bodyfat"]},"Weight":{"type":"object","properties":{"value":{"type":"number","minimum":1,"description":"The numeric weight"},"unit":{"type":"string","enum":["kg","lb"],"description":"The unit of the weight value"}},"required":["value","unit"]},"Height":{"type":"object","properties":{"value":{"type":"number","minimum":1,"description":"The numeric height"},"unit":{"type":"string","enum":["m","in"],"description":"The unit of the height value"}},"required":["value","unit"]},"ScanAssetsDto":{"type":"object","properties":{"id":{"type":"string","description":"The unique ID of the scan assets"},"scanId":{"type":"string","description":"The ID of the scan associated with the assets"},"captureData":{"type":"string","nullable":true,"enum":["started","succeeded","failed"],"description":"The status of the capture data associated with the scan"},"captureDataUpdatedAt":{"type":"string","nullable":true,"description":"The date and time the capture data was last updated"},"body":{"type":"string","nullable":true,"enum":["started","succeeded","failed"],"description":"The status of the body associated with the scan"},"bodyUpdatedAt":{"type":"string","nullable":true,"description":"The date and time the body was last updated"},"fittedBody":{"type":"string","nullable":true,"enum":["started","succeeded","failed"],"description":"The status of the fitted body associated with the scan"},"fittedBodyUpdatedAt":{"type":"string","nullable":true,"description":"The date and time the fitted body was last updated"},"measurement":{"type":"string","nullable":true,"enum":["started","succeeded","failed"],"description":"The status of the measurement associated with the scan"},"measurementUpdatedAt":{"type":"string","nullable":true,"description":"The date and time the measurement was last updated"},"createdAt":{"type":"string","description":"The date and time the scan assets were created"},"updatedAt":{"type":"string","description":"The date and time the scan assets were last updated"}},"required":["id","scanId","captureData","captureDataUpdatedAt","body","bodyUpdatedAt","fittedBodyUpdatedAt","measurementUpdatedAt","createdAt","updatedAt"]},"MeasurementDto":{"type":"object","properties":{"neckFit":{"type":"number","description":"Neck circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"shoulderFit":{"type":"number","description":"Shoulder circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"upperChestFit":{"type":"number","description":"Upper chest circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"chestFit":{"type":"number","description":"Chest circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"lowerChestFit":{"type":"number","description":"Lower chest circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"waistFit":{"type":"number","description":"Waist circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"waistNavyFit":{"type":"number","description":"Waist circumference at the navel, the site used by the US Navy body fat method, in metres (metric) or inches (imperial). -1 when the measurement is not available."},"stomachFit":{"type":"number","description":"Stomach circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"hipsFit":{"type":"number","description":"Hips circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"upperThighLeftFit":{"type":"number","description":"Left upper thigh circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"upperThighRightFit":{"type":"number","description":"Right upper thigh circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"thighLeftFit":{"type":"number","description":"Left thigh circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"thighRightFit":{"type":"number","description":"Right thigh circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"lowerThighLeftFit":{"type":"number","description":"Left lower thigh circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"lowerThighRightFit":{"type":"number","description":"Right lower thigh circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"calfLeftFit":{"type":"number","description":"Left calf circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"calfRightFit":{"type":"number","description":"Right calf circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"ankleLeftFit":{"type":"number","description":"Left ankle circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"ankleRightFit":{"type":"number","description":"Right ankle circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"midArmRightFit":{"type":"number","description":"Right mid arm circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"midArmLeftFit":{"type":"number","description":"Left mid arm circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"lowerArmRightFit":{"type":"number","description":"Right lower arm circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"lowerArmLeftFit":{"type":"number","description":"Left lower arm circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"waistToHipRatio":{"type":"number","description":"Waist circumference divided by hip circumference. Unitless, rounded to 2 decimals."},"forearmLeftFit":{"type":"number","description":"Left forearm circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"forearmRightFit":{"type":"number","description":"Right forearm circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"wristLeftFit":{"type":"number","description":"Left wrist circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"wristRightFit":{"type":"number","description":"Right wrist circumference in metres (metric) or inches (imperial). -1 when the measurement is not available."},"bmiPredicted":{"type":"number","description":"Body mass index predicted from the 3D body model, rounded to 1 decimal."},"bmiConfidence":{"type":"number","description":"Confidence score of the predicted body mass index, rounded to 3 decimals."},"bodyRoundnessIndex":{"type":"number","description":"Body roundness index (BRI). Unitless."},"fullBodyVolume":{"type":"number","description":"Total body volume in cubic metres (metric) or cubic feet (imperial)."}},"required":["neckFit","shoulderFit","upperChestFit","chestFit","lowerChestFit","waistFit","waistNavyFit","stomachFit","hipsFit","upperThighLeftFit","upperThighRightFit","thighLeftFit","thighRightFit","lowerThighLeftFit","lowerThighRightFit","calfLeftFit","calfRightFit","ankleLeftFit","ankleRightFit","midArmRightFit","midArmLeftFit","lowerArmRightFit","lowerArmLeftFit","waistToHipRatio","forearmLeftFit","forearmRightFit","wristLeftFit","wristRightFit","bmiPredicted","bmiConfidence","bodyRoundnessIndex","fullBodyVolume"]},"BodyfatDto":{"type":"object","properties":{"bodyfatMethod":{"type":"string","enum":["adam","army","army_athlete","coco","coco_bri","coco_legacy","coco2","coco2_oc","extended_navy_thinboost","tina_fit"],"description":"Bodyfat method for the scan"},"bodyfatPercentage":{"type":"number","nullable":true,"description":"Bodyfat percentage"},"leanMassPercentage":{"type":"number","nullable":true,"description":"Lean mass percentage"},"fatMass":{"type":"number","nullable":true,"description":"fat mass in kg"},"leanMass":{"type":"number","nullable":true,"description":"lean mass in kg"},"vatPercentage":{"type":"number","nullable":true,"description":"visceral adipose tissue (VAT) in %"},"vatMass":{"type":"number","nullable":true,"description":"visceral adipose tissue (VAT) in kg"},"appendicularLeanMassPercentage":{"type":"number","nullable":true,"description":"appendicular lean mass (ALM) in %"},"appendicularLeanMass":{"type":"number","nullable":true,"description":"appendicular lean mass (ALM) in kg"},"skeletalMuscleMassPercentage":{"type":"number","nullable":true,"description":"skeletal muscle mass (SMM) in %"},"skeletalMuscleMass":{"type":"number","nullable":true,"description":"skeletal muscle mass (SMM) in kg"}},"required":["bodyfatMethod","bodyfatPercentage","leanMassPercentage","fatMass","leanMass","vatPercentage","vatMass","appendicularLeanMassPercentage","appendicularLeanMass","skeletalMuscleMassPercentage","skeletalMuscleMass"]}}},"paths":{"/scans/{scanId}":{"delete":{"description":"\nThis operation deletes a specific **scan**.\n\nAfter deletion, the scan and its associated data are no longer available for retrieval or reporting.\n","operationId":"ScansController_remove_1","parameters":[{"name":"scanId","required":true,"in":"path","description":"The unique ID of the scan.","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json;v=1":{"schema":{"$ref":"#/components/schemas/ScanDto"}}}}},"summary":"Delete a scan.","tags":["Scans"]}}}}
````

## Get upload URL for a scan.

> \
> This operation provides a pre-signed \*\*upload URL\*\* for a specific \*\*scan\*\*.\
> \
> Use the returned URL to upload the capture data for this scan directly with a \*\*PUT\*\* request to Prism.<br>

````json
{"openapi":"3.0.3","info":{"title":"Prism Hosted API","version":"1"},"tags":[{"name":"Scans","description":"### Create and manage body scans for users.\n\nEach scan generates body measurements, body composition metrics, various 3D and image assets, and can further generate **Future Me** predictions.\nScans are always linked to a specific user and can be created, queried, and deleted independently of other scans.\n\nCommon configurations:\n- Default Native Pipeline: assetConfigId == \"25f6d3a6-a634-40c3-8452-0342bee242d0\"\n- Default Web Pipeline: assetConfigId == \"ee651a9e-6de1-4621-a5c9-5d31ca874718\"\n- Legacy Native Pipeline: assetConfigId == \"c979ab6b-e46b-4c1c-89e1-bb02435b5cbf\"\n\nAll Scans endpoints require the following headers:\n```http\naccept: application/json;v=1\nauthorization: Bearer {{API_KEY}}\ncontent-type: application/json\n```\nReplace `{{API_KEY}}` with your Prism API key for the selected environment.","parent":"Prism Hosted API"}],"servers":[{"url":"https://api.hosted.prismlabs.tech","description":"Production environment for Prism Hosted API"},{"url":"https://sandbox-api.hosted.prismlabs.tech","description":"Sandbox environment for Prism Hosted API"}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http","name":"Authorization","in":"header"}},"schemas":{"ScanUploadUrlDto":{"type":"object","properties":{"expirationTime":{"type":"string","description":"Expiration time of the signed url"},"url":{"type":"string","description":"A signed url to upload capture data to prism"}},"required":["expirationTime","url"]}}},"paths":{"/scans/{scanId}/upload-url":{"post":{"description":"\nThis operation provides a pre-signed **upload URL** for a specific **scan**.\n\nUse the returned URL to upload the capture data for this scan directly with a **PUT** request to Prism.\n","operationId":"ScanUploadUrlController_create_1","parameters":[{"name":"scanId","required":true,"in":"path","description":"The unique ID of the scan.","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json;v=1":{"schema":{"$ref":"#/components/schemas/ScanUploadUrlDto"}}}}},"summary":"Get upload URL for a scan.","tags":["Scans"]}}}}
````
