Skip to main content

Recreate Resource

The RecreateResource provides document recreation capabilities, accessible through client.enterprise_api.recreate. This resource handles document processing workflows including creation, status monitoring, and resource management.
MethodHTTP EndpointDescriptionContent Type
create()POST /enterprise-api/recreate/Initiates document recreation processmultipart/form-data
retrieve_status()GET /enterprise-api/recreate/status/Fetches recreation operation statusapplication/json
hide()POST /enterprise-api/recreate/hide/Manages resource visibilityapplication/json
get_dfs()ABSTRACTED GET /enterprise-api/recreate/recreate_id/to_json/Returns a recreate’s underlying data as a list of dataframesapplication/json

recreate.create

Creates a new recreation job and returns a recreate_id and status.
ParameterTypeDefaultDescription
fileBytes or FilelikeNoneInput document file
selected_pagesstrNonePage selection specification (e.g., “1-5”, “1-5,7-9,10-12”, “1,2,3,4,5,6”)
is_ppt_process_enabledstrfalsePowerPoint processing toggle
is_xls_process_charts_enabledstrfalseExcel chart processing toggle
is_xls_process_tables_enabledstr”false”Excel table processing toggle
selected_table_formatstrNoneTable output format id. Get this from list_formats
EnterpriseAPIResponse(status='SUCCESS', data={'recreate_id': '418099ce-6748-4b97-a92e-3fa1c9bd89cb', 'status': 'CREATED'})

recreate.retrieve_status

Requires a recreate_id and returns its status and associated download links if available. status_progression.txt
EnterpriseAPIResponse(status='SUCCESS', data={'recreate_id': '1eaba152-6278-477c-a3c2-b3726915e5c1', 'status': 'CREATED'})
EnterpriseAPIResponse(status='SUCCESS', data={'recreate_id': '1eaba152-6278-477c-a3c2-b3726915e5c1', 'status': 'RECEIVED', 'xls_download_url': None, 'ppt_download_url': None, 'jobs': [...]})
EnterpriseAPIResponse(status='SUCCESS', data={'recreate_id': '1eaba152-6278-477c-a3c2-b3726915e5c1', 'status': 'EXTRACTING', 'xls_download_url': None, 'ppt_download_url': None, 'jobs': [...]})
EnterpriseAPIResponse(status='SUCCESS', data={'recreate_id': '1eaba152-6278-477c-a3c2-b3726915e5c1', 'status': 'PROCESSING', 'xls_download_url': None, 'ppt_download_url': None, 'jobs': [...]})
EnterpriseAPIResponse(status='SUCCESS', data={'recreate_id': '1eaba152-6278-477c-a3c2-b3726915e5c1', 'status': 'COMPLETED', 'xls_download_url': 'https://storage.googleapis.com/...test-pdf.xlsx?...', 'ppt_download_url': 'https://storage.googleapis.com/...test-pdf.pptx?...', 'jobs': [...]})
When a job completes, the xls_download_url and ppt_download_url will be populated with non-null values: completed_example.txt
data={
  'recreate_id': 'cf9b1754-8dd6-4ef1-a3b4-9615411f1363', 
  'status': 'COMPLETED', 
  'xls_download_url': 'https://storage.googleapis.com/...authenticated_url...', 
  'ppt_download_url': 'https://storage.googleapis.com/...authenticated_url...',
  ...
}

recreate.get_dfs

Requires a recreate_id and returns its data as a list of dataframes.

from recreate_sdk import RecreateSDK

client = RecreateSDK(
    api_key="<YOUR_API_KEY>",
    base_url="<API_URL>",
)


def main():
    recreate_id = "<RECREATE_ID>"
    dfs = client.enterprise_api.recreate.get_dfs(recreate_id=recreate_id)
    for i, df in enumerate(dfs):
        print(f"DataFrame {i}:")
        print(f"Shape: {df.shape}")
        print(f"Columns: {list(df.columns)}")
        print(f"Is empty: {df.empty}")
        if not df.empty:
            print(df.head())
        else:
            print("DataFrame is empty - no rows")
        print("-" * 40)


if __name__ == "__main__":
    main()
You can inspect and utilize the df as usual

DataFrame 0:
Shape: (20, 5)
Columns: ['row_identifier', 'Item', 'Three months ended-September 30, 2024', 'Three months ended-June 30, 2024', 'Three months ended-September 30, 2023']
Is empty: False
             row_identifier                      Item  ... Three months ended-June 30, 2024 Three months ended-September 30, 2023
0                   Revenue                   Revenue  ...                            3,807                                 3,357
1           Cost of revenue           Cost of revenue  ...                            2,695                                 2,472
2              Gross profit              Gross profit  ...                            1,112                                   885
3  Research and development  Research and development  ...                              379                                   369
4       Sales and marketing       Sales and marketing  ...                              343                                   355

[5 rows x 5 columns]

Other API Resources

The EnterpriseAPIResource class serves as the primary interface for enterprise API operations. It provides direct access to format listing, PDF unprotection, and token validation functionality.
MethodHTTP EndpointDescriptionReturn Type
list_formats()GET /enterprise-api/formats/Retrieves available format configuration templatesEnterpriseAPIResponse
unprotect_pdf()POST /enterprise-api/unprotect-pdf/Removes password protection from PDF filesobject
validate_token()POST /enterprise-api/validate-tokenValidates JWT authentication tokensEnterpriseAPIValidateTokenResponse

list_formats

Returns configuration templates for formatting output files.
{
  "status": "SUCCESS",
  "data": {
    "configurations": [
      {
        "id": "468977cb-1fe6-431a-9880-c7b035b72842",
        "template_name": "YOUR_FIRM",
        "created_at": "2025-07-30T17:29:54.365476Z",
        "updated_at": "2025-07-30T17:29:54.365476Z",
        "config": {
          "template_name": "YOUR_FIRM",
          "header_config": {
            "font_family": "Arial",
            "font_color_hex": "#FFFFFF",
            "font_size": 11.0,
            "fill_color_hex": "#093a5b",
            "bolded": true,
            "italicized": false,
            "underlined": false,
            "decimal_precision": 0,
            "horizontal_alignment": "left",
            "vertical_alignment": null,
            "border_style": "thin",
            "border_top": false,
            "border_right": false,
            "border_bottom": false,
            "border_left": false
          },
          "row_config": {
            "font_family": "Arial",
            "font_size": 10.0,
            "font_color_hex": "#000000",
            "fill_color_hex": "#FFFFFF",
            "bolded": false,
            "italicized": false,
            "underlined": false,
            "decimal_precision": 0,
            "horizontal_alignment": "right",
            "vertical_alignment": null,
            "border_style": "none",
            "border_top": false,
            "border_right": false,
            "border_bottom": false,
            "border_left": false,
            "zoom": 100,
            "row_height": 20
          },
          "total_config": {
            "font_family": "Arial",
            "font_color_hex": "#000000",
            "font_size": 11.0,
            "fill_color_hex": "#ddebf7",
            "bolded": true,
            "italicized": false,
            "underlined": false,
            "decimal_precision": 0,
            "horizontal_alignment": "left",
            "vertical_alignment": null,
            "border_style": "thin",
            "border_top": true,
            "border_right": false,
            "border_bottom": false,
            "border_left": false
          }
        },
        "chart_config": {
          "bar_series_overlap": 0,
          "bar_gap_width": 70,
          "line_series_width": 2.0,
          "pie_chart_style": "doughnut",
          "donut_hole_size": 40,
          "colors": [
            "#093a5b",
            "#808080",
            "#005454",
            "#432752",
            "#bb8110",
            "#803d02"
          ],
          "font_family": "Arial",
          "font_color_hex": "#000000",
          "font_size": 10,
          "quick_sizing_config": null,
          "column_bar_group_config": null,
          "line_group_config": null,
          "combo_group_config": null,
          "area_group_config": null,
          "pie_donut_group_config": null
        }
      }
    ]
  }
}

unprotect_pdf

Removes password protection from PDF files. Requires file and password parameters. unprotect_example.py
# Unprotect a password-protected PDF
with open("protected.pdf", "rb") as file:
    response = client.enterprise_api.unprotect_pdf(
        file=file,
        password="your_password"
    )

validate_token

Validates JWT authentication tokens. Requires a token parameter. validate_token_example.py
# Validate authentication token
response = client.enterprise_api.validate_token(token="your_jwt_token")
I