from retab import Retab
client = Retab()
edits = client.edits.list(limit=20, order="desc")
for edit in edits.data:
print(f"{edit.id}: {edit.file.filename}")
# Filter by template
edits = client.edits.list(template_id="edittplt_abc123", limit=50)
import { Retab } from "@retab/node";
const client = new Retab({ apiKey: process.env.RETAB_API_KEY });
const edits = await client.edits.list({ limit: 20, order: "desc" });
for (const edit of edits.data) {
console.log(`${edit.id}: ${edit.file.filename}`);
}
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)
}
edits, err := client.Edits.List(ctx, &retab.EditsListParams{
PaginationParams: retab.PaginationParams{Limit: ptr(20), Order: ptr("desc")},
})
if err != nil {
log.Fatal(err)
}
for _, edit := range edits.Data {
fmt.Printf("%s: %s\n", edit.ID, edit.File.Filename)
}
// Filter by template
filtered, err := client.Edits.List(ctx, &retab.EditsListParams{
PaginationParams: retab.PaginationParams{Limit: ptr(50)},
TemplateID: ptr("edittplt_abc123"),
})
if err != nil {
log.Fatal(err)
}
fmt.Println(filtered)
}
require 'retab'
client = Retab::Client.new(api_key: ENV['RETAB_API_KEY'])
edits = client.edits.list(limit: 20, order: 'desc')
edits.data.each do |edit|
puts "#{edit.id}: #{edit.file.filename}"
end
# Filter by template
edits = client.edits.list(template_id: 'edittplt_abc123', limit: 50)
use retab::enums::EditsOrder;
use retab::resources::edits::ListParams;
use retab::Retab;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = Retab::new(std::env::var("RETAB_API_KEY")?);
let edits = client
.edits()
.list(ListParams {
limit: Some(20),
order: Some(EditsOrder::Desc),
..Default::default()
})
.await?;
for edit in &edits.data {
println!("{}: {}", edit.id, edit.file.filename);
}
// Filter by template
let _filtered = client
.edits()
.list(ListParams {
template_id: Some("edittplt_abc123".into()),
limit: Some(50),
..Default::default()
})
.await?;
Ok(())
}
<?php
require 'vendor/autoload.php';
use Retab\Client;
$client = new Client(apiKey: getenv('RETAB_API_KEY'));
$result = $client->edits()->list();
print_r($result);
using Retab;
using RetabClient = Retab.Retab;
var apiKey = Environment.GetEnvironmentVariable("RETAB_API_KEY")!;
var client = new RetabClient(apiKey);
var result = await client.Edits.ListAsync(new EditsListOptions());
Console.WriteLine(result);
import com.retab.RetabClient;
public final class Example {
public static void main(String[] args) throws Exception {
RetabClient client = new RetabClient(System.getenv("RETAB_API_KEY"));
var result = client.edits().list(null, null, 10L, null, "invoice.pdf", "tmpl_abc123", null, null, null);
System.out.println(result);
}
}
curl -X GET \
'https://api.retab.com/v1/edits?limit=20&order=desc' \
-H "Authorization: Bearer $RETAB_API_KEY"
# With a template_id filter
curl -X GET \
'https://api.retab.com/v1/edits?template_id=edittplt_abc123' \
-H "Authorization: Bearer $RETAB_API_KEY"
{
"data": [
{
"id": "edit_01G34H8J2K",
"file": {
"id": "file_6dd6eb00688ad8d1",
"filename": "form.pdf",
"mime_type": "application/pdf"
},
"model": "retab-small",
"template_id": null,
"usage": { "page_count": 1, "credits": 1.0 },
"created_at": "2024-03-15T10:30:00Z"
}
],
"list_metadata": {
"before": null,
"after": "edit_01G34H8J2K"
}
}
Edits
List Edits
List edits.
Returns a paginated list of edits. Filter by filename (case-insensitive
prefix match), template_id, and a from_date/to_date creation range
(each YYYY-MM-DD). Page with before/after cursors, limit, and
order; an invalid date format responds with 400.
GET
/
v1
/
edits
from retab import Retab
client = Retab()
edits = client.edits.list(limit=20, order="desc")
for edit in edits.data:
print(f"{edit.id}: {edit.file.filename}")
# Filter by template
edits = client.edits.list(template_id="edittplt_abc123", limit=50)
import { Retab } from "@retab/node";
const client = new Retab({ apiKey: process.env.RETAB_API_KEY });
const edits = await client.edits.list({ limit: 20, order: "desc" });
for (const edit of edits.data) {
console.log(`${edit.id}: ${edit.file.filename}`);
}
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)
}
edits, err := client.Edits.List(ctx, &retab.EditsListParams{
PaginationParams: retab.PaginationParams{Limit: ptr(20), Order: ptr("desc")},
})
if err != nil {
log.Fatal(err)
}
for _, edit := range edits.Data {
fmt.Printf("%s: %s\n", edit.ID, edit.File.Filename)
}
// Filter by template
filtered, err := client.Edits.List(ctx, &retab.EditsListParams{
PaginationParams: retab.PaginationParams{Limit: ptr(50)},
TemplateID: ptr("edittplt_abc123"),
})
if err != nil {
log.Fatal(err)
}
fmt.Println(filtered)
}
require 'retab'
client = Retab::Client.new(api_key: ENV['RETAB_API_KEY'])
edits = client.edits.list(limit: 20, order: 'desc')
edits.data.each do |edit|
puts "#{edit.id}: #{edit.file.filename}"
end
# Filter by template
edits = client.edits.list(template_id: 'edittplt_abc123', limit: 50)
use retab::enums::EditsOrder;
use retab::resources::edits::ListParams;
use retab::Retab;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = Retab::new(std::env::var("RETAB_API_KEY")?);
let edits = client
.edits()
.list(ListParams {
limit: Some(20),
order: Some(EditsOrder::Desc),
..Default::default()
})
.await?;
for edit in &edits.data {
println!("{}: {}", edit.id, edit.file.filename);
}
// Filter by template
let _filtered = client
.edits()
.list(ListParams {
template_id: Some("edittplt_abc123".into()),
limit: Some(50),
..Default::default()
})
.await?;
Ok(())
}
<?php
require 'vendor/autoload.php';
use Retab\Client;
$client = new Client(apiKey: getenv('RETAB_API_KEY'));
$result = $client->edits()->list();
print_r($result);
using Retab;
using RetabClient = Retab.Retab;
var apiKey = Environment.GetEnvironmentVariable("RETAB_API_KEY")!;
var client = new RetabClient(apiKey);
var result = await client.Edits.ListAsync(new EditsListOptions());
Console.WriteLine(result);
import com.retab.RetabClient;
public final class Example {
public static void main(String[] args) throws Exception {
RetabClient client = new RetabClient(System.getenv("RETAB_API_KEY"));
var result = client.edits().list(null, null, 10L, null, "invoice.pdf", "tmpl_abc123", null, null, null);
System.out.println(result);
}
}
curl -X GET \
'https://api.retab.com/v1/edits?limit=20&order=desc' \
-H "Authorization: Bearer $RETAB_API_KEY"
# With a template_id filter
curl -X GET \
'https://api.retab.com/v1/edits?template_id=edittplt_abc123' \
-H "Authorization: Bearer $RETAB_API_KEY"
{
"data": [
{
"id": "edit_01G34H8J2K",
"file": {
"id": "file_6dd6eb00688ad8d1",
"filename": "form.pdf",
"mime_type": "application/pdf"
},
"model": "retab-small",
"template_id": null,
"usage": { "page_count": 1, "credits": 1.0 },
"created_at": "2024-03-15T10:30:00Z"
}
],
"list_metadata": {
"before": null,
"after": "edit_01G34H8J2K"
}
}
List persisted edits for your organization, with id-based pagination and optional template filtering.
from retab import Retab
client = Retab()
edits = client.edits.list(limit=20, order="desc")
for edit in edits.data:
print(f"{edit.id}: {edit.file.filename}")
# Filter by template
edits = client.edits.list(template_id="edittplt_abc123", limit=50)
import { Retab } from "@retab/node";
const client = new Retab({ apiKey: process.env.RETAB_API_KEY });
const edits = await client.edits.list({ limit: 20, order: "desc" });
for (const edit of edits.data) {
console.log(`${edit.id}: ${edit.file.filename}`);
}
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)
}
edits, err := client.Edits.List(ctx, &retab.EditsListParams{
PaginationParams: retab.PaginationParams{Limit: ptr(20), Order: ptr("desc")},
})
if err != nil {
log.Fatal(err)
}
for _, edit := range edits.Data {
fmt.Printf("%s: %s\n", edit.ID, edit.File.Filename)
}
// Filter by template
filtered, err := client.Edits.List(ctx, &retab.EditsListParams{
PaginationParams: retab.PaginationParams{Limit: ptr(50)},
TemplateID: ptr("edittplt_abc123"),
})
if err != nil {
log.Fatal(err)
}
fmt.Println(filtered)
}
require 'retab'
client = Retab::Client.new(api_key: ENV['RETAB_API_KEY'])
edits = client.edits.list(limit: 20, order: 'desc')
edits.data.each do |edit|
puts "#{edit.id}: #{edit.file.filename}"
end
# Filter by template
edits = client.edits.list(template_id: 'edittplt_abc123', limit: 50)
use retab::enums::EditsOrder;
use retab::resources::edits::ListParams;
use retab::Retab;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = Retab::new(std::env::var("RETAB_API_KEY")?);
let edits = client
.edits()
.list(ListParams {
limit: Some(20),
order: Some(EditsOrder::Desc),
..Default::default()
})
.await?;
for edit in &edits.data {
println!("{}: {}", edit.id, edit.file.filename);
}
// Filter by template
let _filtered = client
.edits()
.list(ListParams {
template_id: Some("edittplt_abc123".into()),
limit: Some(50),
..Default::default()
})
.await?;
Ok(())
}
<?php
require 'vendor/autoload.php';
use Retab\Client;
$client = new Client(apiKey: getenv('RETAB_API_KEY'));
$result = $client->edits()->list();
print_r($result);
using Retab;
using RetabClient = Retab.Retab;
var apiKey = Environment.GetEnvironmentVariable("RETAB_API_KEY")!;
var client = new RetabClient(apiKey);
var result = await client.Edits.ListAsync(new EditsListOptions());
Console.WriteLine(result);
import com.retab.RetabClient;
public final class Example {
public static void main(String[] args) throws Exception {
RetabClient client = new RetabClient(System.getenv("RETAB_API_KEY"));
var result = client.edits().list(null, null, 10L, null, "invoice.pdf", "tmpl_abc123", null, null, null);
System.out.println(result);
}
}
curl -X GET \
'https://api.retab.com/v1/edits?limit=20&order=desc' \
-H "Authorization: Bearer $RETAB_API_KEY"
# With a template_id filter
curl -X GET \
'https://api.retab.com/v1/edits?template_id=edittplt_abc123' \
-H "Authorization: Bearer $RETAB_API_KEY"
{
"data": [
{
"id": "edit_01G34H8J2K",
"file": {
"id": "file_6dd6eb00688ad8d1",
"filename": "form.pdf",
"mime_type": "application/pdf"
},
"model": "retab-small",
"template_id": null,
"usage": { "page_count": 1, "credits": 1.0 },
"created_at": "2024-03-15T10:30:00Z"
}
],
"list_metadata": {
"before": null,
"after": "edit_01G34H8J2K"
}
}
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Required range:
1 <= x <= 100Available options:
asc, desc Available options:
pending, queued, in_progress, completed, failed, cancelled Response
Successful Response
⌘I