---
updatedAt: 2026-05-26T13:50:15.000Z
agentTools:
  projectIndex: https://docs.getgreenspark.com/llms.txt
---

# Fetch a Report Page

Deprecated — returns 404 at runtime. Use v2 fetchRawReportV2 (GET /v2/reports) with cursor pagination.

# OpenAPI definition

```json
{
  "openapi": "3.0.0",
  "paths": {
    "/v1/reports/{reportId}/{cursor}": {
      "get": {
        "deprecated": true,
        "description": "Deprecated — returns 404 at runtime. Use v2 fetchRawReportV2 (GET /v2/reports) with cursor pagination.",
        "operationId": "fetchAReportPage",
        "parameters": [
          {
            "name": "reportId",
            "required": true,
            "in": "path",
            "description": "The id of a previously generated report.",
            "schema": {
              "example": "671766d9-65d5-4e5f-aa75-00782d3b7f9e",
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "required": true,
            "in": "path",
            "description": "The cursor identifies the next page within a report.",
            "schema": {
              "example": "BHI6BU2ZQMAQAAASA4EAAEEAQCAAKGQEBBSBAZBAWCXBK===",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The report page has been successfully queried.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RawReport"
                }
              }
            }
          },
          "400": {
            "description": "Bad request."
          },
          "401": {
            "description": "Provide a valid x-api-key header. Keys are created in the Greenspark dashboard after registration (separate key per environment)."
          },
          "403": {
            "description": "Requires premiumBusiness, premiumBusinessYearly, or enterpriseBusiness subscription."
          },
          "404": {
            "description": "Not found."
          },
          "422": {
            "description": "422 Unprocessable Entity when API quota is exhausted (MAX_API_CALLS_REACHED)."
          }
        },
        "security": [
          {
            "access-key": []
          }
        ],
        "summary": "Fetch a Report Page",
        "tags": [
          "Reports"
        ]
      }
    }
  },
  "info": {
    "title": "Reporting",
    "description": "Query impact and spend reports. Use GET /v2/reports (fetchRawReportV2) as the canonical raw export; v1 report routes are deprecated.\n\nAuthentication: `x-api-key` header (required). Create keys in the Greenspark dashboard after registration — separate key per environment.\n\nEnvironments: `https://api.getgreenspark.com` (production key) or `https://sandbox.getgreenspark.com` (sandbox key). Always match host and key.\n\nReadMe MCP (v1): `https://greenspark.readme.io/mcp` — read-only live calls on enabled GET routes. POST/PUT/DELETE are documented for integration building; use `get-endpoint` for schemas, not `execute-request` for writes.\n\nAPI keys: Accepts all standard API key types — individual routes may restrict allowed types.",
    "version": "v1",
    "contact": {}
  },
  "servers": [
    {
      "url": "https://api.getgreenspark.com",
      "description": "Production environment — use a production API key with this host."
    },
    {
      "url": "https://sandbox.getgreenspark.com",
      "description": "Sandbox environment — use a sandbox API key with this host."
    },
    {
      "url": "https://demo-api.getgreenspark.com",
      "description": "Demo environment — use a demo API key with this host."
    }
  ],
  "components": {
    "securitySchemes": {
      "access-key": {
        "type": "apiKey",
        "in": "header",
        "name": "x-api-key"
      }
    },
    "schemas": {
      "Metadata": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "description": "Minimum 1, maximum 40 characters.",
            "example": "customerId"
          },
          "value": {
            "type": "string",
            "description": "Minimum 1, maximum 100 characters.",
            "example": "743ce227-22ef-4c6e-9c06-725f97b99690"
          }
        },
        "required": [
          "key",
          "value"
        ]
      },
      "ImpactPurchase": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "trees",
              "carbon",
              "plastic",
              "kelp",
              "water",
              "bees"
            ],
            "description": "Type of the impact.",
            "example": "trees"
          },
          "projectId": {
            "type": "string",
            "description": "The id of the project.",
            "example": "34d41293-6b84-40e7-9744-122e301590a2"
          },
          "amount": {
            "type": "number",
            "description": "Amount means number of trees, number of plastic bottles, kg of CO2.",
            "example": 5
          }
        },
        "required": [
          "type",
          "amount"
        ]
      },
      "RawReportRow": {
        "type": "object",
        "properties": {
          "createdAt": {
            "type": "string",
            "example": "2022-09-09 09:12:54.162+00",
            "description": "Creation date of the impact."
          },
          "totalPrice": {
            "type": "number",
            "example": 1,
            "description": "Total amount of money spent on the impact."
          },
          "currency": {
            "type": "string",
            "example": "dollar",
            "description": "The currency of the spent money on the impact."
          },
          "sourceName": {
            "type": "string",
            "example": "source1",
            "description": "The name of the source associated with the impact."
          },
          "sourceId": {
            "type": "string",
            "example": "631b035dcd13c4ad66c6d496",
            "description": "The id of the source associated with the impact."
          },
          "triggerName": {
            "type": "string",
            "example": "trigger1",
            "description": "The name of the trigger associated with the impact."
          },
          "triggerId": {
            "type": "string",
            "example": "631b035dcd13c4ad66c6d497",
            "description": "The id of the trigger associated with the impact."
          },
          "impactPurchases": {
            "description": "The impactPurchases array contains your spending on a specific purpose.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ImpactPurchase"
            }
          },
          "metadata": {
            "description": "In the metadata array you can store up to 10 key-value pairs. You can use them to associate arbitrary data with your impact.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Metadata"
            }
          }
        },
        "required": [
          "createdAt",
          "totalPrice",
          "currency",
          "sourceName",
          "sourceId",
          "triggerName",
          "triggerId",
          "impactPurchases",
          "metadata"
        ]
      },
      "RawReport": {
        "type": "object",
        "properties": {
          "rows": {
            "example": [
              {
                "createdAt": "2022-09-09 09:12:54.162+00",
                "totalPrice": 1,
                "currency": "dollar",
                "sourceName": "source1",
                "sourceId": "631b035dcd13c4ad66c6d496",
                "triggerName": "trigger1",
                "triggerId": "631b035dcd13c4ad66c6d497",
                "impactPurchases": [
                  {
                    "type": "trees",
                    "amount": 5,
                    "price": 1
                  },
                  {
                    "type": "carbon",
                    "amount": 5,
                    "price": 0.05
                  }
                ],
                "metadata": [
                  {
                    "key": "key1",
                    "value": "value1"
                  },
                  {
                    "key": "key2",
                    "value": "value2"
                  }
                ]
              },
              {
                "createdAt": "2022-09-09 09:05:07.863+00",
                "totalPrice": 0.05,
                "currency": "dollar",
                "sourceName": "API",
                "sourceId": null,
                "triggerName": "TAILORED_IMPACT",
                "triggerId": null,
                "impactPurchases": [
                  {
                    "type": "carbon",
                    "amount": 5,
                    "price": 0.05
                  }
                ],
                "metadata": [
                  {
                    "key": "key1",
                    "value": "value1"
                  },
                  {
                    "key": "key2",
                    "value": "value2"
                  }
                ]
              }
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RawReportRow"
            }
          },
          "totalRows": {
            "type": "number",
            "example": 42,
            "description": "Number of rows in the report."
          },
          "maxResults": {
            "type": "number",
            "example": 100,
            "description": "Maximum number of rows per page."
          },
          "cursor": {
            "type": "string",
            "example": "BG6JLNBVQMAQAAASA4EAAEEAQCAAKGQEBBSBAZBAWCXBK===",
            "description": "If the result set spread through multiple pages, you can fetch the next page with it. If null, it indicates that no pagination needed."
          },
          "reportId": {
            "type": "string",
            "example": "1aae6329-1417-48c1-96a5-a6d21c0f1a57",
            "description": "The id of your generated report. If the result set spread through multiple pages, you can refer to your report with it while pagination."
          }
        },
        "required": [
          "rows",
          "totalRows",
          "maxResults",
          "cursor",
          "reportId"
        ]
      }
    }
  }
}
```