Edit a dashboard
Needs: Reports, Read-write
Edits a dashboard's name, description, settings and cards with ordered operations, all saved together. Protected dashboards are refused.
Card operations
add_insight:insight_id, with optionalposition,show_titleandshow_description.add_text:text(a blank line starts a new paragraph) and an optionalposition.update_card:card_id, with optionalshow_title,show_description,locked,text(text cards) andposition.remove_card:card_id.auto_layout: arranges the cards once.
Card ids come from the dashboard. Positions must fit the grid, respect the card's minimum size and not overlap. Moving a card turns auto layout off, as dragging does.
curl -X PATCH "https://app.imploy.com.au/api/integrations/v1/reports/dashboards/123" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-d '{
"operations": [
{
"op": "add_insight",
"insight_id": 32
},
{
"op": "auto_layout"
}
]
}'
import requests
import json
url = "https://app.imploy.com.au/api/integrations/v1/reports/dashboards/123"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN"
}
data = {
"operations": [
{
"op": "add_insight",
"insight_id": 32
},
{
"op": "auto_layout"
}
]
}
response = requests.patch(url, headers=headers, json=data)
print(response.json())
const response = await fetch("https://app.imploy.com.au/api/integrations/v1/reports/dashboards/123", {
method: "PATCH",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN"
},
body: JSON.stringify({
"operations": [
{
"op": "add_insight",
"insight_id": 32
},
{
"op": "auto_layout"
}
]
})
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
"bytes"
"encoding/json"
)
func main() {
data := []byte(`{
"operations": [
{
"op": "add_insight",
"insight_id": 32
},
{
"op": "auto_layout"
}
]
}`)
req, err := http.NewRequest("PATCH", "https://app.imploy.com.au/api/integrations/v1/reports/dashboards/123", bytes.NewBuffer(data))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer YOUR_API_TOKEN")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("Response Status:", resp.Status)
}
require 'net/http'
require 'json'
uri = URI('https://app.imploy.com.au/api/integrations/v1/reports/dashboards/123')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(uri)
request['Content-Type'] = 'application/json'
request['Authorization'] = 'Bearer YOUR_API_TOKEN'
request.body = '{
"operations": [
{
"op": "add_insight",
"insight_id": 32
},
{
"op": "auto_layout"
}
]
}'
response = http.request(request)
puts response.body
{
"updated": 6,
"...": "the dashboard, its link and cards"
}
{
"message": "Invalid or expired access token."
}
{
"message": "Access token does not permit this action."
}
{
"message": "Too many requests."
}
/reports/dashboards/{id}Target server for requests. Edit to use your own host.
An organisation access token that starts with imp_at_. Send it as Authorization: Bearer imp_at_XXXX.
imp_at_. Send it as Authorization: Bearer imp_at_XXXX.The dashboard id.
The media type of the request body
The new name.
Or null to clear.
The same keys as create.
Ordered card edits. See the list below.
Move it to this space.
A subfolder within the space.
Request Preview
Response
Response will appear here after sending the request
Authentication
Bearer token. An organisation access token that starts with imp_at_. Send it as Authorization: Bearer imp_at_XXXX.
Path Parameters
The dashboard id.
Body
The new name.
Or null to clear.
The same keys as create.
Ordered card edits. See the list below.
Move it to this space.
A subfolder within the space.
Responses
OK