JSON to CSV

The /json_to_csv endpoint converts the given JSON data to CSV data. This endpoint also supports nested JSON.

Method: POST

To make a request, send the required parameters with the authorization header to the /json_to_csv endpoint, via the POST method.

Parameters

This endpoint takes only two parameters, namely, source_json and options.

  • source_json is the JSON data which is to be converted to CSV.
  • options is an object containing the customization options for the conversion. Supported customization options are:
    • flatten_nested is a boolean value determining whether to flatten the nested JSON objects or keep it as it is.
    • nested_key_separator is the character which would be used to join the keys of the nested values. It is ignored if flatten_nested is false.
    • default_value is the value to use when data is missing. Default is ''(empty string)
    • include_empty_rows is a boolean which determines whether to include empty rows.
    • with_bom is a boolean which determines whether to use BOM (Byte-order mark) character. Default is false

Responses

The success response, when flatten_nested is true and nested_key_separator is .:

{
  "status": "success",
  "data": {
    "source_json": [
      {
        "id": 1,
        "name": "John Doe",
        "contact": {
          "email": "john.doe@example.com"
        }
      },
      {
        "id": 2,
        "name": "Jane Doe",
        "contact": {
          "email": "jane.doe@example.com"
        }
      }
    ],
    "csv": "\"id\",\"name\",\"contact.email\"\n1,\"John Doe\",\"john.doe@example.com\"\n2,\"Jane Doe\",\"jane.doe@example.com\"",
    "options_applied": {
      "flatten_nested": true,
      "nested_key_separator": "."
    }
  },
  "message": "JSON has been successfully converted to CSV."
}

When, flatten_nested is false:

{
  "status": "success",
  "data": {
    "source_json": [
      {
        "id": 1,
        "name": "John Doe",
        "contact": {
          "email": "john.doe@example.com"
        }
      },
      {
        "id": 2,
        "name": "Jane Doe",
        "contact": {
          "email": "jane.doe@example.com"
        }
      }
    ],
    "csv": "\"id\",\"name\",\"contact\"\n1,\"John Doe\",\"{\"\"email\"\":\"\"john.doe@example.com\"\"}\"\n2,\"Jane Doe\",\"{\"\"email\"\":\"\"jane.doe@example.com\"\"}\"",
    "options_applied": {
      "flatten_nested": false,
      "nested_key_separator": "."
    }
  },
  "message": "JSON has been successfully converted to CSV."
}

And if some error occurs, like invalid JSON:

{
  "status": "error",
  "error": {
    "code": "INVALID_JSON",
    "message": "Unable to parse JSON string.",
    "details": "Unexpected token 'H', \"Hehe\n{\n\t\"i\"... is not valid JSON"
  }
}