Submit a feasibility request

POST
/feasibility/requests

Submit a feasibility request: can Terac source a panel for this task, and at what CPI (cost per participant).

This is an async request-reply. The response comes back immediately with status RECEIVED and no CPI (costPerParticipant is null). Terac prices it out of band, then poll GET /feasibility/requests/{requestId} until status is RESPONDED and costPerParticipant is set. That is the confirmed CPI.

Once RESPONDED, create the opportunity with POST /opportunities and pass feasibility_request_id to price it from that confirmed CPI (Terac skips the autonomous estimate and closes the request as won), then launch it.

Authorization<token>

API key as Bearer token: Authorization: Bearer

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://terac.com/api/external/v2/feasibility/requests" \  -H "Content-Type: application/json" \  -d '{    "taskDescription": "string",    "panelDescription": "string"  }'
{
  "id": "string",
  "status": "RECEIVED",
  "source": "string",
  "taskDescription": "string",
  "panelDescription": "string",
  "submissionCount": 0,
  "timelineHours": 0,
  "costPerParticipant": "string",
  "respondedAt": "2019-08-24T14:15:22Z",
  "createdAt": "2019-08-24T14:15:22Z"
}
{
  "code": "BAD_REQUEST",
  "message": "Invalid input data",
  "issues": []
}
{
  "code": "UNAUTHORIZED",
  "message": "Authorization not provided",
  "issues": []
}
{
  "code": "FORBIDDEN",
  "message": "Insufficient access",
  "issues": []
}
{
  "code": "INTERNAL_SERVER_ERROR",
  "message": "Internal server error",
  "issues": []
}