Endpoints
Enabling Local API
Following review of your submission, the owner of your Vestaboard will be emailed a token to enable the Local API and get your first key.
Path
http://vestaboard.local:7000/local-api/enablement
Method
POST
Headers
X-Vestaboard-Local-Api-Enablement-TokenContent-Type: application/json
Example Request
- CURL
- Javascript
curl -X POST -H "X-Vestaboard-Local-Api-Enablement-Token: YOUR_API_ENABLEMENT_TOKEN" http://vestaboard.local:7000/local-api/enablement
await fetch("http://vestaboard.local:7000/local-api/enablement", {
headers: {
"Content-Type": "application/json",
"X-Vestaboard-Local-Api-Enablement-Token": "YOUR_API_ENABLEMENT_TOKEN",
},
method: "POST",
}).then((res) => res.json());
Example Response
{
"message": "Local API enabled",
"apiKey": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
}
Sending a message via Local API
After following the steps above to enable the Local API, use the provided API Key to send messages locally.
Path
http://vestaboard.local:7000/local-api/message
Method
POST
Headers
X-Vestaboard-Local-Api-Key- The Local API token provided when you enabled the Local API
Body
The request body should be an array of arrays containing the Vestaboard character codes for your message.
Flagship:
[
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 8, 5, 12, 12, 15, 0, 23, 15, 18, 12, 4, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
]
Vestaboard Note:
[
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
]
Example Request
- CURL
- Javascript
curl -X POST -H "X-Vestaboard-Local-Api-Key: YOUR_API_KEY" -H "Content-Type: application/json" http://vestaboard.local:7000/local-api/message -d "[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,8,5,12,12,15,0,23,15,18,12,4,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]"
await fetch("http://vestaboard.local:7000/local-api/message", {
headers: {
"Content-Type": "application/json",
"X-Vestaboard-Local-Api-Key": "YOUR_API_KEY",
},
method: "POST",
body: JSON.stringfy([
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 8, 5, 12, 12, 15, 0, 23, 15, 18, 12, 4, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
]),
}).then((res) => res.json());
Transitions / Animations
The local API allows you to specify the transition style on a per-message basis. Please note that transitions set in the app will not be applied to messages sent over the local API. The app settings only affect messages that pass through our cloud platform.
Path
http://vestaboard.local:7000/local-api/message
Method
POST
Headers
X-Vestaboard-Local-Api-Key- The Local API token provided when you enabled the Local API
Body
The request body should be an array of arrays containing the Vestaboard character codes for your message.
{
"characters": [[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,20,5,19,20,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],
"strategy": "column", // The animation type
"step_interval_ms": 3000, // The delay in milliseconds between starting each animation step. If you leave this out, we will activate one after another as quickly as possible.
"step_size": 2 // How many rows or columns are updated at once. If you leave this off, it will animate one at a time.
}
Parameters :
characters: An array of arrays of character codes.step_interval_ms: The delay in milliseconds between starting each animation step. Omit for immediate sequential activation.step_size: How many updates to make at once. Omit to animate one step at a time.strategy: The animation type. One of:column-> "Wave" in the app.reverse-column-> "Drift" in the app.edges-to-center-> "Curtain" in the app.row-> Row-by-row animation. Not available in the app.diagonal-> Corner-to-corner animation. Not available in the app.random-> Animates the number instep_sizeat a time randomly.
Example Request
- CURL
- Javascript
curl -X POST -H "X-Vestaboard-Local-Api-Key: YOUR_API_KEY" -H "Content-Type: application/json" http://vestaboard.local:7000/local-api/message -d "{ \"characters\": [[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,20,5,19,20,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]], \"strategy\": \"column\"}"
await fetch("http://vestaboard.local:7000/local-api/message", {
headers: {
"Content-Type": "application/json",
"X-Vestaboard-Local-Api-Key": "YOUR_API_KEY",
},
method: "POST",
body: JSON.stringify({
"characters": [[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,20,5,19,20,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],
"strategy": "column"
}),
}).then((res) => res.json());
Reading the current message
You can also read the current message displayed on your Vestaboard.
Path
http://vestaboard.local:7000/local-api/message
Method
GET
Headers
X-Vestaboard-Local-Api-Key- The Local API key provided when you enabled the Local API
Example Request
- CURL
- Javascript
curl -H "X-Vestaboard-Local-Api-Key: YOUR_API_KEY" http://vestaboard.local:7000/local-api/message
await fetch("http://vestaboard.local:7000/local-api/message", {
headers: {
"Content-Type": "application/json",
"X-Vestaboard-Local-Api-Key": "YOUR_API_KEY",
},
method: "GET",
}).then((res) => res.json());
Example Response
Flagship:
[
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 8, 5, 12, 12, 15, 0, 23, 15, 18, 12, 4, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
]
Vestaboard Note:
[
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
]