# 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\*\*.\
> \
> Use the \`limit\`, \`cursor\`, and \`order\` query parameters to control pagination behavior.\
> \
> 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"}}},"paths":{"/scans":{"get":{"description":"\nThis operation returns a paginated list of **scans** available for a specific **user** identified by the partner-provided **token**.\n\nUse the `limit`, `cursor`, and `order` query parameters to control pagination behavior.\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":false,"in":"query","description":"Maximum number of scans to return in a single page.","schema":{"type":"number"}}],"responses":{"200":{"description":"","content":{"application/json;v=1":{"schema":{"type":"object"}}}}},"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":{"enum":["IPHONE_SCANNER","ANDROID_SCANNER"],"type":"string","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":{"enum":["CREATED","PROCESSING","READY","FAILED"],"type":"string","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":{"enum":["IPHONE_SCANNER","ANDROID_SCANNER"],"type":"string","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,"allOf":[{"$ref":"#/components/schemas/MeasurementDto"}]},"bodyfat":{"nullable":true,"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":{"enum":["kg","lb"],"type":"string","description":"The unit of the weight value"}},"required":["value","unit"]},"Height":{"type":"object","properties":{"value":{"type":"number","minimum":1,"description":"The numeric height"},"unit":{"enum":["m","in"],"type":"string","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"},"shoulderFit":{"type":"number"},"upperChestFit":{"type":"number"},"chestFit":{"type":"number"},"lowerChestFit":{"type":"number"},"waistFit":{"type":"number"},"waistNavyFit":{"type":"number"},"stomachFit":{"type":"number"},"hipsFit":{"type":"number"},"upperThighLeftFit":{"type":"number"},"upperThighRightFit":{"type":"number"},"thighLeftFit":{"type":"number"},"thighRightFit":{"type":"number"},"lowerThighLeftFit":{"type":"number"},"lowerThighRightFit":{"type":"number"},"calfLeftFit":{"type":"number"},"calfRightFit":{"type":"number"},"ankleLeftFit":{"type":"number"},"ankleRightFit":{"type":"number"},"midArmRightFit":{"type":"number"},"midArmLeftFit":{"type":"number"},"lowerArmRightFit":{"type":"number"},"lowerArmLeftFit":{"type":"number"},"waistToHipRatio":{"type":"number"},"forearmLeftFit":{"type":"number"},"forearmRightFit":{"type":"number"},"wristLeftFit":{"type":"number"},"wristRightFit":{"type":"number"},"bmiPredicted":{"type":"number"},"bmiConfidence":{"type":"number"},"bodyRoundnessIndex":{"type":"number"},"fullBodyVolume":{"type":"number"}},"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":{"enum":["CREATED","PROCESSING","READY","FAILED"],"type":"string","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":{"enum":["IPHONE_SCANNER","ANDROID_SCANNER"],"type":"string","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,"allOf":[{"$ref":"#/components/schemas/MeasurementDto"}]},"bodyfat":{"nullable":true,"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":{"enum":["kg","lb"],"type":"string","description":"The unit of the weight value"}},"required":["value","unit"]},"Height":{"type":"object","properties":{"value":{"type":"number","minimum":1,"description":"The numeric height"},"unit":{"enum":["m","in"],"type":"string","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"},"shoulderFit":{"type":"number"},"upperChestFit":{"type":"number"},"chestFit":{"type":"number"},"lowerChestFit":{"type":"number"},"waistFit":{"type":"number"},"waistNavyFit":{"type":"number"},"stomachFit":{"type":"number"},"hipsFit":{"type":"number"},"upperThighLeftFit":{"type":"number"},"upperThighRightFit":{"type":"number"},"thighLeftFit":{"type":"number"},"thighRightFit":{"type":"number"},"lowerThighLeftFit":{"type":"number"},"lowerThighRightFit":{"type":"number"},"calfLeftFit":{"type":"number"},"calfRightFit":{"type":"number"},"ankleLeftFit":{"type":"number"},"ankleRightFit":{"type":"number"},"midArmRightFit":{"type":"number"},"midArmLeftFit":{"type":"number"},"lowerArmRightFit":{"type":"number"},"lowerArmLeftFit":{"type":"number"},"waistToHipRatio":{"type":"number"},"forearmLeftFit":{"type":"number"},"forearmRightFit":{"type":"number"},"wristLeftFit":{"type":"number"},"wristRightFit":{"type":"number"},"bmiPredicted":{"type":"number"},"bmiConfidence":{"type":"number"},"bodyRoundnessIndex":{"type":"number"},"fullBodyVolume":{"type":"number"}},"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/{id}":{"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":"id","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":{"enum":["CREATED","PROCESSING","READY","FAILED"],"type":"string","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":{"enum":["IPHONE_SCANNER","ANDROID_SCANNER"],"type":"string","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,"allOf":[{"$ref":"#/components/schemas/MeasurementDto"}]},"bodyfat":{"nullable":true,"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":{"enum":["kg","lb"],"type":"string","description":"The unit of the weight value"}},"required":["value","unit"]},"Height":{"type":"object","properties":{"value":{"type":"number","minimum":1,"description":"The numeric height"},"unit":{"enum":["m","in"],"type":"string","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"},"shoulderFit":{"type":"number"},"upperChestFit":{"type":"number"},"chestFit":{"type":"number"},"lowerChestFit":{"type":"number"},"waistFit":{"type":"number"},"waistNavyFit":{"type":"number"},"stomachFit":{"type":"number"},"hipsFit":{"type":"number"},"upperThighLeftFit":{"type":"number"},"upperThighRightFit":{"type":"number"},"thighLeftFit":{"type":"number"},"thighRightFit":{"type":"number"},"lowerThighLeftFit":{"type":"number"},"lowerThighRightFit":{"type":"number"},"calfLeftFit":{"type":"number"},"calfRightFit":{"type":"number"},"ankleLeftFit":{"type":"number"},"ankleRightFit":{"type":"number"},"midArmRightFit":{"type":"number"},"midArmLeftFit":{"type":"number"},"lowerArmRightFit":{"type":"number"},"lowerArmLeftFit":{"type":"number"},"waistToHipRatio":{"type":"number"},"forearmLeftFit":{"type":"number"},"forearmRightFit":{"type":"number"},"wristLeftFit":{"type":"number"},"wristRightFit":{"type":"number"},"bmiPredicted":{"type":"number"},"bmiConfidence":{"type":"number"},"bodyRoundnessIndex":{"type":"number"},"fullBodyVolume":{"type":"number"}},"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/{id}":{"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":"id","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"]}}}}
````
