Arcade Knowledge Base
LoginSign up for free
  • Welcome! 👋
    • Quick Start
    • Your Feedback
  • Build
    • Record
    • Edit
      • Design
      • Branding & Theme
      • Hotspots & Callouts
      • Chapter, Form, & Embed
      • Audio
      • Video
      • Pan and Zoom
      • Branching
      • Variables
      • Cover & Fit
      • Translations
      • HTML Editing
      • AI & Avery
      • Misc.
    • Share
      • Embeds
      • Collections
      • Exports
      • Share Page
      • Mobile
  • Learn
    • Use Cases
    • Features
      • Insights
      • Leads
      • Audience Reveal
      • Integrations
    • Advanced Features
      • Event Propagation
      • Remote Control
      • REST API
      • Webhooks
  • Admin
    • Team Management
    • General Security
      • Single Sign-On (SSO) with SAML
      • GDPR Requirements
    • Billing and Subscription
    • Plans
Powered by GitBook
On this page
  • Authentication
  • How do I authenticate with the API?
  • Creating an Arcade from a Video
  • Step 1: How do I generate an upload URL?
  • Step 2: How do I upload the video?
  • Step 3: How do I create the Arcade?
  • Replacing an Existing Arcade
  • Can I update an existing Arcade with a new video and event list?

Was this helpful?

  1. Learn
  2. Advanced Features

REST API

Arcade’s REST API allows you to programmatically create Arcades from videos and interaction data.

PreviousRemote ControlNextWebhooks

Last updated 28 days ago

Was this helpful?

The API is available to all users in the Enterprise plan. If you're interested in testing the API or trialing Enterprise, reach out to our sales team (sales@arcade.software).

The Arcade API is actively being developed and subject to changes. Only a subset of what’s possible in the app is covered by the API. Let us know which features you want to see on the API first!

Authentication

How do I authenticate with the API?

First, generate an API key:

  1. Go to Settings > Advanced in your Arcade team dashboard.

  2. Generate a new API key.

Then, include the API key in the authorization header of all requests:

makefileCopyEditauthorization: YOUR_API_KEY

All requests are made to https://api.arcade.software.


Creating an Arcade from a Video

This API flow lets you programmatically create an Arcade from a video and a list of interaction events.


Step 1: How do I generate an upload URL?

Method: POST Endpoint: /generate-upload-url URL: https://api.arcade.software/generate-upload-url

Headers:

httpCopyEditauthorization: YOUR_API_KEY
content-type: application/json

Body:

jsonCopyEdit{
  "contentType": "video/webm"
  // or "video/mp4"
  // or "video/quicktime"
}

Response:

jsonCopyEdit{
  "success": true,
  "uploadUrl": "https://...",
  "uploadId": "my.company-uuid.webm"
}

Step 2: How do I upload the video?

Method: PUT URL: Use the uploadUrl from Step 1

Headers:

httpCopyEditcontent-type: video/webm

Body:

Binary video file (e.g. .webm, .mp4, or .mov)


Step 3: How do I create the Arcade?

Method: POST URL: https://api.arcade.software/arcades

Headers:

httpCopyEditauthorization: YOUR_API_KEY
content-type: application/json

Body:

jsonCopyEdit{
  "title": "Title of your Arcade",
  "description": "Optional description",
  "uploadId": "your-uploadId from Step 1",
  "events": [
    {
      "type": "click",
      "timestamp": 2.75,
      "target": {
        "x": 400,
        "y": 300
      },
      "label": "Optional hotspot label"
    },
    {
      "type": "scroll",
      "timestamp": 3
    },
    {
      "type": "click",
      "timestamp": 3.5,
      "target": {
        "x": 650,
        "y": 120
      }
    },
    {
      "type": "type",
      "timestamp": 5
    }
  ]
}

Notes:

  • Click events create hotspots.

  • Scroll and type events are used to determine if a video step should be created.

  • If there’s no scroll or type between clicks, the step will default to an image.

Response:

jsonCopyEdit{
  "success": true,
  "arcadeId": "abc123"
}

Replacing an Existing Arcade

Can I update an existing Arcade with a new video and event list?

Yes. Use the same flow as the creation endpoint, but instead of POST /arcades, use a different method and endpoint.

Method: PUT URL: https://api.arcade.software/arcades/:id (Replace :id with the ID of the Arcade you're updating)

Headers:

httpCopyEditauthorization: YOUR_API_KEY
content-type: application/json

Body:

Same as the create Arcade endpoint:

jsonCopyEdit{
  "title": "Updated Arcade Title",
  "description": "Optional new description",
  "uploadId": "your-new-upload-id",
  "events": [ /* same event format */ ]
}

This completely replaces the Arcade’s video and interaction steps with the new content.