ObjectStackObjectStack

Export

Export protocol schemas

Data Export & Import Protocol

Defines schemas for streaming data export, import validation,

template-based field mapping, and scheduled export jobs.

Industry alignment: Salesforce Data Export, Airtable CSV Export,

Dynamics 365 Data Management.

Base path: /api/v1/data/{object}/export

Source: packages/spec/src/api/export.zod.ts

TypeScript Usage

import { CreateExportJobRequest, CreateExportJobResponse, DeduplicationStrategy, ExportFormat, ExportImportTemplate, ExportJobProgress, ExportJobStatus, ExportJobSummary, FieldMappingEntry, GetExportJobDownloadRequest, GetExportJobDownloadResponse, ImportValidationConfig, ImportValidationMode, ImportValidationResult, ListExportJobsRequest, ListExportJobsResponse, ScheduleExportRequest, ScheduleExportResponse, ScheduledExport } from '@objectstack/spec/api';
import type { CreateExportJobRequest, CreateExportJobResponse, DeduplicationStrategy, ExportFormat, ExportImportTemplate, ExportJobProgress, ExportJobStatus, ExportJobSummary, FieldMappingEntry, GetExportJobDownloadRequest, GetExportJobDownloadResponse, ImportValidationConfig, ImportValidationMode, ImportValidationResult, ListExportJobsRequest, ListExportJobsResponse, ScheduleExportRequest, ScheduleExportResponse, ScheduledExport } from '@objectstack/spec/api';

// Validate data
const result = CreateExportJobRequest.parse(data);

CreateExportJobRequest

Properties

PropertyTypeRequiredDescription
objectstringObject name to export
formatEnum<'csv' | 'json' | 'jsonl' | 'xlsx' | 'parquet'>Export file format
fieldsstring[]optionalSpecific fields to include (omit for all fields)
filterRecord<string, any>optionalFilter criteria for records to export
sortObject[]optionalSort order for exported records
limitintegeroptionalMaximum number of records to export
includeHeadersbooleanInclude header row (CSV/XLSX)
encodingstringCharacter encoding for the export file
templateIdstringoptionalExport template ID for predefined field mappings

CreateExportJobResponse

Properties

PropertyTypeRequiredDescription
successbooleanOperation success status
errorObjectoptionalError details if success is false
metaObjectoptionalResponse metadata
dataObject

DeduplicationStrategy

Allowed Values

  • skip
  • update
  • create_new
  • fail

ExportFormat

Allowed Values

  • csv
  • json
  • jsonl
  • xlsx
  • parquet

ExportImportTemplate

Properties

PropertyTypeRequiredDescription
idstringoptionalTemplate ID (generated on save)
namestringTemplate machine name (snake_case)
labelstringHuman-readable template label
descriptionstringoptionalTemplate description
objectstringTarget object name
directionEnum<'import' | 'export' | 'bidirectional'>Template direction
formatEnum<'csv' | 'json' | 'jsonl' | 'xlsx' | 'parquet'>optionalDefault file format for this template
mappingsObject[]Field mapping entries
createdAtstringoptionalTemplate creation timestamp
updatedAtstringoptionalLast update timestamp
createdBystringoptionalUser who created the template

ExportJobProgress

Properties

PropertyTypeRequiredDescription
successbooleanOperation success status
errorObjectoptionalError details if success is false
metaObjectoptionalResponse metadata
dataObject

ExportJobStatus

Allowed Values

  • pending
  • processing
  • completed
  • failed
  • cancelled
  • expired

ExportJobSummary

Properties

PropertyTypeRequiredDescription
jobIdstringExport job ID
objectstringObject name that was exported
statusEnum<'pending' | 'processing' | 'completed' | 'failed' | 'cancelled' | 'expired'>Current job status
formatEnum<'csv' | 'json' | 'jsonl' | 'xlsx' | 'parquet'>Export file format
totalRecordsintegeroptionalTotal records exported
fileSizeintegeroptionalFile size in bytes
createdAtstringJob creation timestamp
completedAtstringoptionalCompletion timestamp
createdBystringoptionalUser who initiated the export

FieldMappingEntry

Properties

PropertyTypeRequiredDescription
sourceFieldstringField name in the source data (import) or object (export)
targetFieldstringField name in the target object (import) or file column (export)
targetLabelstringoptionalDisplay label for the target column (export)
transformEnum<'none' | 'uppercase' | 'lowercase' | 'trim' | 'date_format' | 'lookup'>Transformation to apply during mapping
defaultValueanyoptionalDefault value if source field is null/empty
requiredbooleanWhether this field is required (import validation)

GetExportJobDownloadRequest

Properties

PropertyTypeRequiredDescription
jobIdstringExport job ID

GetExportJobDownloadResponse

Properties

PropertyTypeRequiredDescription
successbooleanOperation success status
errorObjectoptionalError details if success is false
metaObjectoptionalResponse metadata
dataObject

ImportValidationConfig

Properties

PropertyTypeRequiredDescription
modeEnum<'strict' | 'lenient' | 'dry_run'>Validation mode for the import
deduplicationObjectoptionalDeduplication configuration
maxErrorsintegerMaximum validation errors before aborting
trimWhitespacebooleanTrim leading/trailing whitespace from string fields
dateFormatstringoptionalExpected date format in import data (e.g., "YYYY-MM-DD")
nullValuesstring[]optionalStrings to treat as null (e.g., ["", "N/A", "null"])

ImportValidationMode

Allowed Values

  • strict
  • lenient
  • dry_run

ImportValidationResult

Properties

PropertyTypeRequiredDescription
successbooleanOperation success status
errorObjectoptionalError details if success is false
metaObjectoptionalResponse metadata
dataObject

ListExportJobsRequest

Properties

PropertyTypeRequiredDescription
objectstringoptionalFilter by object name
statusEnum<'pending' | 'processing' | 'completed' | 'failed' | 'cancelled' | 'expired'>optionalFilter by job status
limitintegerMaximum number of jobs to return
cursorstringoptionalPagination cursor from a previous response

ListExportJobsResponse

Properties

PropertyTypeRequiredDescription
successbooleanOperation success status
errorObjectoptionalError details if success is false
metaObjectoptionalResponse metadata
dataObject

ScheduleExportRequest

Properties

PropertyTypeRequiredDescription
namestringSchedule name (snake_case)
labelstringoptionalHuman-readable label
objectstringObject name to export
formatEnum<'csv' | 'json' | 'jsonl' | 'xlsx' | 'parquet'>Export file format
fieldsstring[]optionalFields to include
filterRecord<string, any>optionalRecord filter criteria
templateIdstringoptionalExport template ID for field mappings
scheduleObjectSchedule timing configuration
deliveryObjectExport delivery configuration

ScheduleExportResponse

Properties

PropertyTypeRequiredDescription
successbooleanOperation success status
errorObjectoptionalError details if success is false
metaObjectoptionalResponse metadata
dataObject

ScheduledExport

Properties

PropertyTypeRequiredDescription
idstringoptionalScheduled export ID
namestringSchedule name (snake_case)
labelstringoptionalHuman-readable label
objectstringObject name to export
formatEnum<'csv' | 'json' | 'jsonl' | 'xlsx' | 'parquet'>Export file format
fieldsstring[]optionalFields to include
filterRecord<string, any>optionalRecord filter criteria
templateIdstringoptionalExport template ID for field mappings
scheduleObjectSchedule timing configuration
deliveryObjectExport delivery configuration
enabledbooleanWhether the scheduled export is active
lastRunAtstringoptionalLast execution timestamp
nextRunAtstringoptionalNext scheduled execution
createdAtstringoptionalCreation timestamp
createdBystringoptionalUser who created the schedule

On this page