camelCase property names. Conceptually, the resources mirror what you manage in the product; see Core concepts, Projects, Task properties, Customers, and Members.
Base URL: https://api.usepike.comVersioning: Pike automatically routes each request to the correct API version. Do not put a version segment in the path (for example
/v1); the gateway selects the version from your request.
Authentication
Every request must include a workspace API secret in theAuthorization header:
Scopes
Each secret is created with one or more scopes. Requests are rejected if the secret lacks permission for the operation. Examples:
The API will grow over time. Additional scopes (for example write access or new resources) can be provisioned on request for your workspace, contact Pike when you need more than the defaults. When you receive a formal OpenAPI document from us, it can list the full scope catalogue available to you, including any extras agreed for your account. Documented endpoints on this page always state which scopes apply.
Creating and managing API secrets (admins)
Only workspace administrators can create, rename, rotate, and revoke API secrets, same class of control as other sensitive workspace settings.- Open Workspace settings → Integrations → Open API
- Choose Create secret
- Give the secret a label (for example
prod-etl,billing-cron) so you can audit usage later - Select the scopes this integration needs (least privilege)
- Copy the secret value immediately when it is shown. Pike does not display the full secret again after you leave the screen. Store it in a secrets manager (Vault, AWS Secrets Manager, Doppler, etc.)
Conventions
- Encoding: UTF-8 JSON bodies and responses.
- Timestamps: ISO 8601 strings in UTC (for example
2026-04-09T14:30:00.000Z). - IDs: opaque string identifiers.
- Pagination: list endpoints return a paginated envelope; use
cursorfrom the previous response to fetch the next page. - Errors: structured JSON with a stable shape for support and logging (see Errors).
Pagination
List endpoints accept:hasMore is false, omit nextCursor or set it to null.
Errors
Failed requests return JSON with HTTP 4xx or 5xx and a body like:requestId when contacting support. Common code values include unauthorized, forbidden, not_found, rate_limited, invalid_request, and internal_error.
Rate limits
Requests are rate-limited per secret and workspace. Responses may includeRetry-After when throttled. Integrations should use exponential backoff and respect 429 responses.
Resources
Projects
Projects are the container for delivery work in Pike; see Project overview. Scopes:projects:read
List: GET /projects
Retrieve:
GET /projects/{projectId}
Example: list response
status reflects your workspace’s configured project statuses; statusCategory maps to the fixed buckets (for example backlog, planned, inProgress, completed, cancelled).
Tasks
Tasks are work items with status, priority, assignees, and dates; see Task properties. Scopes:tasks:read
List: GET /tasks
Retrieve:
GET /tasks/{taskId}
Example: list response
toDo, In Progress → inProgress, In Review → inReview, Done → done, Cancelled → cancelled, Duplicate → duplicate, Backlog → backlog). Priority matches task priority: none, low, medium, high, urgent. billableStatus may be billable, nonBillable, or null when the project has no customer.
Customers
Customer records used across projects and finance; see Customers overview. Scopes:customers:read
List: GET /customers
Retrieve:
GET /customers/{customerId}
Example: list response
mainCurrency is an ISO 4217 code (for example USD, EUR, DKK).
Members
Workspace members (users and invitations); see Members. Scopes:members:read
List: GET /members
Retrieve:
GET /members/{memberId}
Example: list response
workspaceRole reflects coarse access (for example admin, member). Use teamIds to see which teams a member belongs to.
