API Overview
Integrate TIXFIN with your website or app
Connect your own systems to TIXFIN through the Partner API — a read-only, API-key authenticated REST API for pulling a project's events, ticket catalog, tickets, and orders.
What Can You Do?
Common Use Cases
| Use Case | Description |
|---|---|
| Automation | Sync events, tickets, and orders with your systems |
| Analytics | Pull data for custom reports and dashboards |
| Reconciliation | Match orders and tickets against your own records |
| Custom integrations | Feed TIXFIN data into a CRM, warehouse, or BI tool |
The Partner API is read-only today. Creating events, selling tickets, and managing check-in happen through the TIXFIN dashboard, not this API.
Getting Started
1. Get an API Key
prefix.secret format2. Make Your First Request
curl https://api.tixfin.com/api/partner/projects/YOUR_PROJECT_ID/events \
-H "X-API-Key: YOUR_API_KEY"API Basics
Base URL
https://api.tixfin.comAll Partner API endpoints are scoped to a project:
/api/partner/projects/{projectId}/...Authentication
Send your API key as either header:
X-API-Key: YOUR_API_KEYor
Authorization: Bearer YOUR_API_KEYSee the Authentication guide for details.
Response Format
List endpoints return a paginated envelope:
{
"items": [ /* ... */ ],
"total": 42,
"page": 0,
"size": 20
}Single-resource endpoints (like GET /events/{eventId}) return the object
directly.
Rate Limits
Two limits apply per project's API key, and one per client IP:
| Scope | Default limit |
|---|---|
| Per API key | 600 requests/minute |
| Per IP address | 180 requests/minute |
Exceeding either returns 429.
Endpoints
Every key is scoped to one or more endpoint groups — calling an
endpoint your key isn't scoped for returns 403.
Endpoint group: events.read
List Events
GET /api/partner/projects/{projectId}/events?page=0&size=20Get Event Details
GET /api/partner/projects/{projectId}/events/{eventId}Endpoint group: ticket_catalog.read
List Ticket Catalog Items
GET /api/partner/projects/{projectId}/ticket-catalog?eventId={eventId}&page=0&size=20Endpoint group: tickets.read
List Tickets
GET /api/partner/projects/{projectId}/tickets?eventId={eventId}&paymentReference=&status=&page=0&size=20eventId, paymentReference, and status are all optional filters.
Endpoint group: orders.read
List Orders
GET /api/partner/projects/{projectId}/orders?eventId={eventId}&page=0&size=20An "order" is an aggregate over all tickets sharing a paymentReference.
Official SDKs
Instead of calling the REST API directly, use one of the official client libraries — both wrap authentication, pagination params, and error handling:
npm install @tixfin/partner-api-clientimport { TixfinPartnerClient } from "@tixfin/partner-api-client";
const client = new TixfinPartnerClient({
projectId: "YOUR_PROJECT_ID",
apiKey: process.env.TIXFIN_PARTNER_API_KEY!,
});
const events = await client.listEvents();pip install tixfin-partner-apifrom tixfin_partner_api import TixfinPartnerClient
client = TixfinPartnerClient(
project_id="YOUR_PROJECT_ID",
api_key=os.environ["TIXFIN_PARTNER_API_KEY"],
)
events = client.list_events()Full reference: SDKs guide.
Best Practices
✅ Security
- Store keys in environment variables, never in client-side code
- Scope each key to only the endpoint groups it needs
- Rotate keys regularly and revoke unused ones
✅ Performance
- Cache responses when possible
- Use
page/sizeto avoid over-fetching (sizemax is 100) - Filter
tickets/ordersbyeventIdwhen you only need one event
✅ Error Handling
- Check HTTP status codes
- Parse the
messagefield in error responses - Back off and retry on
429
Error Codes
| Code | Meaning |
|---|---|
| 200 | Success |
| 400 | Bad request (check parameters) |
| 401 | Missing or invalid API key |
| 403 | Key not scoped for this endpoint group |
| 404 | Resource not found |
| 429 | Rate limit exceeded |
| 500 | Server error (contact support) |
Error responses look like:
{
"message": "Invalid API key",
"status": 401
}Support
Documentation:
Need Help?
- Email: api@tixfin.com
- Include: API key prefix (never the full key), request details, error messages