---
title: "Upload Text"
method: POST
path: "/v2/texts"
tags: ["Text Emotion API"]
---

# Upload Text

`POST /v2/texts`

Analyze emotions and sentiment from text content.

Submit text directly, provide a cloud storage URL, or upload a text file (.txt, .srt, .pdf).

**Input Modes (provide exactly one):**
- **text**: Raw text content for direct analysis
- **text_url**: URL to a text file from Dropbox, Google Drive, AWS S3, or any public URL
- **text_file**: Direct file upload (.txt, .srt, .pdf)

**How It Works:**
1. Submit your text (or file URL / file upload) and receive an immediate response with a text ID
2. For file URLs/uploads: the file is downloaded/read, text extracted, and word count calculated
3. Text is queued for processing (typically completes within seconds)
4. Optionally receive a webhook notification via `callback_url` when complete
5. Retrieve results using the text ID

**Supported File Formats (for text_url and text_file):**
- `.txt` — Plain text files
- `.srt` — Subtitle files (timestamps are stripped, only text is extracted)
- `.pdf` — PDF documents (text extracted from all pages)

**Credit Usage:**
Processing is billed at 2 credits per 100 words.
Professional and Enterprise plans: 1 credit per 100 words.

## Response `200`

Successful Response

- TextEmotionResponseV2 — V2 response model for text emotion detection. Supports direct text submission and cloud URL file uploads. Direct text submission with mandatory title field. Attributes: id (str): Unique ID of the text. title (str): Title of the text. status (str): Processing status (queue, processing, done, etc.). word_count (int): Number of words in the text. user_id (str): ID of the user who submitted the text. created_at (Optional[str]): Timestamp when text was created. media_source (Optional[str]): Cloud platform source (dropbox, google_drive, aws_s3, public_url). media_source_url (Optional[str]): Original cloud storage URL provided by user.
  - `id` string, required
  - `title` string, required
  - `status` string, required
  - `word_count` integer, required
  - `user_id` string, required
  - `created_at` string, nullable
  - `media_source` string, nullable
  - `media_source_url` string, nullable

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/imentiv/apis/welcome-to-imentiv-ai.md) · [All operations](https://skmtc.net/imentiv/apis/welcome-to-imentiv-ai/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/imentiv/welcome-to-imentiv-ai/versions/4a61d1ac9025/schema)
