Create a visit

Create a new visit with guests and hosts.

Creating a visit is a three-step process: look up the available visit types, optionally fetch the custom field schema, then submit the visit.

Step 1 — Fetch visit types

Call GET /v1.0/visits/visit-types with your location_id to get the list of active visit types. Each type has an id and a human-readable name (e.g. "Interview", "Contractor").

Use the id from this response as the type_id field when creating or updating a visit. If the location has no custom visit types configured, the list will be empty and you can omit type_id.

GET /v1.0/visits/visit-types?location_id=<location_id>

Step 2 — Fetch the custom field schema (if applicable)

Call GET /v1.0/visits/custom-visit-forms with your location_id. The response describes every custom field that must or can be supplied when creating a visit:

  • guest_fields — collected per guest (e.g. "Company name", "Vehicle plate")
  • visit_fields — collected once for the entire visit (e.g. "Purpose of visit")

Each field has a type (SHORT_TEXT, LONG_TEXT, or SINGLE_SELECT), an id, a label, and a required flag. For SINGLE_SELECT fields, the allowed values are listed under choices.

If data is null, the location has no custom form and you can skip the custom_fields arrays entirely.

GET /v1.0/visits/custom-visit-forms?location_id=<location_id>

Step 3 — Create the visit

Call POST /v1.0/visits with the data collected above.

{
  "location_id": "<location_id>",
  "start": "2025-06-01T09:00:00-05:00",
  "type_id": "<id from Step 1>",
  "hosts": [{ "user_id": "<robin-user-id>", "is_visible_to_guests": true, "send_notifications": true }],
  "guests": [
    {
      "guest_name": "Jane Smith",
      "guest_email": "[email protected]",
      "custom_fields": [
        { "id": "<field-id from Step 2>", "value": "Acme Corp" }
      ]
    }
  ],
  "custom_fields": [
    { "id": "<visit-field-id from Step 2>", "value": "Sales meeting" }
  ]
}

Guest-level custom_fields go inside each guest object. Visit-level custom_fields go at the top level of the request body.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params
string
required

Location ID where the visit takes place

date-time
deprecated

Deprecated. Use start instead.

date-time

ISO 8601 scheduled start time.

string
required

Visit type identifier: the UUID id from GET /visits/visit-types for this location.

hosts
array of objects
required
length between 1 and 5

At least one host is required

hosts*
string
required

Robin user ID of the host

boolean
Defaults to true

Whether the host is visible to guests. Defaults to true.

boolean
Defaults to true

Whether the host receives notifications. Defaults to true.

guests
array of objects
required
length ≥ 1

Guests to invite to the visit

guests*
string

Optional existing guest invite ID

string
required

Name of the guest

string
required

Email address of the guest

custom_fields
array of objects

Custom field values for this guest

custom_fields
string

Instructions shown to guests upon arrival

boolean
Defaults to true

Whether to send email invites to guests. Defaults to true.

boolean
Defaults to false

Whether to provision access credentials for guests. Defaults to false.

boolean
Defaults to false

Whether to immediately check in the guests. Defaults to false.

custom_fields
array of objects

Custom field values for this visit

custom_fields
Responses

400

Validation error — missing or invalid parameters

401

Authentication required — no valid user identity

500

Internal server error

Language
Credentials
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json