<!-- Generated by `just docs` from catalog/toolkits/amplitude.yaml, catalog/expansions/amplitude.yaml, catalog/evals/scorecard.json. Edit the source, not this file. -->

# Amplitude

Product analytics. Send events, set user and group properties, query cohorts, run funnel analysis, and keep the taxonomy tidy.

| Property | Value |
| --- | --- |
| Slug | `amplitude` |
| Definition version | `0.1.0` |
| Base URL | `https://amplitude.com` |
| Auth schemes | `api_key` |
| Action tools | 32 |
| By class | 16 read, 14 write, 2 destructive |
| Triggers | 0 |
| Provider rate limit | not declared, so outbound calls are unpaced |

## Measured routing accuracy

51 golden cases replayed through the router over the whole index: measured over corpus `ea4f12ad2948` (65 toolkits, 2283 tools indexed and 13 declared uncallable), 32 cases written by hand and 19 cases from the paraphrase pass. A case counts as top-1 when its gold tool ranked first and top-8 when it reached the slate at all.

| Measure | Cases | Share |
| --- | --- | --- |
| top-1 | 37/51 | 72.5% |
| top-8 | 47/51 | 92.2% |

The sweep is offline: the reranker is a deterministic identity fake that returns candidates in the order retrieval produced them, so top-1 measures retrieval order rather than a reranked slate. `just eval-live` measures the same cases through the live reranker.

## Authentication

Connect an entity with `ConnectionsService.InitiateConnection`, naming this toolkit's slug. Credentials stay in the connections vault; callers hold connected-account ids only.

### `api_key`

| Property | Value |
| --- | --- |
| Placement | `header` |
| Name | `Authorization` |
| Rendered as | `Basic {key}` |

Submit the key with `ConnectionsService` rather than putting it in a request; it is sealed at rest and never returned.

## Tools

32 action tools. The catalog-wide slug is `amplitude.<tool>`, which is what `search_tools` returns and `call_tool` takes.

### `amplitude.send_event`

Send one or more analytics events to Amplitude in real time. Use when the user wants to log, track, record, or fire an event as it happens: a page view, button click, purchase, or signup. For a large historical backlog sent at once, use batch_upload_events instead.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `POST /2/httpapi`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `events` | array of object | **yes** | One or more events to ingest. |
| `events[].device_id` | string | no | Device or anonymous id for the user. Provide this or user_id. |
| `events[].event_properties` | object | no | Free-form properties describing the event, e.g. {"plan": "pro"}. |
| `events[].event_type` | string | **yes** | Name of the event, e.g. "Signed Up" or "Purchase Completed". |
| `events[].insert_id` | string | no | Unique id for this event, used to deduplicate retried sends. |
| `events[].time` | integer | no | Event timestamp in milliseconds since epoch. Defaults to now. |
| `events[].user_id` | string | no | Your app's id for the user. Provide this or device_id. |
| `events[].user_properties` | object | no | User properties to set alongside this event. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `code` | integer |  |
| `events_ingested` | integer |  |
| `server_upload_time` | integer |  |

Also retrieved by: "log this action as it happens", "fire off a tracking hit for this click", "record that someone just did this", "push a live analytics hit right now", "report this action to our analytics tool".

### `amplitude.batch_upload_events`

Upload a large batch of historical or backlogged events in one request. Use when the user wants to backfill, bulk import, or replay a big set of past events rather than send them live. Has a higher throughput ceiling than send_event but is not meant for real-time delivery.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `POST /batch`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `events` | array of object | **yes** | The events to upload. |
| `events[].device_id` | string | no | Device or anonymous id for the user. Provide this or user_id. |
| `events[].event_properties` | object | no | Free-form properties describing the event. |
| `events[].event_type` | string | **yes** | Name of the event, e.g. "Signed Up" or "Purchase Completed". |
| `events[].insert_id` | string | no | Unique id for this event, used to deduplicate retried sends. |
| `events[].time` | integer | no | Event timestamp in milliseconds since epoch. |
| `events[].user_id` | string | no | Your app's id for the user. Provide this or device_id. |
| `events[].user_properties` | object | no | User properties to set alongside this event. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `code` | integer |  |
| `events_ingested` | integer |  |
| `server_upload_time` | integer |  |

Also retrieved by: "backfill a bunch of old activity at once", "bulk import last month's server logs", "replay a big pile of historical actions", "catch up analytics on stuff we missed tracking".

### `amplitude.identify_user`

Set or update a user's profile properties in Amplitude without logging an event. Use when the user wants to attach, set, or update attributes on a user profile, such as plan tier or signup date, outside of a tracked event.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `POST /identify`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `device_id` | string | no | Device or anonymous id for the user. Provide this or user_id. |
| `user_id` | string | no | Your app's id for the user. Provide this or device_id. |
| `user_properties` | object | **yes** | Property operations to apply, e.g. {"$set": {"plan": "pro"}, "$add": {"login_count": 1}}. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `code` | integer |  |
| `events_ingested` | integer |  |

Also retrieved by: "stamp this person's plan tier on their profile", "attach an attribute to this account without a tracking hit", "update what we know about this person", "tag this user with a new attribute".

### `amplitude.group_identify`

Set or update properties on a group, such as a company account, workspace, or team, and associate members with it. Use when the user wants to tag or update account-level or organization-level attributes for group-based analytics rather than one user.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `POST /groupidentify`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `group_properties` | object | **yes** | Property operations to apply, e.g. {"$set": {"plan": "enterprise"}}. |
| `group_type` | string | **yes** | Name of the group type, e.g. "company" or "workspace". |
| `group_value` | string | **yes** | Identifier of the specific group, e.g. a company name or id. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `code` | integer |  |
| `events_ingested` | integer |  |

Also retrieved by: "tag this whole company account", "set an attribute across the workspace, not one person", "update the org-level info for this team", "mark every seat in this account with a shared trait".

### `amplitude.get_user_activity`

Get a user's profile: their current property values and most recent event activity. Use when the user asks what someone has been doing in the product or wants to look up a specific user's profile. For cohort membership rather than one user, use get_cohort or list_cohorts.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /api/2/useractivity`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `limit` | integer | no | Max number of recent events to return. Defaults to 100. |
| `user_id` | string | **yes** | Your app's id for the user to look up. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `events` | array of object |  |
| `events[].event_properties` | object |  |
| `events[].event_time` | string |  |
| `events[].event_type` | string |  |
| `user_data` | object |  |
| `user_data.properties` | object |  |
| `user_data.user_id` | string |  |

Also retrieved by: "what has this person been doing lately", "pull up someone's recent actions", "show me this account's activity feed", "look up what a specific person did in the app".

### `amplitude.list_cohorts`

List the behavioral cohorts defined in the project: id, name, size, and when each was last computed. Use when the user asks what cohorts, segments, or audiences exist, or wants a cohort's id for another tool.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /api/3/cohorts`.

Takes no arguments.

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `cohorts` | array of object |  |
| `cohorts[].id` | string |  |
| `cohorts[].last_computed` | string |  |
| `cohorts[].name` | string |  |
| `cohorts[].size` | integer |  |

Also retrieved by: "what segments do we have set up", "show every audience we've built", "what groups of users exist already".

### `amplitude.get_cohort`

Get one cohort's details by id: its name, definition summary, size, and when it was last computed. Use when the user names a specific cohort. For the full member list, use request_cohort_export.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /api/3/cohorts/{{params.cohort_id}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `cohort_id` | string | **yes** | Amplitude cohort id, e.g. "3n6xzoy". |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `description` | string |  |
| `id` | string |  |
| `last_computed` | string |  |
| `name` | string |  |
| `size` | integer |  |

Also retrieved by: "how big is this segment", "details on one specific audience", "tell me about this particular group of users".

### `amplitude.request_cohort_export`

Start an asynchronous export of a cohort's member list. Use when the user wants to download, export, or pull the full list of users in a cohort. Returns a request id; check progress with get_cohort_export_status, then fetch with download_cohort_export.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `POST /api/5/cohorts/request/{{params.cohort_id}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `cohort_id` | string | **yes** | Amplitude cohort id to export. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `cohort_id` | string |  |
| `request_id` | string |  |

Also retrieved by: "pull the full member list for this segment", "kick off a download of who's in this audience", "I need every user id in this group".

### `amplitude.get_cohort_export_status`

Check whether a cohort export started with request_cohort_export is still processing, ready, or failed. Use when the user asks if their cohort download is ready yet.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /api/5/cohorts/request-status/{{params.request_id}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `request_id` | string | **yes** | Request id returned by request_cohort_export. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `request_id` | string |  |
| `size` | integer |  |
| `status` | string |  |

Also retrieved by: "is my segment download ready yet", "check on that member list I asked for", "has the audience file finished processing".

### `amplitude.download_cohort_export`

Download the finished member file for a completed cohort export request. Use when the user wants the actual list of user ids in a cohort after request_cohort_export has finished processing.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /api/5/cohorts/request/{{params.request_id}}/file`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `request_id` | string | **yes** | Request id returned by request_cohort_export, once ready. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `members` | array of object |  |
| `members[].user_id` | string |  |
| `request_id` | string |  |

Also retrieved by: "grab the finished member file", "fetch the list once it's done processing", "give me the actual user ids now that it's ready".

### `amplitude.list_event_types`

List the distinct event types tracked in the project, such as "Signed Up" or "Purchase Completed", with their volume. Use when the user asks what events exist, or needs an exact event name for a chart or segmentation query.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /api/2/events/list`.

Takes no arguments.

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `events` | array of object |  |
| `events[].event_type` | string |  |
| `events[].volume` | integer |  |

Also retrieved by: "what actions are being tracked in our product", "show me every distinct thing we log", "what's the full list of tracked activity names".

### `amplitude.get_chart_data`

Get the computed results of an existing saved chart by its id. Use when the user asks to pull up, refresh, or read the numbers on a specific dashboard chart they already have. For a new ad hoc analysis, use query_event_segmentation, query_funnel_analysis, or query_retention_analysis instead.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /api/3/chart/{{params.chart_id}}/query`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `chart_id` | string | **yes** | Amplitude chart id, from the chart's dashboard URL. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `chart_id` | string |  |
| `series` | array of object |  |
| `series[].label` | string |  |
| `series[].values` | array of number |  |
| `title` | string |  |

Also retrieved by: "pull up the numbers on my saved dashboard", "refresh this graph I already built", "show the results behind that chart".

### `amplitude.query_event_segmentation`

Run an ad hoc event segmentation query: how many users performed an event over a date range, optionally filtered or grouped by a property. Use when the user asks how many times something happened, wants a trend over time, or a breakdown by a property, without a saved chart.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /api/2/events/segmentation`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `end_date` | string | **yes** | End date, YYYYMMDD. |
| `event_type` | string | **yes** | Event type to measure, e.g. "Purchase Completed". |
| `group_by` | string | no | Optional event or user property to break results down by. |
| `interval` | string, one of day, week, month | no | Time bucket for the returned series. Defaults to day. |
| `start_date` | string | **yes** | Start date, YYYYMMDD. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `dates` | array of string |  |
| `series` | array of object |  |
| `series[].label` | string |  |
| `series[].values` | array of number |  |

Also retrieved by: "how many people did this thing last week", "break this activity down by plan type", "show a trend line for this action over time".

### `amplitude.query_funnel_analysis`

Run a funnel analysis across an ordered sequence of events to see conversion and drop-off between steps. Use when the user asks about conversion rate, drop-off, or how many users completed a multi-step flow.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /api/2/funnels`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `end_date` | string | **yes** | End date, YYYYMMDD. |
| `events` | array of string | **yes** | Ordered event type names forming the funnel steps. |
| `start_date` | string | **yes** | Start date, YYYYMMDD. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `steps` | array of object |  |
| `steps[].conversion_rate` | number |  |
| `steps[].count` | integer |  |
| `steps[].event` | string |  |

Also retrieved by: "where are people dropping off in signup", "what's our conversion through this flow", "measure step by step completion of onboarding".

### `amplitude.query_retention_analysis`

Run a retention analysis measuring how many users who did a starting event returned to do a return event over time. Use when the user asks about retention, stickiness, or how many users come back after their first action.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /api/2/retention`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `end_date` | string | **yes** | End date, YYYYMMDD. |
| `return_event` | string | **yes** | Event type marking the return action, e.g. "Opened App". |
| `start_date` | string | **yes** | Start date, YYYYMMDD. |
| `start_event` | string | **yes** | Event type marking the start action, e.g. "Signed Up". |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `cohorts` | array of object |  |
| `cohorts[].date` | string |  |
| `cohorts[].returned_counts` | array of integer |  |
| `cohorts[].starting_users` | integer |  |

Also retrieved by: "how many people come back after their first visit", "are users sticking around after signup", "measure whether people return to the app".

### `amplitude.list_annotations`

List chart annotations: notes marking releases, experiments, or events pinned to a date, visible on every chart. Use when the user asks what's been annotated, or wants an annotation's id to update or delete.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /api/2/annotations`.

Takes no arguments.

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `annotations` | array of object |  |
| `annotations[].date` | string |  |
| `annotations[].details` | string |  |
| `annotations[].id` | string |  |
| `annotations[].label` | string |  |

Also retrieved by: "what release markers have we added to the charts", "show every note pinned on our dashboards", "what's been flagged on the graphs".

### `amplitude.create_annotation`

Add an annotation marking a date with a label and details, visible on every chart. Use when the user wants to note, flag, or mark a release, experiment, or event on a specific date.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `POST /api/2/annotations`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `date` | string | **yes** | Date the annotation marks, YYYY-MM-DD. |
| `details` | string | no | Optional longer note about the annotation. |
| `label` | string | **yes** | Short label shown on the chart, e.g. "v2.4 release". |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `date` | string |  |
| `details` | string |  |
| `id` | string |  |
| `label` | string |  |

Also retrieved by: "mark today as the day we shipped v3", "pin a note on the dashboard for this launch", "flag this date so everyone sees the release".

### `amplitude.update_annotation`

Edit an existing annotation's label, date, or details. Use when the user wants to correct or update a note already pinned on the charts.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `PUT /api/2/annotations/{{params.annotation_id}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `annotation_id` | string | **yes** | Amplitude annotation id to update. |
| `date` | string | no | New date for the annotation, YYYY-MM-DD. |
| `details` | string | no | New longer note. |
| `label` | string | no | New short label. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `date` | string |  |
| `details` | string |  |
| `id` | string |  |
| `label` | string |  |

Also retrieved by: "fix the wording on that release marker", "change the date on that pinned note", "correct the label on that dashboard flag".

### `amplitude.delete_annotation`

Permanently delete an annotation. Irreversible. Use only when the user explicitly asks to remove or delete a specific annotation from the charts.

Class `destructive` (held by the mutation gate until the call's own arguments carry `"confirm": true`). No scopes beyond the connection's defaults. Calls `DELETE /api/2/annotations/{{params.annotation_id}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `annotation_id` | string | **yes** | Amplitude annotation id to delete. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `deleted` | boolean |  |
| `id` | string |  |

Also retrieved by: "remove that marker from the dashboard for good", "get rid of the note we pinned by mistake", "take that flag off the charts entirely".

### `amplitude.list_event_taxonomy`

List the event types documented in the taxonomy, with their descriptions and categories. Use when the user asks what events are documented, or wants an overview of the event catalog. For raw event names and volume instead, use list_event_types.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /api/2/taxonomy/event`.

Takes no arguments.

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `events` | array of object |  |
| `events[].category` | string |  |
| `events[].description` | string |  |
| `events[].event_type` | string |  |

Also retrieved by: "what events are documented in our catalog", "show the event dictionary for the product", "what's written up about our tracked actions".

### `amplitude.create_event_taxonomy`

Document a new event type in the taxonomy with a description and category. Use when the user wants to define, document, or register what an event type means, not to send the event itself; use send_event for that.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `POST /api/2/taxonomy/event`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `category` | string | no | Category to file the event under. |
| `description` | string | no | What this event represents. |
| `event_type` | string | **yes** | Event type to document, e.g. "Purchase Completed". |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `category` | string |  |
| `description` | string |  |
| `event_type` | string |  |

Also retrieved by: "write up what this event means for the team", "document a new tracked action in the catalog", "register what this event is supposed to represent".

### `amplitude.update_event_taxonomy`

Edit an existing event type's description or category in the taxonomy. Use when the user wants to update, correct, or re- categorize what a tracked event means.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `PUT /api/2/taxonomy/event/{{params.event_type}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `category` | string | no | New category for the event. |
| `description` | string | no | New description of what this event represents. |
| `event_type` | string | **yes** | Event type to edit. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `category` | string |  |
| `description` | string |  |
| `event_type` | string |  |

Also retrieved by: "fix the description on this tracked action", "re-file this event under a different category", "correct what this event means in the catalog".

### `amplitude.list_event_property_taxonomy`

List the properties documented on a given event type in the taxonomy, with their descriptions. Use when the user asks what properties an event carries or wants an overview of an event's schema.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /api/2/taxonomy/event-property`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `event_type` | string | **yes** | Event type to list properties for. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `properties` | array of object |  |
| `properties[].description` | string |  |
| `properties[].property` | string |  |
| `properties[].type` | string |  |

Also retrieved by: "what fields does this event carry", "show the schema for this tracked action", "what attributes come along with this event".

### `amplitude.create_event_property_taxonomy`

Document a new property on an event type in the taxonomy, with a description. Use when the user wants to define or register what a specific event property means.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `POST /api/2/taxonomy/event-property`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `description` | string | no | What this property represents. |
| `event_type` | string | **yes** | Event type the property belongs to. |
| `property` | string | **yes** | Property name to document, e.g. "plan". |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `description` | string |  |
| `event_type` | string |  |
| `property` | string |  |

Also retrieved by: "document a new field on this tracked event", "write up what this event attribute means", "register a property for this action".

### `amplitude.update_event_property_taxonomy`

Edit the description of an existing event property in the taxonomy. Use when the user wants to correct or clarify what an event property represents.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `PUT /api/2/taxonomy/event-property/{{params.event_type}}/{{params.property}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `description` | string | **yes** | New description of what this property represents. |
| `event_type` | string | **yes** | Event type the property belongs to. |
| `property` | string | **yes** | Property name to edit. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `description` | string |  |
| `event_type` | string |  |
| `property` | string |  |

Also retrieved by: "fix the description of this event field", "clarify what this attribute actually means", "correct the write-up for this property".

### `amplitude.list_user_property_taxonomy`

List the user properties documented in the taxonomy, with their descriptions. Use when the user asks what user-level properties exist or wants an overview of the user property schema.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /api/2/taxonomy/user-property`.

Takes no arguments.

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `properties` | array of object |  |
| `properties[].description` | string |  |
| `properties[].property` | string |  |
| `properties[].type` | string |  |

Also retrieved by: "what fields do we track on a person", "show the schema for user attributes", "what's documented about profile fields".

### `amplitude.create_user_property_taxonomy`

Document a new user property in the taxonomy, with a description. Use when the user wants to define or register what a user-level property means.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `POST /api/2/taxonomy/user-property`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `description` | string | no | What this property represents. |
| `property` | string | **yes** | User property name to document, e.g. "plan_tier". |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `description` | string |  |
| `property` | string |  |

Also retrieved by: "document a new field we track on people", "write up what this profile attribute means", "register a new trait for user profiles".

### `amplitude.update_user_property_taxonomy`

Edit the description of an existing user property in the taxonomy. Use when the user wants to correct or clarify what a user property represents.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `PUT /api/2/taxonomy/user-property/{{params.property}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `description` | string | **yes** | New description of what this property represents. |
| `property` | string | **yes** | User property name to edit. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `description` | string |  |
| `property` | string |  |

Also retrieved by: "fix the description on this profile field", "clarify what this user attribute represents", "correct the write-up for this trait".

### `amplitude.list_categories`

List the categories used to group event types in the taxonomy. Use when the user asks what categories exist for organizing events.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /api/2/taxonomy/category`.

Takes no arguments.

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `categories` | array of object |  |
| `categories[].name` | string |  |

Also retrieved by: "what groupings do we use to organize events", "show the folders our tracked actions are filed under", "what buckets exist for organizing the catalog".

### `amplitude.create_category`

Add a new category for grouping event types in the taxonomy. Use when the user wants to create a category to organize related events under.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `POST /api/2/taxonomy/category`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `name` | string | **yes** | Category name to create, e.g. "Onboarding". |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `name` | string |  |

Also retrieved by: "add a new folder to file events under", "set up a grouping for related actions", "make a new bucket to organize the catalog".

### `amplitude.export_events`

Export raw event data for a date range as a downloadable archive. Use when the user wants a bulk export, raw data dump, or full backup of events rather than an aggregated chart or query.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /api/2/export`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `end` | string | **yes** | End of the export window, YYYYMMDDTHH. |
| `start` | string | **yes** | Start of the export window, YYYYMMDDTHH. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `end` | string |  |
| `start` | string |  |
| `status` | string |  |

Also retrieved by: "dump all the raw activity for last week", "give me a full backup of the event data", "pull every logged action for this date range".

### `amplitude.delete_user_data`

Submit a GDPR deletion request to permanently erase a specific user's data from Amplitude. Irreversible. Use only when the user explicitly asks to delete, remove, or forget a user's data for privacy or compliance reasons.

Class `destructive` (held by the mutation gate until the call's own arguments carry `"confirm": true`). No scopes beyond the connection's defaults. Calls `POST /api/2/deletions/users`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `user_ids` | array of string | **yes** | Amplitude or app user ids whose data should be erased. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `request_id` | string |  |
| `status` | string |  |

Also retrieved by: "scrub this person's data for a privacy request", "honor a right-to-be-forgotten ask", "wipe someone's records for GDPR compliance".
