# Respond to an access request (file JSON upload) (/docs/api-reference/custom-integration/post-v1-datapoint-chunked)

If you need to page over a large amount of JSON data, then use this endpoint to send the JSON in chunks. Transcend will create a file and append each JSON chunk to the file as you post the data. You will specify when your service has completed paging over the data, after which, Transcend will mark the Datapoint as ready.

## POST /v1/datapoint-chunked

```json
{
  "servers": [
    {
      "url": "https://multi-tenant.sombra.transcend.io",
      "description": "Multi-tenant (EU)"
    },
    {
      "url": "https://multi-tenant.sombra.us.transcend.io",
      "description": "Multi-tenant (US)"
    },
    {
      "description": "Self-hosted",
      "url": "https://_yourOrganizationSombraURL_.com"
    },
    {
      "description": "Preference Store in Europe",
      "url": "https://consent.transcend.io"
    },
    {
      "description": "Preference Store in the U.S.",
      "url": "https://consent.us.transcend.io"
    },
    {
      "description": "Rules Automation webhook ingestion (EU)",
      "url": "https://rule-automation.transcend.io"
    },
    {
      "description": "Rules Automation webhook ingestion (US)",
      "url": "https://rule-automation.us.transcend.io"
    }
  ],
  "security": [
    {
      "Transcend_API_Key": [],
      "Sombra_Token": [],
      "Transcend_API_Key_If_Multitenant": []
    }
  ],
  "operation": {
    "summary": "Respond to an access request (file JSON upload)",
    "responses": {
      "200": {
        "description": "Your request was received without an issue.",
        "headers": {},
        "content": {
          "application/json": {
            "schema": {
              "description": "",
              "type": "object"
            }
          }
        }
      },
      "400": {
        "description": "While this request passed authentication, the input is malformed. Please double-check that your code conforms to our API specification.",
        "headers": {},
        "content": {
          "application/json": {
            "schema": {
              "description": "",
              "type": "object",
              "properties": {}
            }
          }
        }
      },
      "401": {
        "description": "There was a problem authenticating your request. This may be an issue with the Transcend API key (\"authorization\" header), or the Sombra API key (\"x-sombra-authorization\" header used for self-hosted gateways only).",
        "headers": {},
        "content": {
          "application/json": {
            "schema": {
              "description": "",
              "type": "object",
              "properties": {}
            }
          }
        }
      },
      "413": {
        "description": "The request body is too large. JSON and raw bodies must be less than 50MB. URL encoded bodies must be less than 30MB.",
        "headers": {},
        "content": {
          "application/json": {
            "schema": {
              "description": "",
              "type": "object",
              "properties": {}
            }
          }
        }
      },
      "429": {
        "description": "You are sending requests too quickly and have hit our rate limit. If you hit this, you'll need to throttle your request velocity or try again later.",
        "headers": {
          "Retry-After": {
            "description": "The number of seconds to wait before retrying.",
            "schema": {
              "type": "integer"
            }
          },
          "X-RateLimit-Limit": {
            "description": "The maximum number of requests allowed in the time window.",
            "schema": {
              "type": "integer"
            }
          },
          "X-RateLimit-Remaining": {
            "description": "The number of requests remaining in the time window.",
            "schema": {
              "type": "integer"
            }
          },
          "X-RateLimit-Reset": {
            "description": "The time at which the rate limit will reset.",
            "schema": {
              "type": "integer"
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "description": "",
              "type": "object",
              "properties": {}
            }
          }
        }
      },
      "500": {
        "description": "A 5xx error means there is either an issue with your self-hosted gateway, or a Transcend server is having issues. You check our system status at status.transcend.io. Please reach out to Transcend support if you're experiencing this error.",
        "headers": {},
        "content": {
          "application/json": {
            "schema": {
              "description": "",
              "type": "object",
              "properties": {}
            }
          }
        }
      },
      "502": {
        "description": "An upstream service on Transcend's side is having issues. You check our system status at status.transcend.io. Please reach out to Transcend support if you're experiencing this error.",
        "headers": {},
        "content": {
          "application/json": {
            "schema": {
              "description": "",
              "type": "object",
              "properties": {}
            }
          }
        }
      }
    },
    "operationId": "post-v1-datapoint-chunked",
    "security": [
      {
        "Transcend_API_Key": [
          "API Key must be associated to this integration"
        ]
      }
    ],
    "parameters": [
      {
        "$ref": "#/components/parameters/authorization"
      },
      {
        "$ref": "#/components/parameters/x-sombra-authorization"
      },
      {
        "$ref": "#/components/parameters/content-type-application-json"
      },
      {
        "$ref": "#/components/parameters/x-transcend-nonce"
      }
    ],
    "tags": [
      "Custom integration"
    ],
    "requestBody": {
      "content": {
        "application/json": {
          "schema": {
            "description": "",
            "type": "object",
            "properties": {
              "dataPointName": {
                "type": "string",
                "description": "The name of the datapoint that data is being uploaded for."
              },
              "data": {
                "type": "array",
                "description": "An array of data to be uploaded for that datapoints. This is typically a page worth of JSON data",
                "items": {
                  "type": "object"
                }
              },
              "isLastPage": {
                "type": "boolean",
                "description": "Set to true when you upload your final page of data (you may also upload an empty list with isLastPage=true). When this value is set to true, the datapoint will be marked as completed."
              },
              "fileId": {
                "type": "string",
                "description": "Give the chunk of data being uploaded a title. For example, if the data is some date range, you could title the file \"mm/dd/yyy - mm/dd/yyy\""
              }
            },
            "required": [
              "data",
              "dataPointName"
            ]
          },
          "examples": {
            "Example": {
              "value": {
                "dataPointName": "activities",
                "fileId": "History 04/07 - 04/08",
                "data": [
                  {
                    "id": "d8e57222-43c6-4fd7-b928-4a8ae106fe98",
                    "time_stamp": "2022-04-07T04:58:19.900Z",
                    "metric": 4,
                    "isCool": true
                  },
                  {
                    "id": "31a17418-ec6e-4b3a-9056-b5c17278d053",
                    "time_stamp": "2022-04-08T04:58:19.900Z",
                    "metric": 0,
                    "isCool": false
                  }
                ]
              }
            },
            "Example Final Page": {
              "value": {
                "dataPointName": "activities",
                "data": [
                  {
                    "id": "96555188-5681-4e77-9375-a841af4b004c",
                    "time_stamp": "2022-04-010T04:58:19.900Z",
                    "metric": 9,
                    "isCool": true
                  }
                ],
                "isLastPage": true
              }
            },
            "Example Empty Final Page": {
              "value": {
                "dataPointName": "activities",
                "data": [],
                "isLastPage": true
              }
            }
          }
        }
      }
    },
    "description": "If you need to page over a large amount of JSON data, then use this endpoint to send the JSON in chunks.\nTranscend will create a file and append each JSON chunk to the file as you post the data.\nYou will specify when your service has completed paging over the data, after which, Transcend will mark the Datapoint as ready."
  }
}
```