---
title: "Import AEO prompts"
method: POST
path: "/api/projects/{project_id}/aeo_prompts/bulk_import/"
tags: ["web_analytics", "aeo_prompts"]
---

# Import AEO prompts

`POST /api/projects/{project_id}/aeo_prompts/bulk_import/`

## Request

- Base URL: `https://us.posthog.com`
- URL: `https://us.posthog.com/api/projects/{project_id}/aeo_prompts/bulk_import/`
- Auth: HTTP bearer

Adds prompts to the project's AEO prompt set, or updates the topic and visibility of prompts that already exist. Existing prompts keep their active state.

## Path parameters

- `project_id` string, required

## Request body

- AEOPromptBulkImportRequest
  - `prompts` AEOPromptImport[], required: Prompts to add or update, at most 2000 per request.
    - `prompt` string, required: The question to ask the answer engines, as a user would phrase it. Matching ignores case and whitespace, so a re-import updates the existing prompt.
    - `topic` string: Theme the prompt belongs to. The runner alternates between topics on each run.
    - `external_visibility` number, double, nullable: Share of answers (0-100) that mention the brand for this prompt, as reported by the tool the prompt set came from. Kept to benchmark against our own citation rate.

## Response `200`

- AEOPromptImportResult
  - `created` integer, required: Prompts added to the set.
  - `updated` integer, required: Existing prompts that were updated. They keep their active state.
  - `skipped` integer, required: Prompts that were empty or too long for the answer engines.

## Changes

> 53 revisions in range; 1 not diffed.

- **2026-10-16** `581a899e6395`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/posthog/apis/posthog-api/changes/api/projects/:project_id/aeo_prompts/bulk_import/post.md)

---

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