---
title: "Confirm your AI assistant is connected"
method: POST
path: "/setup/ping"
tags: ["Setup"]
---

# Confirm your AI assistant is connected

`POST /setup/ping`

## Request

- Base URL: `https://api.emailchaser.com/r`
- URL: `https://api.emailchaser.com/r/setup/ping`
- Auth: HTTP bearer

Called by the customer's AI assistant as its first request, to confirm the API key works. Records which assistant connected and when on the key itself, and completes the "Set up with AI" onboarding task for the key's workspace. Idempotent: repeat pings simply refresh the recorded assistant and timestamp. The optional agent field is the assistant's name in any form; it is normalized to a short lowercase identifier (e.g. chatgpt, claude, grok, gemini, copilot) and echoed back.

## Request body

- ModelsSetupPingRequest
  - `agent` string: Agent is the assistant's self-reported name, in any form; the backend normalizes it to a short lowercase identifier.

## Response `200`

Connection confirmed

- ModelsSetupPingResponse
  - `agent` string
  - `ok` boolean

## Other responses

- `400`: Malformed request body
- `401`: Unauthorized - invalid or missing API key
- `500`: Failed to record ping

---

[API](https://skmtc.dev/emailchaser/apis/emailchaser-api.md) · [All operations](https://skmtc.dev/emailchaser/apis/emailchaser-api/llms.txt) · [OpenAPI document](https://skmtc.dev/emailchaser/apis/emailchaser-api/revisions/8b114990abb7?raw)
