Venue leads
Venue leads have no org_id on the table — they are scoped by linked companies.org_id or venue_leads.user_email ∈ org members. List/get/update only (create is UI / import today).
Quickstart
Base URL (canonical)
https://api.strackerapp.com/v1/
Same gateway also answers under /api/v1 on strackerapp.com. Prefer the api. subdomain. Do not use api.stracker.io (not wired; returns 403).
Environments (keep separate)
| Env | Base | Keys |
|---|---|---|
| Production | https://api.strackerapp.com/v1 | sk_prod_… only |
| Local smoke | http://127.0.0.1:8888/api/v1 | sk_dev_… only |
Never mix prod keys with local, or local keys with prod.
Auth (all endpoints)
Org-scoped Bearer API key. Agent keys act as the agent with reports_to ACL inheritance.
Authorization: Bearer sk_REPLACE
Content-Type: application/json
# Optional alternate header:
# X-Stracker-Api-Key: sk_REPLACE
Response envelope
{
"success": true,
"data": { /* endpoint-specific payload */ }
}
Errors
Failed responses always have success: false and an error object with a stable code and a human-readable message:
{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "company_name is required"
}
}
| HTTP status | When | What to do |
|---|---|---|
400 | Validation failed (missing required fields, bad enum, migration not applied for company/contact notes, assignee not in org, slot unavailable). | Read error.message; fix the payload. |
401 | Missing or invalid Authorization / X-Stracker-Api-Key. | Check the API key; confirm the header is present. |
403 | Key is valid but lacks permission (e.g. non-admin calling agent admin endpoints), or org scope mismatch. | Use an org-admin key, or confirm the resource belongs to the key's org. |
404 | Resource not found or not visible to this org. | Verify the id and org scoping. |
500 | Unexpected server error. | Retry with backoff; report if persistent. |
Venue leads
Endpoints at a glance
| Action | Method + Path | Summary |
|---|---|---|
| List venue leads | GET /venue-leads | List venue leads with optional filters. |
| Get a venue lead | GET /venue-leads/{id} | Fetch a single venue lead by id. |
| Update a venue lead | PATCH/PUT /venue-leads/{id} | Update venue lead fields (status, deal_status, company link, notes). |
GET /venue-leads
List venue leads with optional filters.
Query parameters
| Field | Type | Required | Description |
|---|---|---|---|
q |
string |
no | Free-text search |
company_id |
integer |
no | Filter by company |
status |
string |
no | Status filter |
deal_status |
string |
no | Deal status filter |
city |
string |
no | City |
state |
string |
no | State |
user_email |
string |
no | Owner email |
limit |
integer |
no | Page size Default: 50. |
offset |
integer |
no | Offset |
Request example
curl -sS "https://api.strackerapp.com/v1/venue-leads?limit=5" \
-H "Authorization: Bearer sk_REPLACE"
Response 200 OK
{
"success": true,
"data": {
"venue_leads": [
{ "id": 7, "name": "Downtown Venue", "city": "Austin", "state": "TX", "company_id": 1, "status": "active" }
],
"pagination": { "limit": 5, "offset": 0 }
}
}
GET /venue-leads/{id}
Fetch a single venue lead by id.
Path parameters
| Field | Type | Required | Description |
|---|---|---|---|
id |
integer |
yes | Venue lead id |
Request example
curl -sS https://api.strackerapp.com/v1/venue-leads/7 \
-H "Authorization: Bearer sk_REPLACE"
Response 200 OK
{
"success": true,
"data": {
"venue_lead": { "id": 7, "name": "Downtown Venue", "city": "Austin", "company_id": 1, "status": "active", "deal_status": null }
}
}
PATCH PUT /venue-leads/{id}
Update venue lead fields (status, deal_status, company link, notes).
Path parameters
| Field | Type | Required | Description |
|---|---|---|---|
id |
integer |
yes | Venue lead id |
Body parameters
| Field | Type | Required | Description |
|---|---|---|---|
status |
string |
no | Status |
deal_status |
string |
no | Deal status |
company_id |
integer |
no | Link / re-link company |
notes |
string |
no | Notes text |
Request example
curl -sS -X PATCH https://api.strackerapp.com/v1/venue-leads/7 \
-H "Authorization: Bearer sk_REPLACE" \
-H "Content-Type: application/json" \
-d '{"status":"active","company_id":1}'
Response 200 OK
{
"success": true,
"data": {
"venue_lead": { "id": 7, "status": "active", "company_id": 1 }
}
}