---
title: "Get the Getting started checklist"
method: GET
path: "/onboarding/"
tags: ["onboarding"]
---

# Get the Getting started checklist

`GET /onboarding/`

## Request

- Base URL: `https://api.getoneprofile.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.getoneprofile.ai/onboarding/`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

Get the organization's Getting started checklist: six steps from the first people search to the first launched sequence. Created on first read. Every read while a step is pending checks the workspace for what the pending steps ask for and completes the ones it finds, so progress is right whether the step was done in the dashboard, through the API or from the Chrome extension.

## Response `200`

Successful Response

- OnboardingReadSchema
  - `completed_at` string, date-time, nullable, required: When the last step was completed; null while any step is pending.
  - `created_at` string, date-time, required
  - `dismissed_at` string, date-time, nullable, required: When someone hid the checklist for the workspace; null while it shows.
  - `id` string, uuid, required
  - `items` OnboardingItemReadSchema[], required: The steps, in checklist order.
    - `completed_at` string, date-time, nullable, required
    - `id` string, uuid, required
    - `sort_order` integer, required
    - `step_key` 'find_leads' | 'add_enrichment' | 'add_ai_column' | 'connect_mailbox' | 'connect_linkedin' | 'launch_sequence', required: The six steps a new workspace is walked through, named by outcome. Stored as a plain string column, so a seventh step is a new member here plus a row the next read seeds: no enum migration, no backfill.
  - `targets` OnboardingTargetsReadSchema, required: Where the pending steps deep-link; every field is null once the checklist is done.
    - `draft_sequence_id` string, uuid, nullable, required: A draft sequence waiting to be launched; null when there is none.
    - `latest_table_id` string, uuid, nullable, required: The newest table, for the add-column steps; null when there is none yet.
    - `sender_profile_id` string, uuid, nullable, required: The sender whose LinkedIn tab the connect step opens: one that already sends email when there is one; null when the workspace has no sender.
  - `updated_at` string, date-time, required

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `422`: Invalid request made to the API.
- `500`: Internal server error.
- `502`: Bad gateway error.
- `503`: Service unavailable.

---

[API](https://skmtc.dev/getoneprofile/apis/api-reference-oneprofile.md) · [All operations](https://skmtc.dev/getoneprofile/apis/api-reference-oneprofile/llms.txt) · [OpenAPI document](https://skmtc.dev/getoneprofile/apis/api-reference-oneprofile/revisions/4a6bd71e3f02?raw)
