---
title: "Publish report"
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.sureshake.com/llms.txt
> Use this file to discover all available pages before exploring further.

Path: Sureshake API › reports

`POST /v2/reports/{id}/publish`

## Path parameters

- `id` (`report-publish.path.id`; string, required)
  - format `uuid`

## Request body

- `isPublic` (`report-publish.isPublic`; boolean, optional)
  - default `true`
- `tags` (`report-publish.tags`; array<string>, optional)
  - format `uuid`; default `[]`

## Example request

```json
{
  "isPublic": true,
  "tags": []
}
```

## Code samples

### cURL

```bash
curl --request POST \
  --url 'https://api.sureshake.com/v2/reports/<id>/publish' \
  --header 'Content-Type: application/json' \
  --data '
{
  "isPublic": true,
  "tags": []
}
'
```

### TypeScript

```typescript
const url = 'https://api.sureshake.com/v2/reports/<id>/publish';
const options = {
  method: 'POST',
  headers: {'Content-Type': 'application/json'},
  body: JSON.stringify({isPublic: true, tags: []})
};

fetch(url, options)
  .then(res => res.json())
  .then(json => console.log(json))
  .catch(err => console.error(err));
```

### Python

```python
import requests

url = "https://api.sureshake.com/v2/reports/<id>/publish"

payload = {
    "isPublic": True,
    "tags": []
}
headers = {"Content-Type": "application/json"}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
```

## Responses

### 200

Default Response

#### Example

```json
{
  "data": {
    "success": true,
    "report": {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "title": "string",
      "description": "string",
      "report_type": "forecast",
      "status": "draft",
      "is_public": true,
      "owner_id": "string",
      "entity_id": "8161163a-f227-466f-bc01-090a01e80165",
      "linked_report_id": "76246679-3292-4dc2-907d-bbc7b92e9b96",
      "fiscal_period_start": "2019-08-24T14:15:22Z",
      "fiscal_period_end": "2019-08-24T14:15:22Z",
      "ipfs_hash": "string",
      "ipfs_url": "string",
      "document_key": "string",
      "document_type": "string",
      "nft_address": "string",
      "nft_token_id": "string",
      "transaction_hash": "string",
      "data": {
        "property1": null,
        "property2": null
      },
      "created_at": "2019-08-24T14:15:22Z",
      "updated_at": "2019-08-24T14:15:22Z",
      "view_delivery": {
        "status": "ready",
        "receiptId": "4937ce52-e283-4321-b00f-c29b6dd5d0e9",
        "source": "share",
        "expiresAt": "2019-08-24T14:15:22Z",
        "policyVersion": "report-view-delivery-v2"
      },
      "collection_ids": [
        "497f6eca-6276-4993-bfeb-53cbbbba6f08"
      ],
      "tags": [
        {
          "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
          "name": "string",
          "visibility": "private"
        }
      ]
    }
  },
  "meta": {
    "timestamp": "2019-08-24T14:15:22Z"
  }
}
```

- `data` (`report-publish.response.200.data`; object, required)
  - `success` (`report-publish.response.200.data.success`; boolean, required)
  - `report` (`report-publish.response.200.data.report`; object, required)
    - `id` (`report-publish.response.200.data.report.id`; string, required)
      - format `uuid`
    - `title` (`report-publish.response.200.data.report.title`; string, required)
    - `report_type` (`report-publish.response.200.data.report.report_type`; string, required)
      - one of `"forecast"`, `"projection"`, `"actual"`, `"formal_report"`, `"periodic_report"`, `"annual_report"`, `"quarterly_report"`, `"audit_report"`, `"compliance_report"`, `"clinical_trial"`, `"supply_chain"`, `"legal_document"`, `"government_filing"`, `"esg_report"`, `"kyc_resume"`, `"kyc_identity"`, `"kyc_address"`, `"kyc_selfie"`, `"kyc_complete"`, `"netsuite_ar_aging"`, `"netsuite_ap_aging"`, `"netsuite_inventory_aging"`, `"netsuite_customer_concentration"`, `"netsuite_vendor_concentration"`, `"netsuite_inventory_turnover"`, `"netsuite_financial_condition"`, `"netsuite_sales_bookings"`, `"netsuite_income_statement"`, `"netsuite_balance_sheet"`, `"netsuite_trial_balance"`, `"netsuite_cash_flows"`, `"netsuite_forecast"`, `"brokerage_statement"`, `"investor_report"`
    - `status` (`report-publish.response.200.data.report.status`; string, required)
      - one of `"draft"`, `"uploading"`, `"attributes_added"`, `"ipfs_generated"`, `"submitted"`, `"verified"`, `"minted"`, `"archived"`
    - `is_public` (`report-publish.response.200.data.report.is_public`; boolean, required)
    - `owner_id` (`report-publish.response.200.data.report.owner_id`; string, required)
    - `created_at` (`report-publish.response.200.data.report.created_at`; string, required)
      - format `date-time`
    - `updated_at` (`report-publish.response.200.data.report.updated_at`; string, required)
      - format `date-time`
    - `description` (`report-publish.response.200.data.report.description`; string, optional, nullable)
    - `entity_id` (`report-publish.response.200.data.report.entity_id`; string, optional, nullable)
      - format `uuid`
    - `linked_report_id` (`report-publish.response.200.data.report.linked_report_id`; string, optional, nullable)
      - format `uuid`
    - `fiscal_period_start` (`report-publish.response.200.data.report.fiscal_period_start`; string, optional, nullable)
      - format `date-time`
    - `fiscal_period_end` (`report-publish.response.200.data.report.fiscal_period_end`; string, optional, nullable)
      - format `date-time`
    - `ipfs_hash` (`report-publish.response.200.data.report.ipfs_hash`; string, optional, nullable)
    - `ipfs_url` (`report-publish.response.200.data.report.ipfs_url`; string, optional, nullable)
    - `document_key` (`report-publish.response.200.data.report.document_key`; string, optional, nullable)
    - `document_type` (`report-publish.response.200.data.report.document_type`; string, optional, nullable)
    - `nft_address` (`report-publish.response.200.data.report.nft_address`; string, optional, nullable)
    - `nft_token_id` (`report-publish.response.200.data.report.nft_token_id`; string, optional, nullable)
    - `transaction_hash` (`report-publish.response.200.data.report.transaction_hash`; string, optional, nullable)
    - `data` (`report-publish.response.200.data.report.data`; map<unknown>, optional, nullable)
    - `view_delivery` (`report-publish.response.200.data.report.view_delivery`; any of, optional)
      - any of:
        - `object`
          - `status` (`report-publish.response.200.data.report.view_delivery.1.status`; string, required)
            - one of `"ready"`
          - `receiptId` (`report-publish.response.200.data.report.view_delivery.1.receiptId`; string, required)
            - format `uuid`
          - `source` (`report-publish.response.200.data.report.view_delivery.1.source`; string, required)
            - one of `"share"`, `"vault"`, `"direct"`, `"api"`
          - `expiresAt` (`report-publish.response.200.data.report.view_delivery.1.expiresAt`; string, required)
            - format `date-time`
          - `policyVersion` (`report-publish.response.200.data.report.view_delivery.1.policyVersion`; string, required)
            - one of `"report-view-delivery-v2"`
        - `object`
          - `status` (`report-publish.response.200.data.report.view_delivery.2.status`; string, required)
            - one of `"policyExcluded"`
          - `reason` (`report-publish.response.200.data.report.view_delivery.2.reason`; string, required)
            - one of `"owner_self"`, `"blocked"`, `"non_external_traffic"`
          - `policyVersion` (`report-publish.response.200.data.report.view_delivery.2.policyVersion`; string, required)
            - one of `"report-view-delivery-v2"`
        - `object`
          - `status` (`report-publish.response.200.data.report.view_delivery.3.status`; string, required)
            - one of `"unavailable"`
          - `reason` (`report-publish.response.200.data.report.view_delivery.3.reason`; string, required)
            - one of `"viewer_policy_unavailable"`, `"lineage_unavailable"`, `"tracking_unavailable"`
          - `policyVersion` (`report-publish.response.200.data.report.view_delivery.3.policyVersion`; string, required)
            - one of `"report-view-delivery-v2"`
    - `collection_ids` (`report-publish.response.200.data.report.collection_ids`; array<string>, optional)
      - format `uuid`
    - `tags` (`report-publish.response.200.data.report.tags`; array<object>, optional)
      - `id` (`report-publish.response.200.data.report.tags.id`; string, required)
        - format `uuid`
      - `name` (`report-publish.response.200.data.report.tags.name`; string, required)
      - `visibility` (`report-publish.response.200.data.report.tags.visibility`; string, required)
        - one of `"private"`, `"public"`
- `meta` (`report-publish.response.200.meta`; object, optional)
  - `timestamp` (`report-publish.response.200.meta.timestamp`; string, required)
    - format `date-time`

### 400

Default Response

#### Example

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "traceId": "string"
  }
}
```

- `error` (`report-publish.response.400.error`; object, required)
  - `code` (`report-publish.response.400.error.code`; string, required) — Machine-readable error code (e.g., NOT_FOUND)
  - `message` (`report-publish.response.400.error.message`; string, required) — Human-readable error message
  - `details` (`report-publish.response.400.error.details`; unknown, optional) — Optional structured error details
  - `traceId` (`report-publish.response.400.error.traceId`; string, optional) — Unique ID for log correlation

### 401

Default Response

#### Example

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "traceId": "string"
  }
}
```

- `error` (`report-publish.response.401.error`; object, required)
  - `code` (`report-publish.response.401.error.code`; string, required) — Machine-readable error code (e.g., NOT_FOUND)
  - `message` (`report-publish.response.401.error.message`; string, required) — Human-readable error message
  - `details` (`report-publish.response.401.error.details`; unknown, optional) — Optional structured error details
  - `traceId` (`report-publish.response.401.error.traceId`; string, optional) — Unique ID for log correlation

### 403

Default Response

#### Example

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "traceId": "string"
  }
}
```

- `error` (`report-publish.response.403.error`; object, required)
  - `code` (`report-publish.response.403.error.code`; string, required) — Machine-readable error code (e.g., NOT_FOUND)
  - `message` (`report-publish.response.403.error.message`; string, required) — Human-readable error message
  - `details` (`report-publish.response.403.error.details`; unknown, optional) — Optional structured error details
  - `traceId` (`report-publish.response.403.error.traceId`; string, optional) — Unique ID for log correlation

### 404

Default Response

#### Example

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "traceId": "string"
  }
}
```

- `error` (`report-publish.response.404.error`; object, required)
  - `code` (`report-publish.response.404.error.code`; string, required) — Machine-readable error code (e.g., NOT_FOUND)
  - `message` (`report-publish.response.404.error.message`; string, required) — Human-readable error message
  - `details` (`report-publish.response.404.error.details`; unknown, optional) — Optional structured error details
  - `traceId` (`report-publish.response.404.error.traceId`; string, optional) — Unique ID for log correlation

### 409

Default Response

#### Example

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "traceId": "string"
  }
}
```

- `error` (`report-publish.response.409.error`; object, required)
  - `code` (`report-publish.response.409.error.code`; string, required) — Machine-readable error code (e.g., NOT_FOUND)
  - `message` (`report-publish.response.409.error.message`; string, required) — Human-readable error message
  - `details` (`report-publish.response.409.error.details`; unknown, optional) — Optional structured error details
  - `traceId` (`report-publish.response.409.error.traceId`; string, optional) — Unique ID for log correlation

### 422

Default Response

#### Example

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "traceId": "string"
  }
}
```

- `error` (`report-publish.response.422.error`; object, required)
  - `code` (`report-publish.response.422.error.code`; string, required) — Machine-readable error code (e.g., NOT_FOUND)
  - `message` (`report-publish.response.422.error.message`; string, required) — Human-readable error message
  - `details` (`report-publish.response.422.error.details`; unknown, optional) — Optional structured error details
  - `traceId` (`report-publish.response.422.error.traceId`; string, optional) — Unique ID for log correlation

### 500

Default Response

#### Example

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "traceId": "string"
  }
}
```

- `error` (`report-publish.response.500.error`; object, required)
  - `code` (`report-publish.response.500.error.code`; string, required) — Machine-readable error code (e.g., NOT_FOUND)
  - `message` (`report-publish.response.500.error.message`; string, required) — Human-readable error message
  - `details` (`report-publish.response.500.error.details`; unknown, optional) — Optional structured error details
  - `traceId` (`report-publish.response.500.error.traceId`; string, optional) — Unique ID for log correlation


Source: https://docs.sureshake.com/reference/report-publish/index.md
