Skip to main content
    Start free
    Public and unauthenticated

    Developer documentation

    Matin PPM 360 ships an open REST API on every paid plan. Integrate ERP, BI and automation tools against the same governed data your delivery teams use. Nothing on this page requires a login.

    The four things to know

    Authentication

    Issue a scoped API key from API Access inside your workspace and send it as a bearer token. Keys are tenant-scoped, hashed at rest, and revocable at any time.

    Resources

    Portfolios, programmes, projects, tasks, risks, issues, milestones, timesheets and approvals are exposed as REST collections with filtering and pagination.

    Rate limits

    Requests are rate limited per key. Every response carries the remaining quota and the reset window, so clients can back off cleanly.

    Webhooks

    Subscribe to delivery events and receive signed callbacks with automatic retry. Verify the signature before acting on a payload.

    Your first request

    Create a key in your workspace under API Access, then read a collection. Responses are JSON, scoped to the workspace that owns the key.

    Read projects
    curl https://matinsplatform.lovable.app/api/public/v1/projects \
      -H "Authorization: Bearer $MATIN_API_KEY" \
      -H "Accept: application/json"
    Filter and paginate
    curl "https://matinsplatform.lovable.app/api/public/v1/projects?status=active&limit=50" \
      -H "Authorization: Bearer $MATIN_API_KEY"
    Rate-limit headers on every response
    HTTP/1.1 200 OK
    Content-Type: application/json
    X-RateLimit-Limit: 600
    X-RateLimit-Remaining: 597
    X-RateLimit-Reset: 1756900000

    Row-level tenant isolation applies to API traffic exactly as it does in the interface — a key can never read another workspace's data, regardless of the identifiers in the request.

    Webhooks

    Delivery events are pushed to your endpoint with an HMAC signature. Verify the signature before acting on a payload, and return 2xx within ten seconds or the delivery is retried.

    Example callback
    POST /your-endpoint HTTP/1.1
    X-Matin-Signature: sha256=<hex digest>
    Content-Type: application/json
    
    {
      "event": "project.status_changed",
      "occurred_at": "2026-08-24T09:14:22Z",
      "data": { "project_id": "prj_01J...", "from": "green", "to": "amber" }
    }

    Integrating with something specific?

    ERP, Power BI, Primavera round-trip — tell us the system and we will tell you what the API already does.