---
title: "Submit feedback from natural language"
method: POST
path: "/posts/from-text"
---

# Submit feedback from natural language

`POST /posts/from-text`

## Request

- Base URL: `https://app.voteship.app/api/v1`
- URL: `https://app.voteship.app/api/v1/posts/from-text`
- Auth: HTTP bearer

Submit unstructured text. AI extracts a structured post, checks for duplicates, and auto-categorizes. Requires Growth plan or higher.

## Request body

- object
  - `text` string, required: Raw text from any source (Slack, email, support ticket, etc.)
  - `source` string: Where the feedback came from (e.g., 'slack', 'email')
  - `source_url` string: Link back to the original message

## Response `201`

Post created from text

- object
  - `data` object
    - `action` 'created' | 'matched_duplicate'
    - `post` Post
      - `id` string
      - `projectId` string
      - `title` string
      - `description` string, nullable
      - `status` 'PENDING' | 'APPROVED' | 'IN_PROGRESS' | 'COMPLETE' | 'CLOSED' | 'ARCHIVED'
      - `voteCount` integer
      - `metadata` object, nullable: Private context. Replaces the object; null clears it. Omitted from public responses; available to secret-key APIs and trusted admin webhooks.
      - `createdAt` string, date-time
      - `updatedAt` string, date-time
    - `similar_posts` object[]

---

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