Getting Started
Programmatic access to Terac's recruitment, interview, and insight delivery platform.
The Terac API gives you programmatic control over participant recruitment, screening, and data collection. You can target specific audiences with filters, screen applicants with custom questions, set quotas, and manage the full opportunity lifecycle programmatically.
Version: v2 (beta)
Base URL: https://terac.com/api/external/v2
This API is in beta. Endpoints and request/response shapes may change before general availability.
Resources
- Filters — Target participants by demographics, geography, profession, and participation history using typed slug filters.
- Screening Questions — Ask explicit multi-option questions during application to qualify or disqualify participants.
- Quotas — Set per-answer floors and caps, or cross-question (interlocked) targets, on screening question answers.
- API Reference — Full endpoint reference generated from the OpenAPI specification.
Getting Started
- Authenticate with your API key.
- Create a project to organize your opportunities.
- Browse the filter catalog to build your targeting criteria.
- Create an opportunity and launch it to begin recruitment.
Opportunity Statuses
An opportunity's status decides which calls it accepts. A call its status does not accept returns 409, and the message says which statuses it needs.
status | Meaning | Calls it accepts |
|---|---|---|
draft | Not launched. An opportunity Terac is still preparing from a quote reads draft too. | PATCH /opportunities/{opportunityId}, POST .../launch, DELETE /opportunities/{opportunityId} |
pre_recruiting | Taking applicants ahead of a launch set up in the dashboard. | POST .../stop |
active | Recruiting. | POST .../pause, POST .../stop |
paused | Recruiting is on hold. | POST .../resume, POST .../stop |
fulfilled | The participant target is reached. It settles to completed. | None |
completed, stopped, expired, cancelled | Ended. | None |
failed | Its launch never finished. Create a new opportunity rather than retrying this one. | None |
GET /opportunities?status= filters by any one of these values. Since the API is in beta, treat a status you do not recognize as one that accepts no calls.