Graine AI
API referenceWorkflows

List workflows

Your organisation's workflows, most recently changed first.

Your organisation's workflows, most recently changed first.

Rate limit: 2000 requests per minute per organization, counted together with every endpoint that has no stricter limit of its own. Exceeding it returns 429 with Retry-After; the X-RateLimit-* response headers report your remaining allowance on every call.

GET
/v2/workflows
/v2/workflows?page=1&page_size=20

The Authorization access token

Authorization

Authorization
Required
Bearer <token>

Your Graine API key. Create one in the dashboard under Developers, or via POST /v2/api-keys. Send it as Authorization: Bearer <key>.

In: header

Query Parameters

pagePage

1-indexed page number (max 10000 — narrow the window instead)

Default: 1Minimum: 1Maximum: 10000

page_sizePage Size

Items per page (max 100)

Default: 20Minimum: 1Maximum: 100

Response Body

200

A page.

data
Required
Data

pagination
Required
Pagination

Where the returned page sits in the whole result set.

Emitted verbatim on every list endpoint. The same three fields appear on every page of every collection, so a client can page through any of them with one loop.

401

1100 — missing, unknown or inactive API key. 1101 — a browser session token was presented instead of an API key.

error
Required
Error

Stable integer code from the /v2 error table. Branch on this.

message
Required
Message

One human-readable sentence. Wording may change; the code will not.

403

1102 — the key is valid but lacks the scope this endpoint requires, or names another organization. GET /v2/scopes reports what a key holds.

error
Required
Error

Stable integer code from the /v2 error table. Branch on this.

message
Required
Message

One human-readable sentence. Wording may change; the code will not.

422

Validation Error

error
Required
integer

Stable integer code from the error table. Branch on this, not on the message.

message
Required
string

One human-readable sentence. Wording may change; the code will not.

429

1300 — the per-organization request rate or concurrent-call limit was reached. Carries Retry-After.

error
Required
Error

Stable integer code from the /v2 error table. Branch on this.

message
Required
Message

One human-readable sentence. Wording may change; the code will not.

curl -X GET "https://api.graine.ai/v2/workflows?page=1&page_size=20" \
  -H "Authorization: Bearer <token>"

A page.

{
  "data": [
    {
      "id": "owf_8a1d4e7c2b90f1a2b3c4d5e6",
      "name": "New leads",
      "description": "Call every new lead within a minute.",
      "versions": 2,
      "latest_version": 2,
      "agent_ids": [
        "agt_0123"
      ],
      "draft_revision": 3,
      "draft_saved_at": "2026-10-25T09:30:00+00:00",
      "trigger_enabled": false,
      "created_by": "member-live-1a2b3c",
      "created_at": "2026-10-20T08:00:00+00:00",
      "updated_at": "2026-10-25T09:31:00+00:00",
      "published_at": "2026-10-25T09:31:00+00:00"
    }
  ],
  "pagination": {
    "page": 1,
    "page_size": 20,
    "total": 137,
    "total_pages": 7,
    "has_more": true
  }
}