---
title: "Upload Smart Document"
method: POST
path: "/api/products/{product_id}/smart-documents"
tags: ["products"]
---

# Upload Smart Document

`POST /api/products/{product_id}/smart-documents`

## Request

- Base URL: `https://api.usecrow.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.usecrow.ai/api/products/{product_id}/smart-documents`
- Auth: none declared. Required headers: `authorization`
- TypeScript: <https://skmtc.dev/usecrow/apis/crow-backend-multi-tenant-saas/docs/api/products/:product_id/smart-documents/post.ts> (a function with typed inputs; its response is checked against the schema)

Upload a pre-processed markdown document with domain tagging.

This is the smart ingestion path for Phase 0 pre-processed documents.
Uses section-aware chunking and tags chunks with a knowledge domain.

- file: Enriched markdown file (.md)
- domain: Knowledge domain tag (e.g., 'fortinet_vpn', 'cisco_vpn')

## Path parameters

- `product_id` string, required

## Headers

- `authorization` string, required

## Request body `multipart/form-data`

- BodyUploadSmartDocumentApiProductsProductIdSmartDocumentsPost
  - `file` string, binary, required
  - `domain` string, required

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/usecrow/apis/crow-backend-multi-tenant-saas.md) - [All operations](https://skmtc.dev/usecrow/apis/crow-backend-multi-tenant-saas/llms.txt) - [OpenAPI document](https://skmtc.dev/usecrow/apis/crow-backend-multi-tenant-saas/revisions/b2950af46532?raw)
