---
title: "Upload into a ticket's target (multipart). Authenticated by ?t=, not by an API key."
method: POST
path: "/upload/direct"
---

# Upload into a ticket's target (multipart). Authenticated by ?t=, not by an API key.

`POST /upload/direct`

## Request

- Base URL: `https://api.space-ocr.com`
- URL: `https://api.space-ocr.com/upload/direct`
- Auth: none declared

## Query parameters

- `t` string, required: Upload ticket from POST /upload/ticket.
- `name` string: PUT only — the filename, which becomes the row's name. Synthesized when omitted.
- `type` string: PUT only — MIME override. Sniffed from the bytes when omitted.
- `wait` '0' | '1' | 'true' | 'false': Wait for the OCR result (up to 30s per image) instead of returning jobs.

## Response `200`

OK

- unknown

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `402`: Payment Required
- `403`: Forbidden
- `404`: Not Found
- `413`: Payload Too Large
- `429`: Too Many Requests
- `500`: Internal Error
- `502`: OCR engine error (charge auto-refunded)
- `504`: OCR engine timeout (charge auto-refunded)

---

[API](https://skmtc.dev/space-ocr/apis/space-ocr-public-api.md) · [All operations](https://skmtc.dev/space-ocr/apis/space-ocr-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/space-ocr/apis/space-ocr-public-api/revisions/d7831cf1168e?raw)
