Get a feasibility request

GET
/feasibility/requests/{requestId}

Retrieve one of your feasibility requests by id. Use this to poll for the CPI after submitting.

Status decides whether there is a price to read:

  • RECEIVED: not priced yet, costPerParticipant is null.
  • RESPONDED: priced. costPerParticipant is the confirmed all-in CPI per participant.
  • WON: already used by a study that launched.
  • LOST or NOT_PURSUED: closed without a usable price. Both are terminal, so stop polling. No reason is returned on this endpoint.

Once RESPONDED, create the opportunity with POST /opportunities passing feasibility_request_id to price it from that confirmed CPI, then launch it.

Authorization<token>

API key as Bearer token: Authorization: Bearer

In: header

Path Parameters

requestId*string

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://terac.com/api/external/v2/feasibility/requests/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",
  "dashboard_url": "string"
}
{
  "code": "BAD_REQUEST",
  "message": "Invalid input data",
  "issues": []
}
{
  "code": "UNAUTHORIZED",
  "message": "Authorization not provided",
  "issues": []
}
{
  "code": "FORBIDDEN",
  "message": "Insufficient access",
  "issues": []
}
{
  "code": "NOT_FOUND",
  "message": "Not found",
  "issues": []
}
{
  "code": "INTERNAL_SERVER_ERROR",
  "message": "Internal server error",
  "issues": []
}