Import from JSON

Import a product structure from JSON data. This will update the specified product with the provided data structure.

Warning: This operation will delete all existing tasks, steps, scripts, translations, resources, and other product-related data, then replace them with the imported data. The product record itself is updated (not deleted). Use with caution.

Critical Requirements:

  • The imported JSON must be exported from the same product (same product ID and bundle_id combination)
  • The bundle_id in the JSON must match the target product's bundle_id exactly
  • If bundle_id does not match, the import will be rejected with a 400 error
  • The JSON must include the product.bundle_id field (included in all exports)
  • GUIDs are preserved from export to import (not regenerated)
  • Empty arrays (e.g., tasks: []) will not create any entries for that entity type

Validation Rules:

  • bundle_id mismatch: Import rejected (prevents importing wrong product data)
  • Missing bundle_id: Import rejected (indicates invalid export format)
  • Inherited Copilots: Cannot be imported (both source and target)

Limitations:

  • Only one import operation can run per product at a time (concurrent imports are blocked)
  • Large products may take several minutes to import; configure HTTP client timeouts accordingly
  • If the import operation fails partway through, the product may be left in a partial or empty state; retry the import until it succeeds

Best Practices:

  • Export the product before importing to create a backup
  • Do not modify the exported JSON structure (only modify data contents if needed)
  • If the import fails, you can retry immediately (the lock is released on failure)
  • Check the response summary and errors fields for import results
  • Retry failed imports until they succeed to ensure complete data restoration

Common use cases:

  • Restore from backup (same product)
  • Update product structure (same product)
  • Transfer between environments (same product, different server)

Import Structure: The data object must match the structure returned by the export endpoint.

Note: For complex imports with nested structures (tasks, steps, resources, etc.), use the code samples provided below rather than the form-based interface. Copy the cURL, JavaScript, Python, or PHP example and replace the JSON payload with your exported data.

Language
Credentials
Header
URL
Click Try It! to start a request and see the response here!