{
  "info": {
    "_postman_id": "honeybase-graphql-api",
    "name": "Honeybase GraphQL API",
    "description": "Example requests against the Honeybase GraphQL API — one endpoint, one organization API key.\n\nEvery request is a POST to {{baseUrl}}/api/graphql with `Authorization: Bearer {{apiKey}}`.\nImport the companion `honeybase.postman_environment.json` and set `apiKey` to your `hbk_...` key.\n\nDocs: https://docs.honeybase.ai/api/",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "item": [
    {
      "name": "GraphQL",
      "description": "All operations share the single /api/graphql endpoint.",
      "item": [
        {
          "name": "List open tasks",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{apiKey}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "graphql",
              "graphql": {
                "query": "query {\n  tasks {\n    listTasks(includeCompleted: false) {\n      taskId\n      name\n      priority\n      dueDate\n      assignedTo\n    }\n  }\n}",
                "variables": "{}"
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/graphql",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "graphql"
              ]
            },
            "description": "All tasks that are not yet completed, newest work surface. Mirrors the first example in docs/api/examples.md."
          },
          "response": []
        },
        {
          "name": "Get a task by id",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{apiKey}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "graphql",
              "graphql": {
                "query": "query($taskId: Long!) {\n  tasks {\n    getTask(taskId: $taskId) {\n      taskId\n      publicId\n      name\n      priority\n      dueDate\n      assignedTo\n      metadata\n    }\n  }\n}",
                "variables": "{\n  \"taskId\": 42\n}"
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/graphql",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "graphql"
              ]
            },
            "description": "By-id getters dual-accept taskId OR publicId — pass exactly one. See docs/api/conventions.md."
          },
          "response": []
        },
        {
          "name": "Create a task",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{apiKey}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "graphql",
              "graphql": {
                "query": "mutation($n: String!, $d: LocalDate!, $u: Long) {\n  tasks {\n    createTaskWithAssignment(name: $n, dueDate: $d, priority: \"Medium\", userId: $u) {\n      taskId\n      publicId\n    }\n  }\n}",
                "variables": "{\n  \"n\": \"Follow up with ACME\",\n  \"d\": \"2026-08-01\",\n  \"u\": 12\n}"
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/graphql",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "graphql"
              ]
            },
            "description": "Requires canManageTasks. Assign to a specific user via userId, or omit it and let the team’s assignment rules pick someone."
          },
          "response": []
        },
        {
          "name": "Update task metadata (JsonString)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{apiKey}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "graphql",
              "graphql": {
                "query": "mutation($taskId: Long!, $m: String!) {\n  tasks {\n    updateTaskMetadata(taskId: $taskId, metadata: $m) {\n      taskId\n    }\n  }\n}",
                "variables": "{\n  \"taskId\": 42,\n  \"m\": \"{\\\"source\\\":\\\"crm\\\",\\\"externalId\\\":\\\"A-119\\\"}\"\n}"
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/graphql",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "graphql"
              ]
            },
            "description": "metadata is a JsonString: a STRING containing JSON, so it is escaped twice on the way in. See docs/api/conventions.md."
          },
          "response": []
        },
        {
          "name": "List process runs",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{apiKey}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "graphql",
              "graphql": {
                "query": "query {\n  processes {\n    listProcessRuns(processId: 5, limit: 10, offset: 0) {\n      runWorkflowId\n      phase\n      startedAt\n    }\n  }\n}",
                "variables": "{}"
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/graphql",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "graphql"
              ]
            },
            "description": "Page through a process’s run history, newest first. See docs/api/pagination.md for why the page size is small."
          },
          "response": []
        },
        {
          "name": "List members",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{apiKey}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "graphql",
              "graphql": {
                "query": "query {\n  users {\n    listMembers {\n      webUserId\n      firstName\n      lastName\n      email\n    }\n  }\n}",
                "variables": "{}"
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/graphql",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "graphql"
              ]
            },
            "description": "Who can be assigned work: the organization’s members."
          },
          "response": []
        },
        {
          "name": "List teams",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{apiKey}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "graphql",
              "graphql": {
                "query": "query {\n  teams {\n    listTeams {\n      teamId\n      name\n      color\n    }\n  }\n}",
                "variables": "{}"
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/graphql",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "graphql"
              ]
            },
            "description": "Teams in the organization."
          },
          "response": []
        },
        {
          "name": "List schedules",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Authorization",
                "value": "Bearer {{apiKey}}"
              },
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "graphql",
              "graphql": {
                "query": "query($from: String!, $to: String!) {\n  schedules {\n    listSchedules(from: $from, to: $to) {\n      jobScheduleId\n      name\n      webUserId\n    }\n  }\n}",
                "variables": "{\n  \"from\": \"2026-08-01\",\n  \"to\": \"2026-08-31\"\n}"
              }
            },
            "url": {
              "raw": "{{baseUrl}}/api/graphql",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "graphql"
              ]
            },
            "description": "Job schedules in a date window. from/to are required LocalDate bounds (YYYY-MM-DD)."
          },
          "response": []
        }
      ]
    }
  ],
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://app.honeybase.ai",
      "type": "string"
    }
  ]
}
