List feasibility requests
List your organization's feasibility requests, newest first. Optionally filter by status (RECEIVED / RESPONDED / WON / LOST / NOT_PURSUED) and page through results with limit and offset. Each request includes its costPerParticipant (the CPI), which is null until the request has been priced (status RESPONDED).
Authorization
apiKey API key as Bearer token: Authorization: Bearer
In: header
Query Parameters
Return only requests in this status. GET /feasibility/requests/{requestId} says what each one means.
"RECEIVED" | "RESPONDED" | "WON" | "LOST" | "NOT_PURSUED"Most requests to return, from 1 to 100. Defaults to 50.
0 < value <= 100How many requests to skip before this page, newest first. Defaults to 0.
0 <= valueResponse Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://terac.com/api/external/v2/feasibility/requests"{
"count": 0,
"requests": [
{
"id": "string",
"status": "RECEIVED",
"source": "string",
"taskDescription": "string",
"panelDescription": "string",
"submissionCount": 0,
"timelineHours": 0,
"payRateFrequency": "ONE_TIME",
"loiMinutes": 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": []
}{
"error": {
"code": "UNAUTHORIZED",
"message": "API key required. Include Authorization: Bearer <key> header."
}
}{
"error": {
"code": "FORBIDDEN",
"message": "This account is not permitted to use the API."
}
}{
"code": "NOT_FOUND",
"message": "Not found",
"issues": []
}{
"error": {
"code": "RATE_LIMITED",
"message": "Rate limit exceeded. Retry after 61 seconds."
}
}{
"code": "INTERNAL_SERVER_ERROR",
"message": "Internal server error",
"issues": []
}Get a feasibility request GET
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.
List projects GET
Lists your organization's projects, alphabetically by name. Returns up to `limit` per page; while `pagination.has_more` is true, pass `pagination.next_cursor` back as `cursor` for the next page. Deleted and internal-only projects are left out.