How do I capture IFRAMEs under the same top level domain?

Given that the top level domain is and the IFRAMEs are hosted in subdomains of it,,, make sure the following JavaScript one-liner is executed to all of the IFRAMEs and the top-level window:

// replace with your top level domain
document.domain = '';

This way, by having injected the Cubicast snippet only on the top-level window, the recorder will capture all of the IFRAMEs.

Even though I have enabled CANVAS capturing, the recorded CANVAS appears blank (aka the curious case of tainted canvas).

When drawing images from other hosts on the canvas, the canvas becomes tainted. As a result, exporting its image data is prohibited. There are 2 options for overcoming this:

After inspecting the DOM I see a custom sb-id attribute on all elements. What is this attribute used for?

This attribute is added while our script is recording the session and is used for identifying the elements in a web page. When the recorder is stopped a proper clean-up is performed.

What constitutes a billable API request?

At Cubicast are always trying to make sure our clients’ money is well spent, striving to keep billable API requests at a minimum level. Below you can see a list of the most common billable requests based on usage.

When recording sessions:

  • Creating the recording.
  • Adding a chunk to a recording.
  • Adding an asset to a workspace. Assets include stylesheets and web fonts. The recorder is optimised in a way so that already added assets are not added twice. Therefore, expect the first recording to perform more billable API requests than the rest.

When viewing recorded sessions:

  • Getting the recording info.
  • Getting the recording chunks collection.
  • Getting a single chunk of data. Since chunks are immutable it is safe to cache them on the browser side, which means less API requests when the same client views a recording multiple times. Additionally, chunks are requested on demand as the playback moves ahead.

When using the Cubicast app:

  • Listing recordings.
  • Updating recordings/workspaces.
  • Annotating recordings.
  • Adding/removing workspace team members.
  • Adding/removing workspace integrations.