List projects

OpenAPI contract

Method
GET
Path
/api/v1/projects
Security
jwtBearer (bearer) OR automationKey (bearer)
Response status
200 400 401 403 404 409 429 500
Request and response schemas
JSON
{
  "requestBody": {},
  "responses": {
    "200": {
      "description": "Project page",
      "content": {
        "application/json": {}
      }
    },
    "400": {
      "description": "Invalid request",
      "content": {
        "application/json": {
          "$ref": "#/components/schemas/RequestError"
        }
      }
    },
    "401": {
      "description": "Authentication required or invalid",
      "content": {
        "application/json": {
          "$ref": "#/components/schemas/SecurityError"
        }
      }
    },
    "403": {
      "description": "Authenticated but not permitted",
      "content": {
        "application/json": {
          "$ref": "#/components/schemas/SecurityError"
        }
      }
    },
    "404": {
      "description": "Requested project or build was not found",
      "content": {
        "application/json": {
          "$ref": "#/components/schemas/ApiError"
        }
      }
    },
    "409": {
      "description": "Request conflicts with current project state",
      "content": {
        "application/json": {
          "$ref": "#/components/schemas/ApiError"
        }
      }
    },
    "429": {
      "description": "HTTP rate limit or API-key NCU usage limit exceeded",
      "content": {
        "application/json": {
          "$ref": "#/components/schemas/RateLimitError"
        }
      }
    },
    "500": {
      "description": "Unexpected server error",
      "content": {
        "application/json": {
          "$ref": "#/components/schemas/ApiError"
        }
      }
    }
  }
}

GET /api/v1/projects accepts a JWT or an nfy_ key with project:read. It returns projects visible through workspace membership or direct project grants in descending creation order. Omit workspaceId to use the caller's default workspace, or select another readable workspace explicitly. Ordinary pageable query parameters apply, with a default page size of 20.

Each content-visible item includes its saved defaults, effective role and capabilities, build count, and latest non-draft build summary when available. Restricted projects without a direct grant are not disclosed to ordinary workspace members, and billing-only membership does not expose project content.

http
GET /api/v1/projects
Authorization: Bearer <access token>