---
title: "Start processing a visit"
method: POST
path: "/v1/visits/{visit_id}/process"
tags: ["Visits"]
---

# Start processing a visit

`POST /v1/visits/{visit_id}/process`

## Request

- Base URL: `https://api.navigateai.co`
- URL: `https://api.navigateai.co/v1/visits/{visit_id}/process`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/navigateai/apis/navigateai-api/docs/v1/visits/:visit_id/process/post.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `visit_id` string, required

## Response `200`

OK

- ProcessVisitResponse
  - `visit` VisitExternalSchema, required
    - `id` string, required
    - `type` string, required: Display name of the visit type. Deprecated: Prefer using visit_type instead.
    - `visit_type` VisitTypeExternalSchema, required
      - `id` string, required
      - `display_name` string, required
      - `slug` string, required: URL-friendly identifier for this visit type.
    - `visit_request_status` 'visit_started' | 'uploading' | 'processing' | 'in_review' | 'completed' | 'cancelled', required: Customer facing visit statuses. Each VisitRequestStatus should map directly to a ExternalVisitRequestStatus. But we don't need ExternalVisitRequestStatus to directly map back to VisitRequestStatus.
    - `visited_at` string, date-time, required
    - `visited_by` UserExternalSchema, required
      - `id` string, required
      - `email` string, required
      - `first_name` string, required
      - `last_name` string, required
      - `reference_key` string, nullable, required: External identifier for this user.
    - `reviewed_by` UserExternalSchema
      - `id` string, required
      - `email` string, required
      - `first_name` string, required
      - `last_name` string, required
      - `reference_key` string, nullable, required: External identifier for this user.
    - `video` VideoExternalSchema, required
      - `id` string, required
      - `duration_ms` integer, required
      - `height` integer, required
      - `width` integer, required
    - `product_url` string, required: Link to the NavigateAI dashboard for reviewing this visit.
    - `product_pdf_url` string, required: Link to download a PDF report for this visit.
    - `location_id` string, required
    - `work_order_id` string, nullable, required: The work order this visit is associated with, if any.
    - `access_code_metadata` object, nullable, required: Metadata from the access code that initiated this visit, if applicable.
    - `dispatch_request` VisitDispatchRequestExternalSchema, required
      - `id` string, required: NavigateAI identifier for the dispatch request.
      - `reference_key` string, nullable, required: Customer-provided identifier for the dispatch request, if one was set.
      - `metadata` object, required: Customer-provided metadata associated with the dispatch request.
    - `notes` string, nullable, required: Summary notes generated for this visit.
    - `metadata` object, required: Additional structured data captured for this visit.

## Changes

- **2026-10-15** `b928dbabd4e8`: 1 info
  - added the required property `visit/dispatch_request` to the response with the `200` status

[Operation history](https://skmtc.dev/navigateai/apis/navigateai-api/changes/v1/visits/:visit_id/process/post.md)

---

[API](https://skmtc.dev/navigateai/apis/navigateai-api.md) - [All operations](https://skmtc.dev/navigateai/apis/navigateai-api/llms.txt) - [OpenAPI document](https://skmtc.dev/navigateai/apis/navigateai-api/revisions/912b48581de7?raw)
