Lists reporting periods with processed data available for Get workspace report or List contributor statistics. Set operation to the endpoint you plan to call, then pass a returned period’s from and to to that endpoint.Omit the dates to use the default reporting period, or supply a date range to find historical periods. Results include at most one period per scheduled reporting cycle (sprint), ordered from oldest to newest. A period can cover only part of a sprint.
Discovery reflects currently processed data, not all historical availability or a completeness guarantee. An empty result does not establish zero activity. Windows and results can change as history is processed.
Inclusive lower bound on returned period starts (RFC 3339). Must be on or after 0001-01-16T00:00:00Z. Omit both dates to use the default reporting period. If only from is supplied, the search ends at the server time captured for the first page. See Date selection.
Inclusive upper bound on returned period ends (RFC 3339). Requires from when supplied. The supplied or server-selected end must be after from by at most 366 elapsed 24-hour days, independent of daylight saving time. Returned periods are fully contained within the search bounds.
Opaque nextPageToken from the preceding page. Repeat the workspace, operation and original date inputs, including which dates were omitted. Do not replace omitted dates with the response’s resolved bounds; this invalidates the token. Tokens expire after 24 hours and can be invalidated by key rotation. Invalid, altered, expired or mismatched tokens return 400 without identifying the failed token check; restart without a token.
The latest completed report interval starting at the current scheduled sprint’s start, if it contains working hours; otherwise, the previous full sprint.
from only
From the supplied start through the server time captured for the first page. The start must be in the past and no more than 366 days earlier.
Both from and to
The supplied range. The end must be after the start, with a maximum span of 366 days.
to only
Invalid: returns 400 because from is required.
The default follows the workspace’s timezone and weekly or biweekly reporting schedule, and can cover only part of the current sprint. For CONTRIBUTOR_STATISTICS, the default end can advance to the latest processed effort cutoff if it is later than the report end and no later than the captured server time.The response’s top-level from and to identify the search range, even when no periods match. Use the dates inside periods when calling the selected endpoint. Pagination retains the first page’s resolved search range and evaluation time; pageSize can change between pages, but the original date inputs must stay the same.
WORKSPACE_REPORT prefers the full-sprint report, otherwise the latest available report for that sprint start. A partial report is marked incomplete even for a past sprint. Get workspace report may select a later completed end for the same start.
CONTRIBUTOR_STATISTICS returns sprint windows with gap-free computed coverage for default all effort, including the full preceding comparison. Windows with coverage gaps are omitted. This is guidance, not an exhaustive list of accepted ranges: List contributor statistics also accepts partial or gapped ranges and can process missing historical data.
The current contributor sprint ends at its latest usable computed point within the date filter and is incomplete. A subsequent contributor-statistics request may extend beyond that returned end and the discovery filter’s upper bound as processing progresses.
Contributor windows follow the current workspace schedule. Biweekly alignment, completion and end cutoffs use the first page’s evaluation time throughout pagination. Data and schedules remain live: backfills, updates, deletions and schedule changes can alter later pages. This is not a snapshot export.
At most one window per sprint start, in ascending start order. An empty list is omitted from REST JSON; absence means no matching computed windows, not zero historical activity.
True for the current in-progress sprint or a past report without a full-sprint report. False, omitted in REST JSON, means a finished sprint window—not that all historical events have been processed.
Pass as pageToken with the original filters to continue. Omitted when no following page remains. Follow any returned token even on a short or empty page.
Invalid dates, operation, page size or token return 400. Missing credentials return 401; denied workspace or Productivity access returns 403; an unavailable workspace returns 404. Unavailable discovery returns 503; unexpected failures return 500. See shared errors and limits.Equal or reversed dates return to must be after from. An explicit range longer than 366 days returns to must be at most 366 days after from. With from alone, a start more than 366 days before the captured server time returns from must be within 366 days of now when to is omitted.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Macroscope","colors":{"primary":"#6f16a3","light":"#a26fd9","dark":"#a26fd9"},"logo":{"light":"https://mintcdn.com/macroscope/9iw0Cp-qvEu72Hf8/logo/light.svg?fit=max\u0026auto=format\u0026n=9iw0Cp-qvEu72Hf8\u0026q=85\u0026s=bd1aa63d43927eed5140a1a50d7781fc","dark":"https://mintcdn.com/macroscope/9iw0Cp-qvEu72Hf8/logo/dark.svg?fit=max\u0026auto=format\u0026n=9iw0Cp-qvEu72Hf8\u0026q=85\u0026s=05f568cf92a21f18b8ebaed893c0ff3b"},"favicon":"https://mintcdn.com/macroscope/Ij1wsJ7EUw4zYzA-/images/favicon.svg?fit=max\u0026auto=format\u0026n=Ij1wsJ7EUw4zYzA-\u0026q=85\u0026s=bab7bcd6e8c996d0426a6a241bf3ecbe","navbar":{"links":[{"href":"https://docs.macroscope.com/contact","label":"Contact Us"}],"primary":{"type":"button","label":"Macroscope","href":"https://app.macroscope.com"}},"integrations":{"gtm":{"tagId":"GTM-MFXG74M6"}},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Go to Macroscope","icon":"arrow-right","href":"https://app.macroscope.com/"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"macroscope","hasAudioNarration":false,"actualSubdomain":"macroscope","customDomains":["docs.macroscope.com"],"gitSource":{"type":"github","owner":"prassoai","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae14341c06f9a509a5f3777","collectionId":"d2e45701-45eb-4223-89af-69f0c7eb613b","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae14341c06f9a509a5f3777"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae1899c937c113a46a9ddbc","clientVersion":"0.0.3990","searchFilterCounts":[{"language":"default","tag":"Documentation","count":51},{"language":"default","tag":"Integrations","count":22},{"language":"default","tag":"API","count":19},{"language":"default","tag":"Code Review","count":11},{"language":"default","tag":"Status","count":6},{"language":"default","tag":"Workspace","count":4},{"language":"default","tag":"Resources","count":3},{"language":"default","tag":"Check Run Agents","count":3},{"language":"default","tag":"Pricing","count":3},{"language":"default","tag":"Modifying behavior","count":2}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/endpoint/list-workspace-reporting-periods","slug":"/api-reference/endpoint/list-workspace-reporting-periods","pageMetadata":{"title":"List workspace reporting periods","description":"Find available reporting periods for workspace reports and contributor statistics.","api":"GET https://api.macroscope.com/api/v1/workspaces/{workspaceType}/{workspaceId}/reportingPeriods","playground":"none","href":"/api-reference/endpoint/list-workspace-reporting-periods"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Find available reporting periods for workspace reports and contributor statistics.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Expandable,Heading,Note,ParamField,ResponseField,Table}=_components;if(!Expandable)_missingMdxReference(`Expandable`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!ParamField)_missingMdxReference(`ParamField`,true);if(!ResponseField)_missingMdxReference(`ResponseField`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Lists reporting periods with processed data available for `,_jsx(_components.a,{href:`/api-reference/endpoint/get-workspace-report`,children:`Get workspace report`}),` or `,_jsx(_components.a,{href:`/api-reference/endpoint/list-contributor-statistics`,children:`List contributor statistics`}),`. Set `,_jsx(_components.code,{children:`operation`}),` to the endpoint you plan to call, then pass a returned period’s `,_jsx(_components.code,{children:`from`}),` and `,_jsx(_components.code,{children:`to`}),` to that endpoint.`]}),`\n`,_jsx(_components.p,{children:`Omit the dates to use the default reporting period, or supply a date range to find historical periods. Results include at most one period per scheduled reporting cycle (sprint), ordered from oldest to newest. A period can cover only part of a sprint.`}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`Discovery reflects currently processed data, not all historical availability or a completeness guarantee. An empty result does not establish zero activity. Windows and results can change as history is processed.`})}),`\n`,_jsx(Heading,{level:`2`,id:`authorization`,children:`Authorization`}),`\n`,_jsxs(_components.p,{children:[`Requires workspace Read, plus Productivity when `,_jsx(_components.code,{children:`operation`}),` is `,_jsx(_components.code,{children:`CONTRIBUTOR_STATISTICS`}),`. API keys can access only their bound workspace.`]}),`\n`,_jsx(ParamField,{header:`Authorization`,type:`string`,required:true,id:`param-authorization`,children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`Bearer \u003ckey>`}),`. See `,_jsx(_components.a,{href:`/api#authentication`,children:`Authentication`}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`path-parameters`,children:`Path parameters`}),`\n`,_jsx(ParamField,{path:`workspaceType`,type:`string`,required:true,id:`param-workspace-type`,children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`GITHUB_ORGANIZATION`}),` or `,_jsx(_components.code,{children:`GITHUB_USER`}),`.`]})}),`\n`,_jsx(ParamField,{path:`workspaceId`,type:`string`,required:true,id:`param-workspace-id`,children:_jsx(_components.p,{children:`Numeric GitHub ID of the organization or user, as a string. Must match the key’s workspace.`})}),`\n`,_jsx(Heading,{level:`2`,id:`query-parameters`,children:`Query parameters`}),`\n`,_jsx(ParamField,{query:`operation`,type:`string`,required:true,id:`param-operation`,children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`WORKSPACE_REPORT`}),` or `,_jsx(_components.code,{children:`CONTRIBUTOR_STATISTICS`}),`. There is no default; `,_jsx(_components.code,{children:`REPORTING_PERIOD_OPERATION_UNSPECIFIED`}),` is invalid.`]})}),`\n`,_jsx(ParamField,{query:`from`,type:`string`,id:`param-from`,children:_jsxs(_components.p,{children:[`Inclusive lower bound on returned period starts (RFC 3339). Must be on or after `,_jsx(_components.code,{children:`0001-01-16T00:00:00Z`}),`. Omit both dates to use the default reporting period. If only `,_jsx(_components.code,{children:`from`}),` is supplied, the search ends at the server time captured for the first page. See `,_jsx(_components.a,{href:`#date-selection`,children:`Date selection`}),`.`]})}),`\n`,_jsx(ParamField,{query:`to`,type:`string`,id:`param-to`,children:_jsxs(_components.p,{children:[`Inclusive upper bound on returned period ends (RFC 3339). Requires `,_jsx(_components.code,{children:`from`}),` when supplied. The supplied or server-selected end must be after `,_jsx(_components.code,{children:`from`}),` by at most 366 elapsed 24-hour days, independent of daylight saving time. Returned periods are fully contained within the search bounds.`]})}),`\n`,_jsx(ParamField,{query:`pageSize`,type:`integer`,default:`50`,id:`param-page-size`,children:_jsxs(_components.p,{children:[`Maximum windows per page, 1 to 200. Explicit `,_jsx(_components.code,{children:`0`}),` is invalid. May change between pages.`]})}),`\n`,_jsx(ParamField,{query:`pageToken`,type:`string`,id:`param-page-token`,children:_jsxs(_components.p,{children:[`Opaque `,_jsx(_components.code,{children:`nextPageToken`}),` from the preceding page. Repeat the workspace, operation and original date inputs, including which dates were omitted. Do not replace omitted dates with the response’s resolved bounds; this invalidates the token. Tokens expire after 24 hours and can be invalidated by key rotation. Invalid, altered, expired or mismatched tokens return `,_jsx(_components.code,{children:`400`}),` without identifying the failed token check; restart without a token.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`date-selection`,children:`Date selection`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Date inputs`}),_jsx(_components.th,{children:`Search range`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[`Neither `,_jsx(_components.code,{children:`from`}),` nor `,_jsx(_components.code,{children:`to`})]}),_jsx(_components.td,{children:`The latest completed report interval starting at the current scheduled sprint’s start, if it contains working hours; otherwise, the previous full sprint.`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`from`}),` only`]}),_jsx(_components.td,{children:`From the supplied start through the server time captured for the first page. The start must be in the past and no more than 366 days earlier.`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[`Both `,_jsx(_components.code,{children:`from`}),` and `,_jsx(_components.code,{children:`to`})]}),_jsx(_components.td,{children:`The supplied range. The end must be after the start, with a maximum span of 366 days.`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`to`}),` only`]}),_jsxs(_components.td,{children:[`Invalid: returns `,_jsx(_components.code,{children:`400`}),` because `,_jsx(_components.code,{children:`from`}),` is required.`]})]})]})]}),`\n`,_jsxs(_components.p,{children:[`The default follows the workspace’s timezone and weekly or biweekly reporting schedule, and can cover only part of the current sprint. For `,_jsx(_components.code,{children:`CONTRIBUTOR_STATISTICS`}),`, the default end can advance to the latest processed effort cutoff if it is later than the report end and no later than the captured server time.`]}),`\n`,_jsxs(_components.p,{children:[`The response’s top-level `,_jsx(_components.code,{children:`from`}),` and `,_jsx(_components.code,{children:`to`}),` identify the search range, even when no periods match. Use the dates inside `,_jsx(_components.code,{children:`periods`}),` when calling the selected endpoint. Pagination retains the first page’s resolved search range and evaluation time; `,_jsx(_components.code,{children:`pageSize`}),` can change between pages, but the original date inputs must stay the same.`]}),`\n`,_jsx(Heading,{level:`2`,id:`window-selection`,children:`Window selection`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`WORKSPACE_REPORT`}),` prefers the full-sprint report, otherwise the latest available report for that sprint start. A partial report is marked incomplete even for a past sprint. Get workspace report may select a later completed end for the same start.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`CONTRIBUTOR_STATISTICS`}),` returns sprint windows with gap-free computed coverage for default all effort, including the full preceding comparison. Windows with coverage gaps are omitted. This is guidance, not an exhaustive list of accepted ranges: List contributor statistics also accepts partial or gapped ranges and can process missing historical data.`]}),`\n`,_jsx(_components.li,{children:`The current contributor sprint ends at its latest usable computed point within the date filter and is incomplete. A subsequent contributor-statistics request may extend beyond that returned end and the discovery filter’s upper bound as processing progresses.`}),`\n`,_jsx(_components.li,{children:`Contributor windows follow the current workspace schedule. Biweekly alignment, completion and end cutoffs use the first page’s evaluation time throughout pagination. Data and schedules remain live: backfills, updates, deletions and schedule changes can alter later pages. This is not a snapshot export.`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`response`,children:`Response`}),`\n`,_jsx(ResponseField,{name:`from`,type:`string`,id:`param-from-1`,children:_jsx(_components.p,{children:`Inclusive start of the resolved search range (RFC 3339). Returned even when no periods match; not necessarily the start of a returned period.`})}),`\n`,_jsx(ResponseField,{name:`to`,type:`string`,id:`param-to-1`,children:_jsx(_components.p,{children:`Inclusive end of the resolved search range (RFC 3339). Returned even when no periods match; not necessarily the end of a returned period.`})}),`\n`,_jsxs(ResponseField,{name:`periods`,type:`object[]`,id:`param-periods`,children:[_jsx(_components.p,{children:`At most one window per sprint start, in ascending start order. An empty list is omitted from REST JSON; absence means no matching computed windows, not zero historical activity.`}),_jsxs(Expandable,{title:`properties`,children:[_jsx(ResponseField,{name:`from`,type:`string`,id:`param-from-2`,children:_jsxs(_components.p,{children:[`Start instant to pass as `,_jsx(_components.code,{children:`from`}),` to the selected operation (RFC 3339).`]})}),_jsx(ResponseField,{name:`to`,type:`string`,id:`param-to-2`,children:_jsxs(_components.p,{children:[`End instant to pass as `,_jsx(_components.code,{children:`to`}),` (RFC 3339). A consuming operation may select or extend to a later end as described above.`]})}),_jsx(ResponseField,{name:`timezone`,type:`string`,id:`param-timezone`,children:_jsx(_components.p,{children:`IANA timezone for calendar comparisons with these explicit boundaries. Calendar durations can vary across daylight saving transitions.`})}),_jsx(ResponseField,{name:`incomplete`,type:`boolean`,id:`param-incomplete`,children:_jsx(_components.p,{children:`True for the current in-progress sprint or a past report without a full-sprint report. False, omitted in REST JSON, means a finished sprint window—not that all historical events have been processed.`})})]})]}),`\n`,_jsx(ResponseField,{name:`nextPageToken`,type:`string`,id:`param-next-page-token`,children:_jsxs(_components.p,{children:[`Pass as `,_jsx(_components.code,{children:`pageToken`}),` with the original filters to continue. Omitted when no following page remains. Follow any returned token even on a short or empty page.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`errors`,children:`Errors`}),`\n`,_jsxs(_components.p,{children:[`Invalid dates, operation, page size or token return `,_jsx(_components.code,{children:`400`}),`. Missing credentials return `,_jsx(_components.code,{children:`401`}),`; denied workspace or Productivity access returns `,_jsx(_components.code,{children:`403`}),`; an unavailable workspace returns `,_jsx(_components.code,{children:`404`}),`. Unavailable discovery returns `,_jsx(_components.code,{children:`503`}),`; unexpected failures return `,_jsx(_components.code,{children:`500`}),`. See `,_jsx(_components.a,{href:`/api#errors`,children:`shared errors and limits`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Equal or reversed dates return `,_jsx(_components.code,{children:`to must be after from`}),`. An explicit range longer than 366 days returns `,_jsx(_components.code,{children:`to must be at most 366 days after from`}),`. With `,_jsx(_components.code,{children:`from`}),` alone, a start more than 366 days before the captured server time returns `,_jsx(_components.code,{children:`from must be within 366 days of now when to is omitted`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"List workspace reporting periods","description":"Find available reporting periods for workspace reports and contributor statistics.","api":"GET https://api.macroscope.com/api/v1/workspaces/{workspaceType}/{workspaceId}/reportingPeriods","playground":"none","href":"/api-reference/endpoint/list-workspace-reporting-periods"}}},"mdxSourceWithNoJs":null,"noJsSplices":[[213,231,"pre:`pre`,span:`span`,tbody:`tbody`,td:`"],[319,405,"CodeBlock,Expandable,Heading,Note,ParamField,RequestExample,ResponseExample,ResponseField,Table}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Expandable)_mi"],[595,607,"questExample)_missingMdxReference(`RequestExample`,true);if(!ResponseExample)_missingMdxReference(`ResponseExample`,true);if(!ResponseField)"],[12727,13155,",`\n`,_jsxs(RequestExample,{children:[_jsx(CodeBlock,{filename:`Explicit date range`,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://api.macroscope.com/api/v1/workspaces/GITHUB_ORGANIZATION/12345678/reportingPeriods?operation=WORKSPACE_REPORT\u0026from=2026-09-01T00%3A00%3A00Z\u0026to=2026-10-01T00%3A00%3A00Z\u0026pageSize=50\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$MACROSCOPE_API_KEY`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`Default period`,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://api.macroscope.com/api/v1/workspaces/GITHUB_ORGANIZATION/12345678/reportingPeriods?operation=WORKSPACE_REPORT\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$MACROSCOPE_API_KEY`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`From a start date`,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://api.macroscope.com/api/v1/workspaces/GITHUB_ORGANIZATION/12345678/reportingPeriods?operation=CONTRIBUTOR_STATISTICS\u0026from=2026-10-01T00%3A00%3A00Z\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$MACROSCOPE_API_KEY`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`]})})})]}),`\n`,_jsx(ResponseExample,{children:_jsx(CodeBlock,{filename:`200`,numberOfLines:`11`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`11`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"from\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-09-01T00:00:00Z\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"to\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-10-01T00:00:00Z\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"periods\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"from\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-09-07T00:00:00Z\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"to\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-09-14T00:00:00Z\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"timezone\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Etc/UTC\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}"]]},"mdxExtracts":{"tableOfContents":[{"title":"Authorization","slug":"authorization","depth":2,"children":[]},{"title":"Path parameters","slug":"path-parameters","depth":2,"children":[]},{"title":"Query parameters","slug":"query-parameters","depth":2,"children":[]},{"title":"Date selection","slug":"date-selection","depth":2,"children":[]},{"title":"Window selection","slug":"window-selection","depth":2,"children":[]},{"title":"Response","slug":"response","depth":2,"children":[]},{"title":"Errors","slug":"errors","depth":2,"children":[]}],"codeExamples":{"request":{"type":"RequestExample","children":[{"filename":"Explicit date range","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"shellscript\">\u003ccode language=\"shellscript\" numberOfLines=\"2\">\u003cspan class=\"line\">\u003cspan style=\"color:#953800;--shiki-dark:#DCDCAA\">curl\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"https://api.macroscope.com/api/v1/workspaces/GITHUB_ORGANIZATION/12345678/reportingPeriods?operation=WORKSPACE_REPORT\u0026#x26;from=2026-09-01T00%3A00%3A00Z\u0026#x26;to=2026-10-01T00%3A00%3A00Z\u0026#x26;pageSize=50\"\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D7BA7D\"> \\\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> -H\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"Authorization: Bearer \u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#9CDCFE\">$MACROSCOPE_API_KEY\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"},{"filename":"Default period","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"shellscript\">\u003ccode language=\"shellscript\" numberOfLines=\"2\">\u003cspan class=\"line\">\u003cspan style=\"color:#953800;--shiki-dark:#DCDCAA\">curl\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"https://api.macroscope.com/api/v1/workspaces/GITHUB_ORGANIZATION/12345678/reportingPeriods?operation=WORKSPACE_REPORT\"\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D7BA7D\"> \\\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> -H\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"Authorization: Bearer \u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#9CDCFE\">$MACROSCOPE_API_KEY\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"},{"filename":"From a start date","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"shellscript\">\u003ccode language=\"shellscript\" numberOfLines=\"2\">\u003cspan class=\"line\">\u003cspan style=\"color:#953800;--shiki-dark:#DCDCAA\">curl\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"https://api.macroscope.com/api/v1/workspaces/GITHUB_ORGANIZATION/12345678/reportingPeriods?operation=CONTRIBUTOR_STATISTICS\u0026#x26;from=2026-10-01T00%3A00%3A00Z\"\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D7BA7D\"> \\\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> -H\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"Authorization: Bearer \u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#9CDCFE\">$MACROSCOPE_API_KEY\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"}],"attributes":[]},"response":{"type":"ResponseExample","children":[{"filename":"200","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"json\">\u003ccode language=\"json\" numberOfLines=\"11\">\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">{\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"from\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"2026-09-01T00:00:00Z\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"to\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"2026-10-01T00:00:00Z\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"periods\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: [\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"from\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"2026-09-07T00:00:00Z\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"to\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"2026-09-14T00:00:00Z\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"timezone\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"Etc/UTC\"\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> ]\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">}\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"}],"attributes":[]}},"endpoint":{"title":"List workspace reporting periods","path":"/api/v1/workspaces/{workspaceType}/{workspaceId}/reportingPeriods","servers":[{"url":"https://api.macroscope.com"}],"method":"get","request":{"security":[],"parameters":{"query":{"operation":{"schema":[{"type":"string","description":"`WORKSPACE_REPORT` or `CONTRIBUTOR_STATISTICS` . There is no default; `REPORTING_PERIOD_OPERATION_UNSPECIFIED` is invalid.","required":true}]},"from":{"schema":[{"type":"string","description":"Inclusive lower bound on returned period starts (RFC 3339). Must be on or after `0001-01-16T00:00:00Z` . Omit both dates to use the default reporting period. If only `from` is supplied, the search ends at the server time captured for the first page. See Date selection ."}]},"to":{"schema":[{"type":"string","description":"Inclusive upper bound on returned period ends (RFC 3339). Requires `from` when supplied. The supplied or server-selected end must be after `from` by at most 366 elapsed 24-hour days, independent of daylight saving time. Returned periods are fully contained within the search bounds."}]},"pageSize":{"schema":[{"type":"integer","description":"Maximum windows per page, 1 to 200. Explicit `0` is invalid. May change between pages."}]},"pageToken":{"schema":[{"type":"string","description":"Opaque `nextPageToken` from the preceding page. Repeat the workspace, operation and original date inputs, including which dates were omitted. Do not replace omitted dates with the response’s resolved bounds; this invalidates the token. Tokens expire after 24 hours and can be invalidated by key rotation. Invalid, altered, expired or mismatched tokens return `400` without identifying the failed token check; restart without a token."}]}},"header":{"Authorization":{"schema":[{"type":"string","description":"`Bearer \u003ckey>` . See Authentication .","required":true}]}},"cookie":{},"path":{"workspaceType":{"schema":[{"type":"string","description":"`GITHUB_ORGANIZATION` or `GITHUB_USER` .","required":true}]},"workspaceId":{"schema":[{"type":"string","description":"Numeric GitHub ID of the organization or user, as a string. Must match the key’s workspace.","required":true}]}}},"body":{}},"response":{"200":{"application/json":{"schemaArray":[{"type":"object","properties":{"from":[{"type":"string","description":"Inclusive start of the resolved search range (RFC 3339). Returned even when no periods match; not necessarily the start of a returned period."}],"to":[{"type":"string","description":"Inclusive end of the resolved search range (RFC 3339). Returned even when no periods match; not necessarily the end of a returned period."}],"periods":[{"type":"array","items":[{"type":"object","properties":{"from":[{"type":"string","description":"Start instant to pass as `from` to the selected operation (RFC 3339)."}],"to":[{"type":"string","description":"End instant to pass as `to` (RFC 3339). A consuming operation may select or extend to a later end as described above."}],"timezone":[{"type":"string","description":"IANA timezone for calendar comparisons with these explicit boundaries. Calendar durations can vary across daylight saving transitions."}],"incomplete":[{"type":"boolean","description":"True for the current in-progress sprint or a past report without a full-sprint report. False, omitted in REST JSON, means a finished sprint window—not that all historical events have been processed."}]}}],"description":"At most one window per sprint start, in ascending start order. An empty list is omitted from REST JSON; absence means no matching computed windows, not zero historical activity."}],"nextPageToken":[{"type":"string","description":"Pass as `pageToken` with the original filters to continue. Omitted when no following page remains. Follow any returned token even on a short or empty page."}]}}],"examples":{"example":{"value":{"from":"\u003cstring>","to":"\u003cstring>","periods":[{"from":"\u003cstring>","to":"\u003cstring>","timezone":"\u003cstring>","incomplete":true}],"nextPageToken":"\u003cstring>"}}}}}},"deprecated":false}},"jsLinks":[],"subdomain":"macroscope","siteName":"Macroscope","title":"List workspace reporting periods - Macroscope","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-28T05:35:33.097Z","originalFileLocation":"api-reference/endpoint/list-workspace-reporting-periods.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Find available reporting periods for workspace reports and contributor statistics.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Macroscope\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/macroscope/9sYBVwJjOb2ffPKd/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/macroscope/9sYBVwJjOb2ffPKd/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/macroscope/9sYBVwJjOb2ffPKd/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/macroscope/9sYBVwJjOb2ffPKd/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/macroscope/9sYBVwJjOb2ffPKd/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/macroscope/9sYBVwJjOb2ffPKd/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/macroscope/9sYBVwJjOb2ffPKd/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/macroscope/9sYBVwJjOb2ffPKd/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/macroscope/9sYBVwJjOb2ffPKd/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"List workspace reporting periods - Macroscope\">\u003cmeta data-mint-head property=\"og:description\" content=\"Find available reporting periods for workspace reports and contributor statistics.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Macroscope\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.macroscope.com/api-reference/endpoint/list-workspace-reporting-periods\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://macroscope.mintlify.app/_mintlify/api/og/v2?division=API\u0026amp;title=List+workspace+reporting+periods\u0026amp;description=Find+available+reporting+periods+for+workspace+reports+and+contributor+statistics.\u0026amp;theme=b088c8c661c8523bb64e06f0\u0026amp;signature=7c02713b0e253488cf5a4f0bf2bc410f0fd13e1f49d534ce68ad233755559513\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"List workspace reporting periods - Macroscope\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Find available reporting periods for workspace reports and contributor statistics.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://macroscope.mintlify.app/_mintlify/api/og/v2?division=API\u0026amp;title=List+workspace+reporting+periods\u0026amp;description=Find+available+reporting+periods+for+workspace+reports+and+contributor+statistics.\u0026amp;theme=b088c8c661c8523bb64e06f0\u0026amp;signature=7c02713b0e253488cf5a4f0bf2bc410f0fd13e1f49d534ce68ad233755559513\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/macroscope/9sYBVwJjOb2ffPKd/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Macroscope\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#6f16a3\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.macroscope.com/api-reference/endpoint/list-workspace-reporting-periods\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/endpoint/list-workspace-reporting-periods.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.macroscope.com/#organization\",\"name\":\"Macroscope\",\"url\":\"https://docs.macroscope.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/macroscope/9iw0Cp-qvEu72Hf8/logo/light.svg?fit=max\u0026auto=format\u0026n=9iw0Cp-qvEu72Hf8\u0026q=85\u0026s=bd1aa63d43927eed5140a1a50d7781fc\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.macroscope.com#website\",\"name\":\"Macroscope\",\"url\":\"https://docs.macroscope.com\",\"publisher\":{\"@id\":\"https://docs.macroscope.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.macroscope.com/api-reference/endpoint/list-workspace-reporting-periods#webpage\",\"url\":\"https://docs.macroscope.com/api-reference/endpoint/list-workspace-reporting-periods\",\"name\":\"List workspace reporting periods\",\"description\":\"Find available reporting periods for workspace reports and contributor statistics.\",\"dateModified\":\"2026-10-28T05:35:33.097Z\",\"isPartOf\":{\"@id\":\"https://docs.macroscope.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.macroscope.com/api-reference/endpoint/list-workspace-reporting-periods#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.macroscope.com/api-reference/endpoint/list-workspace-reporting-periods#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Integrations\",\"item\":\"https://docs.macroscope.com/webhooks\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"API\",\"item\":\"https://docs.macroscope.com/api\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"List workspace reporting periods\",\"item\":\"https://docs.macroscope.com/api-reference/endpoint/list-workspace-reporting-periods\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.macroscope.com/api-reference/endpoint/list-workspace-reporting-periods#apireference\",\"headline\":\"List workspace reporting periods\",\"name\":\"List workspace reporting periods\",\"description\":\"Find available reporting periods for workspace reports and contributor statistics.\",\"url\":\"https://docs.macroscope.com/api-reference/endpoint/list-workspace-reporting-periods\",\"mainEntityOfPage\":{\"@id\":\"https://docs.macroscope.com/api-reference/endpoint/list-workspace-reporting-periods#webpage\"},\"dateModified\":\"2026-10-28T05:35:33.097Z\",\"publisher\":{\"@id\":\"https://docs.macroscope.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.macroscope.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Macroscope\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Macroscope","nav":{"global":{"anchors":[{"anchor":"Go to Macroscope","icon":"arrow-right","href":"https://app.macroscope.com/"}]},"anchors":[{"anchor":"Documentation","icon":"book-open","pages":[{"title":"Overview","href":"/welcome"},{"title":"Setup","href":"/setup-instructions"},{"group":"Pricing","pages":[{"title":"Pricing overview","href":"/pricing"},{"title":"Models and token rates","href":"/model-pricing"},{"title":"Spend controls","href":"/spend-limits"}]},{"group":"Code Review","pages":[{"title":"Correctness","href":"/correctness"},{"title":"Detection mode","href":"/code-review/detection-mode"},{"group":"Modifying behavior","root":{"title":"Modifying behavior","href":"/code-review/macroscope"},"pages":[{"title":"Custom instructions","href":"/custom-instructions"},{"title":"Ignore files","href":"/code-review/ignore-files"}]},{"group":"Check Run Agents","root":{"title":"Check Run Agents","href":"/check-run-agents"},"pages":[{"title":"Configuration","href":"/check-run-agents/configuration"},{"title":"Instructions and context","href":"/check-run-agents/instructions"},{"title":"Triggers and skips","href":"/check-run-agents/triggers"}]},{"title":"Approvability","href":"/approvability"},{"title":"CLI","href":"/cli"},{"title":"PR summaries","href":"/pull-request-descriptions"},{"title":"Fix it for me","href":"/fix-it-for-me"}]},{"group":"Status","pages":[{"title":"Status","href":"/status"},{"title":"Areas","href":"/areas"},{"title":"Productivity","href":"/productivity"},{"title":"Slack subscriptions","href":"/slack-subscriptions"},{"title":"Ask Macroscope","href":"/agent"},{"title":"Macros","href":"/macros"}]},{"group":"Integrations","pages":[{"title":"Webhooks","href":"/webhooks"},{"title":"Connected tools","href":"/integrations"},{"group":"API","root":{"title":"API","href":"/api"},"pages":[{"title":"Get workspace","api":"GET https://api.macroscope.com/api/v1/workspaces/{workspaceType}/{workspaceId}","playground":"none","href":"/api-reference/endpoint/get-workspace"},{"title":"List areas","api":"GET https://api.macroscope.com/api/v1/workspaces/{workspaceType}/{workspaceId}/areas","playground":"none","href":"/api-reference/endpoint/list-areas"},{"title":"Get workspace report","api":"GET https://api.macroscope.com/api/v1/workspaces/{workspaceType}/{workspaceId}/workspaceReport","playground":"none","href":"/api-reference/endpoint/get-workspace-report"},{"title":"Get sprint elapsed hours","api":"GET https://api.macroscope.com/api/v1/workspaces/{workspaceType}/{workspaceId}/sprintElapsedHours","playground":"none","href":"/api-reference/endpoint/get-sprint-elapsed-hours"},{"title":"List contributor statistics","api":"GET https://api.macroscope.com/api/v1/workspaces/{workspaceType}/{workspaceId}/contributorStatistics","playground":"none","href":"/api-reference/endpoint/list-contributor-statistics"},{"title":"List team memberships","api":"GET https://api.macroscope.com/api/v1/workspaces/{workspaceType}/{workspaceId}/teams/memberships","playground":"none","href":"/api-reference/endpoint/list-team-memberships"},{"title":"List team statistics","api":"GET https://api.macroscope.com/api/v1/workspaces/{workspaceType}/{workspaceId}/teamStatistics","playground":"none","href":"/api-reference/endpoint/list-team-statistics"},{"title":"Get coding time statistics","api":"GET https://api.macroscope.com/api/v1/workspaces/{workspaceType}/{workspaceId}/codingTimeStatistics","playground":"none","href":"/api-reference/endpoint/get-coding-time-statistics"},{"title":"Query code review statistics","api":"GET https://api.macroscope.com/api/v1/workspaces/{workspaceType}/{workspaceId}/code-review-statistics","playground":"none","href":"/api-reference/endpoint/query-code-review-statistics"},{"title":"List code review comments","api":"GET https://api.macroscope.com/api/v1/workspaces/{workspaceType}/{workspaceId}/code-review-comments","playground":"none","href":"/api-reference/endpoint/list-code-review-comments"},{"title":"List commits","api":"GET https://api.macroscope.com/api/v1/workspaces/{workspaceType}/{workspaceId}/commits","playground":"none","href":"/api-reference/endpoint/list-commits"},{"title":"Get billing status","api":"GET https://api.macroscope.com/api/v1/workspaces/{workspaceType}/{workspaceId}/billing/status","playground":"none","href":"/api-reference/endpoint/get-billing-status"},{"title":"Get billing balance","api":"GET https://api.macroscope.com/api/v1/workspaces/{workspaceType}/{workspaceId}/billing/balance","playground":"none","href":"/api-reference/endpoint/get-billing-balance"},{"title":"Get billing controls","api":"GET https://api.macroscope.com/api/v1/workspaces/{workspaceType}/{workspaceId}/billing/controls","playground":"none","href":"/api-reference/endpoint/get-billing-controls"},{"title":"List billing meter summaries","api":"GET https://api.macroscope.com/api/v1/workspaces/{workspaceType}/{workspaceId}/billing/meterSummaries","playground":"none","href":"/api-reference/endpoint/list-billing-meter-summaries"},{"title":"List daily billing usage","api":"GET https://api.macroscope.com/api/v1/workspaces/{workspaceType}/{workspaceId}/billing/dailyUsage","playground":"none","href":"/api-reference/endpoint/list-daily-billing-usage"},{"title":"List agent credit usage","description":"Recorded agent credit usage with attribution and nominal cost, newest first.","api":"GET https://api.macroscope.com/api/v1/workspaces/{workspaceType}/{workspaceId}/billing/agentCreditUsage","playground":"none","href":"/api-reference/endpoint/list-agent-credit-usage"},{"title":"List workspace reporting periods","api":"GET https://api.macroscope.com/api/v1/workspaces/{workspaceType}/{workspaceId}/reportingPeriods","playground":"none","href":"/api-reference/endpoint/list-workspace-reporting-periods"},{"title":"List check-run agent billing summaries","description":"Credit usage grouped by repository and check-run agent for a time interval.","api":"GET https://api.macroscope.com/api/v1/workspaces/{workspaceType}/{workspaceId}/billing/checkRunAgentSummaries","playground":"none","href":"/api-reference/endpoint/list-check-run-agent-billing-summaries"}]},{"group":"S3 exports","root":{"title":"S3 exports","href":"/s3-exports"},"pages":[{"title":"Export schema","href":"/s3-exports/format"}]}]},{"group":"Workspace","pages":[{"title":"Workspace settings","href":"/settings"},{"title":"Enterprise Managed Users","href":"/github-enterprise-login"},{"title":"GitHub IP allow lists","href":"/github-ip-allow-list"},{"title":"Cancellation","href":"/cancel-subscription"}]},{"group":"Resources","pages":[{"title":"Murmur","href":"/murmur"},{"title":"Support","href":"/contact"},{"title":"Release notes","href":"/changelog"}]}]}]},"title":"List workspace reporting periods - Macroscope","buildId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","deploymentId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","dynamics":["c2aa737661","2b790eda92","b0f84f53ff"],"chunks":["OpenApiReferenceProvider-WRhTSUDL.js","utils-ChMov4Kr.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-_REmC2bI.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Bp6nVRCu.js","snippetPresets-DZadmXoU.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CY2WdoTl.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-DwYG-Q4l.js","shallow-BXQIGwv4.js","getApiPlaygroundDisplay-CK5nK5B9.js","CodeSnippet-TH4a2aGW.js","CodeSnippets-DwsQiOFS.js","Page-R3M_BF4L.js","getPastedJson-DD7kUzi_.js","icon-holE3QoJ.js","MethodPill-DUW0T8us.js","DuplicateIcon-CI_p4be-.js","createIcon-BdbRvavb.js","DynamicMarkdown-DN96a4Ur.js","SectionHeading-SCu36A9d.js","axios-vUo_bRtp.js"]}