List projects
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.
Authorization
apiKey API key as Bearer token: Authorization: Bearer
In: header
Query Parameters
Most items to return in one page, from 1 to 100. Defaults to 25.
251 <= value <= 100pagination.next_cursor from the previous page, to fetch the page after it. Omit it for the first page.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://terac.com/api/external/v2/projects"{
"data": [
{
"id": "string",
"name": "string",
"slug": "string",
"created_at": "string",
"dashboard_url": "string"
}
],
"pagination": {
"next_cursor": "string",
"has_more": true
}
}{
"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": []
}List feasibility requests GET
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).
Create a project POST
Creates a project to file opportunities under. Every opportunity belongs to one, so pass the returned `id` as `project_id` to `POST /opportunities`. The `slug` is generated from `name` with a unique suffix, and each call creates a new project even when the name is already in use.