# ProductUltra Submit API List a product on ProductUltra (https://productultra.com) with a single POST request. No account, no API key, no authentication. Submissions go live immediately and are shown exactly as written, in their original language (never translated). ## POST /api/submit Content-Type: application/json | Field | Type | Required | Notes | |---|---|---|---| | name | string | yes | Product title, 1-100 chars | | description | string | yes | What the product is, 10-5000 chars. Markdown supported: headings, lists, links, code, bold/italic | | url | string | no | Product link, must start with http:// or https://, up to 500 chars | | tags | string | no | Comma-separated, max 5 tags, 24 chars each. Letters, digits, - and _ only. Other characters are stripped | ### Example ```bash curl -X POST https://productultra.com/api/submit \ -H "Content-Type: application/json" \ -d '{"name":"Lark Coffee","description":"Single-origin drip bags, roasted weekly.","url":"https://example.com","tags":"coffee,handmade"}' ``` ### Responses - 200 - {"ok":true,"slug":"lark-coffee-x7k2a","url":"/p/lark-coffee-x7k2a"} - 422 - {"ok":false,"errors":{"name":"Maximum 100 characters"}} - validation failed; errors maps field names to messages, "_form" holds a form-wide message - 429 - rate limited: 5 submissions per day per IP The submitted content is public. Do not submit private data. By submitting, the submitter confirms the right to publish the content. ## POST /api/preview Render Markdown exactly as the product page will. Content-Type: application/json. - Request: {"text":"# Hi **bold**"} - Response: {"html":"