What counts as a billable export?
An export is recorded once for every call to an export API, whatever the design or format. Live rendering, saving a scene, and built-in thumbnails do not count.
CE.SDK bases the count on calls to an export API, not on final downloads. Each call records one event, whatever the design and however the file is used afterward. Which operations count, when each event fires, and what data it carries are defined in the Export Counting documentation.
What counts as an export?
Several operations run through the export API, and each one records one event: exporting a block to an image format such as PNG, JPEG, WebP, or TGA, exporting to PDF or SVG, exporting raw pixel data, exporting with a color mask, and exporting a video. The engine does not treat a final export differently from any other export call, which means a thumbnail you generate programmatically through the export API counts like any other.
What does not count?
Some operations never record an export event:
- Live rendering in the editor. The canvas preview your users see while editing is not an export.
- Saving scenes. saveToString() and saveToArchive(), including autosaves and drafts, are not exports. Only the export APIs count.
- The engine's own thumbnail APIs. Video and audio thumbnail sequences and the page thumbnails shown in the editor do not go through the export pipeline.
- Audio exports. Exporting audio does not currently record an event.
When is an export counted?
The moment of counting differs between still and video exports. Images and PDFs are counted after the export completes successfully, which means a failed export, such as one caused by an invalid block or an encoding error, is not counted. Videos are counted when encoding starts, and a video export that fails or is canceled during encoding still counts.
An event fires when the export API call runs, not when a file is downloaded, uploaded, or attached to a later business event. There is no built-in option to defer counting to a point such as checkout. If you want exports to line up with a business event, structure your integration to call the export API only at that point.
-
Documents with more than one page: For PDF, exporting several pages in a single call produces one file and one event, and the event includes the number of pages and the dimensions of the largest page. For image formats, each page needs its own export call, which means a document exported as images produces one event per page.
-
Multiple formats: Each export call is counted on its own. Exporting the same design once as a PDF and once as a PNG produces two events, one for each format.
-
Development, staging, and production: The engine does not distinguish between environments. One license key works across development, staging, and production, and exports are counted the same way in each.
-
Server exports and the Renderer: The same rules apply on every platform. Exports run through the Node.js SDK or another integration on your server are counted under the same definition as exports in the browser. The Renderer uses the same counting and also sends periodic heartbeats to track the number of active instances.
What data is collected?
An export event carries only technical metadata, never your content. Image events include the media type, format, resolution, and page count. Video events include the media type, format, resolution, frame rate, and duration. Each event is linked to the user ID your integration provides, the device ID, and the session ID. The user ID can be a hashed or opaque value if you want to keep your internal IDs private, because it is used only to deduplicate users when counting monthly active users. Events are sent only when tracking is enabled for your license, and enterprise licenses with offline validation can opt out of tracking entirely. For the full detail on data handling, see Security.
How counts map to your bill?
Export events are the technical count. How those counts translate into a bill, including which tiers apply and how usage is aggregated, is set by your plan and contract rather than by the engine.
Common questions
- Does saveToString() count as an export? No, saving a scene as a string or archive is not an export.
- Does initializing the engine count? No, startup fires a separate tracking event for the app identifier, platform, and version, but that event is not an export.
- Do previews or thumbnails I generate count? Only when you generate them through the export API. The engine's own thumbnail APIs do not count.
- Is the same design in two formats one export or two? Two, one for each format.
- Is a photobook of 20 pages one export or twenty? Exported as a single PDF it is one event. Exported as images it is one event per page, which is twenty.
- If an export fails, does it still count? For images and PDF, no, because they count only after success. For video, yes, because it counts when encoding starts.
- Do exports in my dev/staging environment count? Yes, the SDK doesn't distinguish environments.
- Do server-side or Renderer exports count the same? Yes, same rules on every platform.