⌘K
Developer Reference

ikreo REST API

Build integrations, automate workflows, and extend your team's productivity stack. Manage projects, tasks, time logs and notifications with a simple, predictable REST interface.

Base URL
Requests & Responses
All requests target the same file. Specify the resource via the endpoint query parameter. All responses are JSON.
https://iikreo.app/api.php?endpoint={resource}
💡 Successful responses always return "ok": true alongside "data". Paginated responses also include total, limit, offset, has_more.
Response envelope
{ "ok": true, "data": [...], "total": 42, "has_more": true }
Security
Authentication
All requests require a Bearer token in the Authorization header. Tokens are scoped to a single workspace.
⚠️ Never expose your API key in client-side code or commit it to version control. Rotate immediately if compromised — from Admin → Profile → Integrations.
HeaderValue
AuthorizationBearer sk_ikreo_…required
Content-Typeapplication/jsonPOST/PUT

Quick testing: append ?api_key=TOKEN to any URL.

Auth header
curl https://iikreo.app/api.php?endpoint=me \
  -H "Authorization: Bearer sk_ikreo_YOUR_KEY"
200 OK
Response
{
  "ok": true,
  "data": {
    "user": {
      "id": 42,
      "full_name": "David Monroy",
      "email": "david@empresa.com",
      "role": "admin"
    },
    "company": {
      "id": 10,
      "name": "IntroCrea",
      "plan_v2": "pro"
    }
  }
}
Reference
Error codes
All errors return a non-2xx HTTP status alongside "error": true and a "message" string.
Error shape
{ "error": true, "code": 404, "message": "Task not found", "docs": "https://iikreo.app/api.php" }
400Bad RequestMissing or invalid parameters in the request body.
401UnauthorizedAPI key missing, invalid, or revoked.
403ForbiddenYou don't have access to this resource.
404Not FoundThe requested resource doesn't exist.
405Method Not AllowedHTTP method not supported for this endpoint.
429Rate LimitedToo many requests. Slow down and retry after 60 seconds.
500Server ErrorUnexpected error on our side. Contact support if it persists.
Limits
Rate Limits
⚠️ The API allows 100 requests per minute per key. Exceeding this returns HTTP 429. Check the Retry-After header for the cooldown period. Pro plan customers may request higher limits.
Utility
Ping
GET/api.php?endpoint=ping
Health check. No authentication required. Use for uptime monitoring or connectivity tests.
Request
curl https://iikreo.app/api.php?endpoint=ping
200 OK
Response
{ "ok": true, "data": { "status": "ok", "version": "1.0" } }
Identity
Me
GET/api.php?endpoint=me
Returns the authenticated user object and associated company. Useful for verifying your key is valid and checking your workspace plan.
Request
curl https://iikreo.app/api.php?endpoint=me \
  -H "Authorization: Bearer $KEY"
200 OK
Response
{
  "ok": true,
  "data": {
    "user": { "id": 42, "role": "admin" },
    "company": { "plan_v2": "pro" }
  }
}
Core resource
Projects
GET/api.php?endpoint=projects
GET/api.php?endpoint=projects&id=1
POST/api.php?endpoint=projects
List all workspace projects, fetch one by ID (includes sprints), or create a new project.

Query params

ParamTypeDescription
idintegeroptionalFetch a single project by ID. Returns the project with its sprints array.

Body (POST)

FieldTypeDescription
namestringrequiredProject display name.
List projects
curl https://iikreo.app/api.php?endpoint=projects \
  -H "Authorization: Bearer $KEY"
200 OK
Response
{
  "ok": true, "total": 3,
  "data": [
    {
      "id": 1,
      "name": "DogWalk App",
      "open_tasks": 12,
      "created_at": "2026-01-14T09:32:00Z"
    }
  ]
}
Core resource
Tasks
GET/api.php?endpoint=tasks
GET/api.php?endpoint=tasks&id=5
POST/api.php?endpoint=tasks
PUT/api.php?endpoint=tasks&id=5
DELETE/api.php?endpoint=tasks&id=5

Filters (GET list)

ParamTypeDescription
project_idintegeroptionalFilter by project.
statusenumoptionalpending · progress · qa · done
limitintegeroptionalDefault 50, max 100.
offsetintegeroptionalPagination offset.

Body (POST / PUT)

FieldTypeDescription
titlestringPOST req.Task title.
project_idintegerPOST req.Project this task belongs to.
statusenumoptionalpending · progress · qa · done
priorityenumoptionalbaja · media · alta · urgente
due_datedateoptionalISO 8601: YYYY-MM-DD
assigneesinteger[]optionalArray of user IDs (POST only).
Create task
curl -X POST \
  https://iikreo.app/api.php?endpoint=tasks \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Implement payment gateway",
    "project_id": 1,
    "priority": "alta",
    "due_date": "2026-04-15",
    "assignees": [3, 7]
  }'
201 Created
Response
{
  "ok": true,
  "data": {
    "id": 42,
    "title": "Implement payment gateway"
  }
}
Team
Team
GET/api.php?endpoint=team
List all members of the workspace with their role, avatar, and current online status (active within 5 minutes).
Request
curl https://iikreo.app/api.php?endpoint=team \
  -H "Authorization: Bearer $KEY"
200 OK
Response
{
  "ok": true, "total": 5,
  "data": [{
    "id": 1, "full_name": "David M.",
    "role": "admin", "is_online": true
  }]
}
Planning
Sprints
GET/api.php?endpoint=sprints
List all non-closed sprints. Filter to a project with ?project_id=1.
ParamTypeDescription
project_idintegeroptionalScope results to a specific project.
Request
curl "https://iikreo.app/api.php?endpoint=sprints&project_id=1" \
  -H "Authorization: Bearer $KEY"
200 OK
Response
{
  "ok": true, "total": 2,
  "data": [{
    "id": 3, "name": "Sprint 1 - MVP",
    "status": "active",
    "start_date": "2026-03-01",
    "end_date": "2026-03-14"
  }]
}
Time tracking
Time Logs
GET/api.php?endpoint=timelogs
Retrieve time tracking sessions for all team members. Optionally filter to a single task. Returns up to 100 records, newest first.
ParamTypeDescription
task_idintegeroptionalLimit results to a specific task.
Request
curl "https://iikreo.app/api.php?endpoint=timelogs&task_id=5" \
  -H "Authorization: Bearer $KEY"
200 OK
Response
{
  "ok": true, "total": 3,
  "data": [{
    "duration_seconds": 3720,
    "full_name": "David M.",
    "started_at": "2026-03-14T10:00:00Z",
    "ended_at": "2026-03-14T11:02:00Z"
  }]
}
Notifications
Notifications
GET/api.php?endpoint=notifications
POST/api.php?endpoint=notifications
GET: fetch the last 30 notifications for the authenticated user.
POST: push a manual notification to any user in your workspace.
FieldTypeDescription
titlestringrequiredNotification headline.
bodystringoptionalNotification body text.
user_idintegeroptionalTarget user. Defaults to self.
Send notification
curl -X POST \
  https://iikreo.app/api.php?endpoint=notifications \
  -H "Authorization: Bearer $KEY" \
  -d '{"title":"Deploy done","body":"v2.3 is live","user_id":3}'
200 OK
Response
{ "ok": true, "data": { "id": 99, "sent": true } }