---
title: "Log an outreach activity"
method: POST
path: "/v1/people/{id}/activities"
tags: ["People"]
---

# Log an outreach activity

`POST /v1/people/{id}/activities`

## Request

- Base URL: `https://api.mentio.dev`
- URL: `https://api.mentio.dev/v1/people/{id}/activities`
- Auth: HTTP bearer

Record that a teammate reached out to this person: an email, a DM, a call. The first activity claims an unowned person for whoever reached out and moves not_contacted to contacted; an existing owner and a later stage are kept. `memberId` defaults to the signed-in member; an API key that omits it logs an unattributed activity, which claims nobody. With `groupId`, the call works inside that keyword group: its people, and its own tags, notes, mute, merges and activities, apart from the workspace's and from every other group's.

## Path parameters

- `id` string, required: Person id (aut_...).

## Query parameters

- `groupId` string: Scope to one keyword group (grp_...): only people who mentioned that group's keywords, with that group's own tags, notes, mute, merges, activities and segments. Omit for the whole workspace.

## Request body

- object
  - `channel` 'email' | 'x' | 'linkedin' | 'bluesky' | 'reddit' | 'github' | 'call' | 'meeting' | 'other', required: How they were reached: email, x, linkedin, bluesky, reddit, github, call, meeting or other.
  - `note` string: What was sent or said, briefly.
  - `occurredAt` string, date-time: When the contact happened (ISO 8601, or epoch ms). Defaults to now.
  - `memberId` string: The member who reached out (user id). Defaults to the signed-in member; an API key that omits it logs an unattributed activity.

## Response `201`

The logged activity

- PersonActivity
  - `id` string, required: Activity id (act_...).
  - `personId` string, required: The person it belongs to (aut_...).
  - `channel` 'email' | 'x' | 'linkedin' | 'bluesky' | 'reddit' | 'github' | 'call' | 'meeting' | 'other', required: How they were reached: email, x, linkedin, bluesky, reddit, github, call, meeting or other.
  - `note` string, required: What was sent or said, briefly; empty when nothing was written.
  - `member` object, nullable, required: Who reached out; null when an API key logged it without naming a member, or that member left the workspace.
    - `id` string, required: User id of the workspace member.
    - `name` string, nullable, required
    - `email` string, nullable, required
  - `occurredAt` string, required: When the contact happened.
  - `createdAt` string, required: When it was logged.

## Other responses

- `400`: Invalid body, or memberId is not a workspace member
- `401`: Missing or invalid API key
- `404`: No mention by this person in this scope, or no such group

---

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