Maya Okonkwo
Code review should be fast
Agents are forcing a change in how we review code. Diffs brings code reviews directly inside Summar AI, so that the review lives alongside all of your product context.

Prerequisites
Before you start, you'll need a SummarAI account and an API key. If you don't have one, create a free account — no credit card required. Your API key is available from the Dashboard → Settings → API Keys.
Installation
Install the official SDK for your language. We provide first-party clients for Node.js, Python, and Go. All SDKs wrap the same underlying REST API — you can also call it directly.
Authentication
All API requests are authenticated using Bearer tokens. Pass your API key in the Authorization header of every request.
Request Parameters
The POST /v1/summaries endpoint accepts the following parameters in the request body as JSON.
Parameter | Type | Required | Description |
|---|---|---|---|
|
|
| A URL (http/https), file path, or raw text string. Accepted types: PDF, DOCX, TXT, YouTube URL, Loom URL, MP3, M4A. |
|
|
| Output format. One of |
|
|
| BCP-47 language tag for the output. E.g. |
|
|
| Controls output verbosity. One of |
|
|
| Array of additional features to run. Values: |
|
|
| A URL to receive a |
|
|
| Arbitrary key-value pairs attached to the summary object. Returned as-is on retrieval. Useful for your internal IDs or tags. |
Async Processing
Large files and long audio recordings process asynchronously. When you submit a request, it returns immediately with status: "processing". Poll the summary's ID or use a webhook to know when it's done.
Supported Input Types
SummarAI automatically detects the content type from the URL or file extension. You can also force a specific type with the input_type parameter.
Type | Accepted Values | Max Size | Plan |
|---|---|---|---|
| PDF, DOCX, TXT, HTML, MD |
| Free (50p) · Pro+ |
| YouTube, Loom, Vimeo |
| All plans |
| MP3, M4A, WAV, FLAC |
| Pro+ |
| Any public HTTP/HTTPS URL |
| All plans |
| Plain string in |
| All plans |
Error Handling
Errors return a non-200 status code with a JSON body containing a code, human-readable message, and optional details.
POST/v1/summaries422 Unprocessable
Common error codes
Code | Status | Description |
|---|---|---|
|
| Key is missing, malformed, or revoked. |
|
| Feature requires a higher-tier plan. |
|
| Too many requests. Retry after the |
|
| File exceeds the page or size limit for your plan. |
|
| Input type or file format is not supported. |
|
| An internal error occurred. Retry once. Contact support if it persists. |
Next Steps
Authenticate and make your first call
You've completed this step. Your API key is working and you can create summaries.
2
Explore output formats
Try format: "action_items" for meeting recordings or format: "structured" for research papers. Each format shapes the response differently.
3
Set up a webhook
For production workloads, use webhooks instead of polling. Pass a webhook_url and we'll push the completed result to your server.
4
Enable features
Add sentiment, key_quotes, or topics to the features array to enrich your summaries without making extra calls.