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)

EnvBaseKeys
Productionhttps://api.strackerapp.com/v1sk_prod_… only
Local smokehttp://127.0.0.1:8888/api/v1sk_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 statusWhenWhat to do
400Validation 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.
401Missing or invalid Authorization / X-Stracker-Api-Key.Check the API key; confirm the header is present.
403Key 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.
404Resource not found or not visible to this org.Verify the id and org scoping.
500Unexpected server error.Retry with backoff; report if persistent.

Venue leads

Endpoints at a glance

ActionMethod + PathSummary
List venue leadsGET /venue-leadsList venue leads with optional filters.
Get a venue leadGET /venue-leads/{id}Fetch a single venue lead by id.
Update a venue leadPATCH/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

FieldTypeRequiredDescription
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

FieldTypeRequiredDescription
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

FieldTypeRequiredDescription
id integer yes Venue lead id

Body parameters

FieldTypeRequiredDescription
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 }
  }
}