Comment on page
REST API
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!
First, you need to generate an API key from your Arcade team settings. You can do that in the Advanced section.
From there, you can include this API key in the
authorization
header to all the requests you make to api.arcade.software
, like so:authorization: TwjsO-PaFpaZgfNWeAYxYA
Method:
POST
URL:
https://api.arcade.software/generate-upload-url
Headers:
authorization
content-type: application/json
Body:
{
// The content type of the video to be uploaded.
"contentType": "video/webm"
// "contentType": "video/mp4"
// "contentType": "video/quicktime" (mov)
}
Response:
{
"success": true,
"uploadUrl": "https://...",
"uploadId": "my.company-6c4da6d1-7dec-40f9-96c8-1a8c4e4abc94-1699924008010.webm"
}
Method:
PUT
URL: The
uploadUrl
from the previous stepHeaders:
content-type: video/webm
(content type specified at step 1)
Body: the video (binary payload)
Method:
POST
URL:
https://api.arcade.software/arcades
Headers:
authorization
content-type: application/json
Body:
{
"title": "Title of your Arcade",
"description": "Optional description",
"uploadId": "`uploadId` from step 1",
"events": [
{
// Type of event
"type": "click",
// Timestamp in seconds where the event happens in the uploaded video,
// in the case below, the click occurred at 2 seconds and 750 ms.
"timestamp": 2.75,
// The coordinates of the point that was clicked relative to the
// top-left corner of the video.
"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
}
]
}
Click events are converted into hotspots, and scroll and type events are hints to whether or not to create a video, so it behaves the same as when recording with the extension.
If the user scrolled or typed between clicks, we'll include a video. Otherwise, it will be only an image step.
Response:
{
"success": true,
"arcadeId": "The ID of the Arcade that got created"
}
The flow is exactly like the create endpoint above, but instead of
POST /arcades
, use the following endpoint:Method:
PUT
URL:
https://api.arcade.software/arcades/:id
Headers:
authorization
content-type: application/json
Body: same as create endpoint body
Last modified 8d ago