API Documentation
Integrate TrustPipe into your apps, scripts and workflows
A simple REST API to manage tables, rows, and run enrichments programmatically.
Getting Started
1
Generate an API key in Settings → API Keys.
2
Include it as a Bearer token in every request:
Authorization: Bearer tp_your_api_key_hereBase URL
https://yhewmeyrrrujicqweflc.supabase.co/functions/v1/apiQuick Examples
curl https://yhewmeyrrrujicqweflc.supabase.co/functions/v1/api/tables \ -H "Authorization: Bearer tp_your_key_here"
Credits & Limits
- •Enrichment — credits deducted per row per pipe (same as the UI).
- •Discovery — 1 credit per company returned.
- •Pagination — max 100 rows per request. Use
limitandoffsetquery params. - •Tables, rows, columns — free to read/write.
Endpoint Reference
GET
/tablesList all your tablesQuery Parameters
?limit=50&offset=0Response
{
"data": [{ "id": "uuid", "name": "My Table", "description": "...", "created_at": "..." }],
"total": 42,
"limit": 50,
"offset": 0
}POST
/tablesCreate a new tableRequest Body
{
"name": "Leads Q1",
"description": "Q1 lead list",
"columns": [
{ "name": "company_name", "display_name": "Company", "type": "text" },
{ "name": "email", "display_name": "Email", "type": "text" }
]
}Response
{ "data": { "id": "uuid", "name": "Leads Q1", ... } }GET
/tables/:idGet a table with its columnsResponse
{ "data": { "id": "uuid", "name": "...", "columns": [...] } }GET
/tables/:id/rowsList rows (paginated)Query Parameters
?limit=50&offset=0Response
{
"data": [{ "id": "uuid", "data": { "company_name": "Acme", ... }, "enrichment_status": "pending" }],
"total": 100, "limit": 50, "offset": 0
}POST
/tables/:id/rowsAdd rows to a tableRequest Body
{
"rows": [
{ "data": { "company_name": "Acme Corp", "email": "hello@acme.com" } },
{ "data": { "company_name": "Globex", "email": "info@globex.com" } }
]
}Response
{ "data": [...], "inserted": 2 }PUT
/rows/:idUpdate a rowRequest Body
{ "data": { "company_name": "Acme Corp Updated" } }Response
{ "data": { "id": "uuid", "data": { ... } } }DELETE
/rows/:idDelete a rowResponse
{ "success": true }POST
/enrichStart an enrichment jobRequest Body
{
"table_id": "uuid",
"row_ids": ["uuid1", "uuid2"],
"pipes": [
{
"id": "people:workemail:waterfall@1",
"name": "Work Email Finder",
"mappings": { "first_name": "first_name", "last_name": "last_name", "company_website_url": "website" }
}
]
}Response
{ "data": { "id": "job-uuid", "status": "pending", ... }, "message": "Enrichment job started" }GET
/jobs/:idCheck enrichment job statusResponse
{ "data": { "id": "uuid", "status": "completed", "rows_processed": 10, "rows_failed": 0 } }POST
/discoverDiscover companies by criteriaRequest Body
{
"industry": "SaaS",
"country": "gb",
"city": "London",
"employee_range": "11-50 employees",
"max_results": 25
}Response
{ "success": true, "table_id": "uuid", "companies_found": 25, "credits_used": 25 }