from retab import MIMEData, Retab
client = Retab()
document = MIMEData(
filename="invoice.pdf",
url="https://my-bucket.s3.us-east-1.amazonaws.com/documents/invoice.pdf",
)
classification = client.classifications.create(
document=document,
model="retab-small",
categories=[
{"name": "invoice", "description": "Invoice documents with billing information"},
{"name": "receipt", "description": "Receipt documents for payments"},
{"name": "contract", "description": "Legal contract documents"},
],
first_n_pages=3,
instructions="Processing batch from Q4 2024 vendor submissions",
n_consensus=1,
)
print(f"Classification ID: {classification.id}")
print(f"Category: {classification.output.category}")
print(f"Reasoning: {classification.output.reasoning}")
import { Retab } from "@retab/node";
const client = new Retab({ apiKey: process.env.RETAB_API_KEY });
const document = {
filename: "invoice.pdf",
url: "https://my-bucket.s3.us-east-1.amazonaws.com/documents/invoice.pdf",
};
const classification = await client.classifications.create(document, [
{
name: "invoice",
description: "Invoice documents with billing information",
},
{ name: "receipt", description: "Receipt documents for payments" },
{ name: "contract", description: "Legal contract documents" },
], "retab-small", 3, "Processing batch from Q4 2024 vendor submissions", 1);
console.log(`Classification ID: ${classification.id}`);
console.log(`Category: ${classification.output.category}`);
package main
import (
"context"
"fmt"
"log"
retab "github.com/retab-dev/retab/clients/go"
)
func ptr[T any](v T) *T { return &v }
func main() {
ctx := context.Background()
client, err := retab.NewClient("")
if err != nil {
log.Fatal(err)
}
document := retab.MIMEData{
Filename: "invoice.pdf",
URL: "https://my-bucket.s3.us-east-1.amazonaws.com/documents/invoice.pdf",
}
classification, err := client.Classifications.Create(ctx, &retab.ClassificationsCreateParams{
Document: document,
Model: ptr("retab-small"),
Categories: []*retab.Category{
{Name: "invoice", Description: ptr("Invoice documents with billing information")},
{Name: "receipt", Description: ptr("Receipt documents for payments")},
{Name: "contract", Description: ptr("Legal contract documents")},
},
FirstNPages: ptr(3),
Instructions: ptr("Processing batch from Q4 2024 vendor submissions"),
NConsensus: ptr(1),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("Classification ID: %s\n", classification.ID)
fmt.Printf("Category: %s\n", classification.Output.Category)
}
require 'retab'
client = Retab::Client.new(api_key: ENV['RETAB_API_KEY'])
document = {
filename: 'invoice.pdf',
url: 'https://my-bucket.s3.us-east-1.amazonaws.com/documents/invoice.pdf',
}
classification = client.classifications.create(
document: document,
model: 'retab-small',
categories: [
{ 'name' => 'invoice', 'description' => 'Invoice documents with billing information' },
{ 'name' => 'receipt', 'description' => 'Receipt documents for payments' },
{ 'name' => 'contract', 'description' => 'Legal contract documents' },
],
first_n_pages: 3,
instructions: 'Processing batch from Q4 2024 vendor submissions',
n_consensus: 1,
)
puts "Classification ID: #{classification.id}"
puts "Category: #{classification.output.category}"
puts "Reasoning: #{classification.output.reasoning}"
use retab::models::Category;
use retab::resources::classifications::CreateParams;
use retab::{MimeData, Retab};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = Retab::new(std::env::var("RETAB_API_KEY")?);
let categories = vec![
Category {
name: "invoice".into(),
handle_key: None,
description: Some("Invoice documents with billing information".into()),
},
Category {
name: "receipt".into(),
handle_key: None,
description: Some("Receipt documents for payments".into()),
},
Category {
name: "contract".into(),
handle_key: None,
description: Some("Legal contract documents".into()),
},
];
let document = MimeData::new(
"invoice.pdf",
"https://my-bucket.s3.us-east-1.amazonaws.com/documents/invoice.pdf",
);
let mut params = CreateParams::new(document, categories);
params.body.model = Some("retab-small".into());
params.body.first_n_pages = Some(3);
params.body.instructions = Some("Processing batch from Q4 2024 vendor submissions".into());
params.body.n_consensus = Some(1);
let classification = client.classifications().create(params).await?;
println!("Classification ID: {}", classification.id);
println!("Category: {}", classification.output.as_ref().unwrap().category);
println!("Reasoning: {}", classification.output.as_ref().unwrap().reasoning);
Ok(())
}
<?php
require 'vendor/autoload.php';
use Retab\Client;
$client = new Client(apiKey: getenv('RETAB_API_KEY'));
$result = $client->classifications()->create(
document: [
'filename' => 'invoice.pdf',
'url' => 'https://my-bucket.s3.us-east-1.amazonaws.com/documents/invoice.pdf',
],
categories: [['name' => 'invoice', 'description' => 'Invoice documents']],
);
print_r($result);
using System;
using System.Collections.Generic;
using Retab;
using RetabClient = Retab.Retab;
var apiKey = Environment.GetEnvironmentVariable("RETAB_API_KEY")!;
var client = new RetabClient(apiKey);
var document = MimeData.FromUrl(
new Uri("https://my-bucket.s3.us-east-1.amazonaws.com/documents/invoice.pdf"));
var result = await client.Classifications.CreateAsync(new ClassificationsCreateOptions
{
Document = document,
Model = "retab-small",
Categories = new List<Category>
{
new Category { Name = "invoice", Description = "Invoice documents with billing information" },
new Category { Name = "receipt", Description = "Receipt documents for payments" },
new Category { Name = "contract", Description = "Legal contract documents" },
},
FirstNPages = 3,
Instructions = "Processing batch from Q4 2024 vendor submissions",
NConsensus = 1,
});
Console.WriteLine(result);
import com.retab.RetabClient;
import com.retab.models.Category;
import com.retab.models.MimeData;
import java.net.URI;
import java.util.List;
public final class Example {
public static void main(String[] args) throws Exception {
RetabClient client = new RetabClient(System.getenv("RETAB_API_KEY"));
MimeData document = MimeData.fromUrl(
URI.create("https://my-bucket.s3.us-east-1.amazonaws.com/documents/invoice.pdf"));
List<Category> categories = List.of(
new Category("invoice", null, "Invoice documents with billing information"),
new Category("receipt", null, "Receipt documents for payments"),
new Category("contract", null, "Legal contract documents"));
var result = client.classifications().create(
document,
categories,
"retab-small",
3L,
"Processing batch from Q4 2024 vendor submissions",
1L,
null,
null);
System.out.println(result);
}
}
curl -X POST \
'https://api.retab.com/v1/classifications' \
-H "Authorization: Bearer $RETAB_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"document": {
"filename": "invoice.pdf",
"url": "https://my-bucket.s3.us-east-1.amazonaws.com/documents/invoice.pdf"
},
"model": "retab-small",
"categories": [
{"name": "invoice", "description": "Invoice documents with billing information"},
{"name": "receipt", "description": "Receipt documents for payments"},
{"name": "contract", "description": "Legal contract documents"}
],
"first_n_pages": 3,
"instructions": "Processing batch from Q4 2024 vendor submissions",
"n_consensus": 1
}'
{
"id": "cls_01G34H8J2K",
"file": {
"id": "file_6dd6eb00688ad8d1",
"filename": "invoice.pdf",
"mime_type": "application/pdf"
},
"model": "retab-small",
"categories": [
{
"name": "invoice",
"description": "Invoice documents with billing information"
},
{ "name": "receipt", "description": "Receipt documents for payments" },
{ "name": "contract", "description": "Legal contract documents" }
],
"n_consensus": 1,
"instructions": "Processing batch from Q4 2024 vendor submissions",
"output": {
"reasoning": "The document contains billing details including line items, unit prices, quantities, and a total amount due.",
"category": "invoice"
},
"consensus": {
"choices": [],
"likelihood": null
},
"usage": {
"prompt_tokens": 1500,
"completion_tokens": 40,
"total_tokens": 1540
},
"created_at": "2024-03-15T10:30:00Z"
}
Create Classification
Classify a document.
Runs a classification on the supplied document against the provided
categories. Tune the run with model, instructions, first_n_pages
(limit to the first pages), and n_consensus (number of votes to combine).
Returns the created classification with the chosen category and reasoning;
responds with 201.
from retab import MIMEData, Retab
client = Retab()
document = MIMEData(
filename="invoice.pdf",
url="https://my-bucket.s3.us-east-1.amazonaws.com/documents/invoice.pdf",
)
classification = client.classifications.create(
document=document,
model="retab-small",
categories=[
{"name": "invoice", "description": "Invoice documents with billing information"},
{"name": "receipt", "description": "Receipt documents for payments"},
{"name": "contract", "description": "Legal contract documents"},
],
first_n_pages=3,
instructions="Processing batch from Q4 2024 vendor submissions",
n_consensus=1,
)
print(f"Classification ID: {classification.id}")
print(f"Category: {classification.output.category}")
print(f"Reasoning: {classification.output.reasoning}")
import { Retab } from "@retab/node";
const client = new Retab({ apiKey: process.env.RETAB_API_KEY });
const document = {
filename: "invoice.pdf",
url: "https://my-bucket.s3.us-east-1.amazonaws.com/documents/invoice.pdf",
};
const classification = await client.classifications.create(document, [
{
name: "invoice",
description: "Invoice documents with billing information",
},
{ name: "receipt", description: "Receipt documents for payments" },
{ name: "contract", description: "Legal contract documents" },
], "retab-small", 3, "Processing batch from Q4 2024 vendor submissions", 1);
console.log(`Classification ID: ${classification.id}`);
console.log(`Category: ${classification.output.category}`);
package main
import (
"context"
"fmt"
"log"
retab "github.com/retab-dev/retab/clients/go"
)
func ptr[T any](v T) *T { return &v }
func main() {
ctx := context.Background()
client, err := retab.NewClient("")
if err != nil {
log.Fatal(err)
}
document := retab.MIMEData{
Filename: "invoice.pdf",
URL: "https://my-bucket.s3.us-east-1.amazonaws.com/documents/invoice.pdf",
}
classification, err := client.Classifications.Create(ctx, &retab.ClassificationsCreateParams{
Document: document,
Model: ptr("retab-small"),
Categories: []*retab.Category{
{Name: "invoice", Description: ptr("Invoice documents with billing information")},
{Name: "receipt", Description: ptr("Receipt documents for payments")},
{Name: "contract", Description: ptr("Legal contract documents")},
},
FirstNPages: ptr(3),
Instructions: ptr("Processing batch from Q4 2024 vendor submissions"),
NConsensus: ptr(1),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("Classification ID: %s\n", classification.ID)
fmt.Printf("Category: %s\n", classification.Output.Category)
}
require 'retab'
client = Retab::Client.new(api_key: ENV['RETAB_API_KEY'])
document = {
filename: 'invoice.pdf',
url: 'https://my-bucket.s3.us-east-1.amazonaws.com/documents/invoice.pdf',
}
classification = client.classifications.create(
document: document,
model: 'retab-small',
categories: [
{ 'name' => 'invoice', 'description' => 'Invoice documents with billing information' },
{ 'name' => 'receipt', 'description' => 'Receipt documents for payments' },
{ 'name' => 'contract', 'description' => 'Legal contract documents' },
],
first_n_pages: 3,
instructions: 'Processing batch from Q4 2024 vendor submissions',
n_consensus: 1,
)
puts "Classification ID: #{classification.id}"
puts "Category: #{classification.output.category}"
puts "Reasoning: #{classification.output.reasoning}"
use retab::models::Category;
use retab::resources::classifications::CreateParams;
use retab::{MimeData, Retab};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = Retab::new(std::env::var("RETAB_API_KEY")?);
let categories = vec![
Category {
name: "invoice".into(),
handle_key: None,
description: Some("Invoice documents with billing information".into()),
},
Category {
name: "receipt".into(),
handle_key: None,
description: Some("Receipt documents for payments".into()),
},
Category {
name: "contract".into(),
handle_key: None,
description: Some("Legal contract documents".into()),
},
];
let document = MimeData::new(
"invoice.pdf",
"https://my-bucket.s3.us-east-1.amazonaws.com/documents/invoice.pdf",
);
let mut params = CreateParams::new(document, categories);
params.body.model = Some("retab-small".into());
params.body.first_n_pages = Some(3);
params.body.instructions = Some("Processing batch from Q4 2024 vendor submissions".into());
params.body.n_consensus = Some(1);
let classification = client.classifications().create(params).await?;
println!("Classification ID: {}", classification.id);
println!("Category: {}", classification.output.as_ref().unwrap().category);
println!("Reasoning: {}", classification.output.as_ref().unwrap().reasoning);
Ok(())
}
<?php
require 'vendor/autoload.php';
use Retab\Client;
$client = new Client(apiKey: getenv('RETAB_API_KEY'));
$result = $client->classifications()->create(
document: [
'filename' => 'invoice.pdf',
'url' => 'https://my-bucket.s3.us-east-1.amazonaws.com/documents/invoice.pdf',
],
categories: [['name' => 'invoice', 'description' => 'Invoice documents']],
);
print_r($result);
using System;
using System.Collections.Generic;
using Retab;
using RetabClient = Retab.Retab;
var apiKey = Environment.GetEnvironmentVariable("RETAB_API_KEY")!;
var client = new RetabClient(apiKey);
var document = MimeData.FromUrl(
new Uri("https://my-bucket.s3.us-east-1.amazonaws.com/documents/invoice.pdf"));
var result = await client.Classifications.CreateAsync(new ClassificationsCreateOptions
{
Document = document,
Model = "retab-small",
Categories = new List<Category>
{
new Category { Name = "invoice", Description = "Invoice documents with billing information" },
new Category { Name = "receipt", Description = "Receipt documents for payments" },
new Category { Name = "contract", Description = "Legal contract documents" },
},
FirstNPages = 3,
Instructions = "Processing batch from Q4 2024 vendor submissions",
NConsensus = 1,
});
Console.WriteLine(result);
import com.retab.RetabClient;
import com.retab.models.Category;
import com.retab.models.MimeData;
import java.net.URI;
import java.util.List;
public final class Example {
public static void main(String[] args) throws Exception {
RetabClient client = new RetabClient(System.getenv("RETAB_API_KEY"));
MimeData document = MimeData.fromUrl(
URI.create("https://my-bucket.s3.us-east-1.amazonaws.com/documents/invoice.pdf"));
List<Category> categories = List.of(
new Category("invoice", null, "Invoice documents with billing information"),
new Category("receipt", null, "Receipt documents for payments"),
new Category("contract", null, "Legal contract documents"));
var result = client.classifications().create(
document,
categories,
"retab-small",
3L,
"Processing batch from Q4 2024 vendor submissions",
1L,
null,
null);
System.out.println(result);
}
}
curl -X POST \
'https://api.retab.com/v1/classifications' \
-H "Authorization: Bearer $RETAB_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"document": {
"filename": "invoice.pdf",
"url": "https://my-bucket.s3.us-east-1.amazonaws.com/documents/invoice.pdf"
},
"model": "retab-small",
"categories": [
{"name": "invoice", "description": "Invoice documents with billing information"},
{"name": "receipt", "description": "Receipt documents for payments"},
{"name": "contract", "description": "Legal contract documents"}
],
"first_n_pages": 3,
"instructions": "Processing batch from Q4 2024 vendor submissions",
"n_consensus": 1
}'
{
"id": "cls_01G34H8J2K",
"file": {
"id": "file_6dd6eb00688ad8d1",
"filename": "invoice.pdf",
"mime_type": "application/pdf"
},
"model": "retab-small",
"categories": [
{
"name": "invoice",
"description": "Invoice documents with billing information"
},
{ "name": "receipt", "description": "Receipt documents for payments" },
{ "name": "contract", "description": "Legal contract documents" }
],
"n_consensus": 1,
"instructions": "Processing batch from Q4 2024 vendor submissions",
"output": {
"reasoning": "The document contains billing details including line items, unit prices, quantities, and a total amount due.",
"category": "invoice"
},
"consensus": {
"choices": [],
"likelihood": null
},
"usage": {
"prompt_tokens": 1500,
"completion_tokens": 40,
"total_tokens": 1540
},
"created_at": "2024-03-15T10:30:00Z"
}
Classification resource that can later be retrieved via GET /v1/classifications/{classification_id} or listed via GET /v1/classifications.
from retab import MIMEData, Retab
client = Retab()
document = MIMEData(
filename="invoice.pdf",
url="https://my-bucket.s3.us-east-1.amazonaws.com/documents/invoice.pdf",
)
classification = client.classifications.create(
document=document,
model="retab-small",
categories=[
{"name": "invoice", "description": "Invoice documents with billing information"},
{"name": "receipt", "description": "Receipt documents for payments"},
{"name": "contract", "description": "Legal contract documents"},
],
first_n_pages=3,
instructions="Processing batch from Q4 2024 vendor submissions",
n_consensus=1,
)
print(f"Classification ID: {classification.id}")
print(f"Category: {classification.output.category}")
print(f"Reasoning: {classification.output.reasoning}")
import { Retab } from "@retab/node";
const client = new Retab({ apiKey: process.env.RETAB_API_KEY });
const document = {
filename: "invoice.pdf",
url: "https://my-bucket.s3.us-east-1.amazonaws.com/documents/invoice.pdf",
};
const classification = await client.classifications.create(document, [
{
name: "invoice",
description: "Invoice documents with billing information",
},
{ name: "receipt", description: "Receipt documents for payments" },
{ name: "contract", description: "Legal contract documents" },
], "retab-small", 3, "Processing batch from Q4 2024 vendor submissions", 1);
console.log(`Classification ID: ${classification.id}`);
console.log(`Category: ${classification.output.category}`);
package main
import (
"context"
"fmt"
"log"
retab "github.com/retab-dev/retab/clients/go"
)
func ptr[T any](v T) *T { return &v }
func main() {
ctx := context.Background()
client, err := retab.NewClient("")
if err != nil {
log.Fatal(err)
}
document := retab.MIMEData{
Filename: "invoice.pdf",
URL: "https://my-bucket.s3.us-east-1.amazonaws.com/documents/invoice.pdf",
}
classification, err := client.Classifications.Create(ctx, &retab.ClassificationsCreateParams{
Document: document,
Model: ptr("retab-small"),
Categories: []*retab.Category{
{Name: "invoice", Description: ptr("Invoice documents with billing information")},
{Name: "receipt", Description: ptr("Receipt documents for payments")},
{Name: "contract", Description: ptr("Legal contract documents")},
},
FirstNPages: ptr(3),
Instructions: ptr("Processing batch from Q4 2024 vendor submissions"),
NConsensus: ptr(1),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("Classification ID: %s\n", classification.ID)
fmt.Printf("Category: %s\n", classification.Output.Category)
}
require 'retab'
client = Retab::Client.new(api_key: ENV['RETAB_API_KEY'])
document = {
filename: 'invoice.pdf',
url: 'https://my-bucket.s3.us-east-1.amazonaws.com/documents/invoice.pdf',
}
classification = client.classifications.create(
document: document,
model: 'retab-small',
categories: [
{ 'name' => 'invoice', 'description' => 'Invoice documents with billing information' },
{ 'name' => 'receipt', 'description' => 'Receipt documents for payments' },
{ 'name' => 'contract', 'description' => 'Legal contract documents' },
],
first_n_pages: 3,
instructions: 'Processing batch from Q4 2024 vendor submissions',
n_consensus: 1,
)
puts "Classification ID: #{classification.id}"
puts "Category: #{classification.output.category}"
puts "Reasoning: #{classification.output.reasoning}"
use retab::models::Category;
use retab::resources::classifications::CreateParams;
use retab::{MimeData, Retab};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = Retab::new(std::env::var("RETAB_API_KEY")?);
let categories = vec![
Category {
name: "invoice".into(),
handle_key: None,
description: Some("Invoice documents with billing information".into()),
},
Category {
name: "receipt".into(),
handle_key: None,
description: Some("Receipt documents for payments".into()),
},
Category {
name: "contract".into(),
handle_key: None,
description: Some("Legal contract documents".into()),
},
];
let document = MimeData::new(
"invoice.pdf",
"https://my-bucket.s3.us-east-1.amazonaws.com/documents/invoice.pdf",
);
let mut params = CreateParams::new(document, categories);
params.body.model = Some("retab-small".into());
params.body.first_n_pages = Some(3);
params.body.instructions = Some("Processing batch from Q4 2024 vendor submissions".into());
params.body.n_consensus = Some(1);
let classification = client.classifications().create(params).await?;
println!("Classification ID: {}", classification.id);
println!("Category: {}", classification.output.as_ref().unwrap().category);
println!("Reasoning: {}", classification.output.as_ref().unwrap().reasoning);
Ok(())
}
<?php
require 'vendor/autoload.php';
use Retab\Client;
$client = new Client(apiKey: getenv('RETAB_API_KEY'));
$result = $client->classifications()->create(
document: [
'filename' => 'invoice.pdf',
'url' => 'https://my-bucket.s3.us-east-1.amazonaws.com/documents/invoice.pdf',
],
categories: [['name' => 'invoice', 'description' => 'Invoice documents']],
);
print_r($result);
using System;
using System.Collections.Generic;
using Retab;
using RetabClient = Retab.Retab;
var apiKey = Environment.GetEnvironmentVariable("RETAB_API_KEY")!;
var client = new RetabClient(apiKey);
var document = MimeData.FromUrl(
new Uri("https://my-bucket.s3.us-east-1.amazonaws.com/documents/invoice.pdf"));
var result = await client.Classifications.CreateAsync(new ClassificationsCreateOptions
{
Document = document,
Model = "retab-small",
Categories = new List<Category>
{
new Category { Name = "invoice", Description = "Invoice documents with billing information" },
new Category { Name = "receipt", Description = "Receipt documents for payments" },
new Category { Name = "contract", Description = "Legal contract documents" },
},
FirstNPages = 3,
Instructions = "Processing batch from Q4 2024 vendor submissions",
NConsensus = 1,
});
Console.WriteLine(result);
import com.retab.RetabClient;
import com.retab.models.Category;
import com.retab.models.MimeData;
import java.net.URI;
import java.util.List;
public final class Example {
public static void main(String[] args) throws Exception {
RetabClient client = new RetabClient(System.getenv("RETAB_API_KEY"));
MimeData document = MimeData.fromUrl(
URI.create("https://my-bucket.s3.us-east-1.amazonaws.com/documents/invoice.pdf"));
List<Category> categories = List.of(
new Category("invoice", null, "Invoice documents with billing information"),
new Category("receipt", null, "Receipt documents for payments"),
new Category("contract", null, "Legal contract documents"));
var result = client.classifications().create(
document,
categories,
"retab-small",
3L,
"Processing batch from Q4 2024 vendor submissions",
1L,
null,
null);
System.out.println(result);
}
}
curl -X POST \
'https://api.retab.com/v1/classifications' \
-H "Authorization: Bearer $RETAB_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"document": {
"filename": "invoice.pdf",
"url": "https://my-bucket.s3.us-east-1.amazonaws.com/documents/invoice.pdf"
},
"model": "retab-small",
"categories": [
{"name": "invoice", "description": "Invoice documents with billing information"},
{"name": "receipt", "description": "Receipt documents for payments"},
{"name": "contract", "description": "Legal contract documents"}
],
"first_n_pages": 3,
"instructions": "Processing batch from Q4 2024 vendor submissions",
"n_consensus": 1
}'
{
"id": "cls_01G34H8J2K",
"file": {
"id": "file_6dd6eb00688ad8d1",
"filename": "invoice.pdf",
"mime_type": "application/pdf"
},
"model": "retab-small",
"categories": [
{
"name": "invoice",
"description": "Invoice documents with billing information"
},
{ "name": "receipt", "description": "Receipt documents for payments" },
{ "name": "contract", "description": "Legal contract documents" }
],
"n_consensus": 1,
"instructions": "Processing batch from Q4 2024 vendor submissions",
"output": {
"reasoning": "The document contains billing details including line items, unit prices, quantities, and a total amount due.",
"category": "invoice"
},
"consensus": {
"choices": [],
"likelihood": null
},
"usage": {
"prompt_tokens": 1500,
"completion_tokens": 40,
"total_tokens": 1540
},
"created_at": "2024-03-15T10:30:00Z"
}
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Public create-classification request body.
The document to classify
Show child attributes
Show child attributes
The categories to classify the document into
1Show child attributes
Show child attributes
The model to use for classification
Only use the first N pages of the document for classification. Useful for large documents where classification can be determined from early pages.
Free-form instructions appended to the system prompt to steer the classification.
Number of classification runs to use for consensus voting. Uses deterministic single-pass when set to 1.
If true, skip the LLM cache and force a fresh completion
If true, run asynchronously: returns immediately with status 'queued' and an empty output. Poll GET /v1//{id} until status is terminal. Mutually exclusive with stream.
Response
Successful Response
A classification result: the categories a document was scored against and the chosen output decision.
Unique identifier of the classification
Information about the classified file
Show child attributes
Show child attributes
Model used for classification
Categories the document was classified against
Show child attributes
Show child attributes
Number of consensus votes used
Free-form instructions supplied with the classification request.
The classification result with reasoning. A degenerate empty decision until status == 'completed'; gate reads on status.
Show child attributes
Show child attributes
Lifecycle status. The synchronous path returns 'completed'. Background runs progress pending -> queued -> in_progress -> completed | failed | cancelled.
pending, queued, in_progress, completed, failed, cancelled Error details when a background run fails; null otherwise. Always present so consumers can read it without an existence check.
Show child attributes
Show child attributes
Consensus metadata for multi-vote classification runs
Show child attributes
Show child attributes
Usage information for the classification
Show child attributes
Show child attributes