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

# Labs

## List nearby lab draw sites

> Returns nearby Patient Service Centers (lab draw sites) for a US zip code, used when placing a GO\_TO\_LAB order.

```json
{"openapi":"3.1.0","info":{"title":"Terra Vantage API","version":"2026.09.16"},"servers":[{"url":"https://vantage.tryterra.co"}],"security":[{"BasicAuth":[]},{"DataBearer":[],"DevIDHeader":[]}],"components":{"securitySchemes":{"BasicAuth":{"type":"http","scheme":"basic","description":"Authenticate with your Terra API credentials: username = your Terra\n`dev-id`, password = your Terra API key — the same credentials used for\nevery other Terra API. The header pair `dev-id` + `x-api-key` is also\naccepted. Suspended credentials receive 403; accounts without the\nVantage entitlement receive 403 once entitlement enforcement is\nenabled. Once the credential validator is configured, backfilled keys\nalso honor current token expiry, revocation, audience and Vantage scopes.\nInvalid tokens receive 401, insufficient scopes 403 and an unavailable\nvalidator 503. These checks remain active when product policy is off.\n"},"DataBearer":{"type":"http","scheme":"bearer","bearerFormat":"Terra data token","description":"A data-plane token with vantage:read for reads or vantage:write for writes. Requires dev-id. Write includes read; data:read alone does not grant Vantage. Available after the API credential validator is configured."}},"schemas":{"ListLabsResponse":{"type":"object","required":["labs"],"properties":{"labs":{"type":"array","items":{"$ref":"#/components/schemas/PSCLocation"}}}},"PSCLocation":{"description":"A Patient Service Center (lab draw site).","type":"object","required":["code","name","address","phone","latitude","longitude","scheduling","distance"],"properties":{"code":{"type":"string"},"name":{"type":"string"},"address":{"$ref":"#/components/schemas/AddressDTO"},"phone":{"type":"string"},"hours":{"type":"object","additionalProperties":{"type":"string"},"description":"Opening hours keyed by weekday."},"latitude":{"type":"number"},"longitude":{"type":"number"},"scheduling":{"type":"boolean","description":"Whether online scheduling is open."},"distance":{"type":"number","description":"Miles from the requested zip."}}},"AddressDTO":{"description":"Physical address for shipping test kits","type":"object","properties":{"address_line_1":{"type":"string","minLength":1,"maxLength":100},"address_line_2":{"type":"string","maxLength":100},"administrative_area":{"type":"string","maxLength":50},"city":{"type":"string","minLength":1,"maxLength":50},"country_code":{"type":"string","description":"ISO 3166-1 alpha-2 (e.g., \"GB\", \"US\")"},"id":{"type":"integer"},"is_validated":{"type":"boolean"},"postal_code":{"type":"string"}},"required":["address_line_1","administrative_area","city","country_code","postal_code"]},"ProblemDetail":{"description":"Standard error response format following RFC 7807 specification","type":"object","properties":{"detail":{"type":"string"},"instance":{"type":"string"},"status":{"type":"integer"},"title":{"type":"string"},"type":{"type":"string"}}}}},"paths":{"/api/v1/labs":{"get":{"summary":"List nearby lab draw sites","tags":["labs"],"description":"Returns nearby Patient Service Centers (lab draw sites) for a US zip code, used when placing a GO_TO_LAB order.","parameters":[{"name":"zip_code","in":"query","required":true,"description":"5-digit US zip (optionally with 4-digit suffix)","schema":{"type":"string"}}],"responses":{"200":{"description":"Nearby lab draw sites","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListLabsResponse"}}}},"400":{"description":"Missing or invalid zip code","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"description":"Missing or invalid credentials","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"503":{"description":"Current authorization is unavailable; retry after the dependency recovers.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}}}}}}}
```
