curl --request POST \
--url https://api.openworklabs.com/v1/capabilities/microsoft-365/drive-download-links \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"itemId": "<string>",
"driveId": "<string>",
"format": "pdf"
}
'import requests
url = "https://api.openworklabs.com/v1/capabilities/microsoft-365/drive-download-links"
payload = {
"itemId": "<string>",
"driveId": "<string>",
"format": "pdf"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({itemId: '<string>', driveId: '<string>', format: 'pdf'})
};
fetch('https://api.openworklabs.com/v1/capabilities/microsoft-365/drive-download-links', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.openworklabs.com/v1/capabilities/microsoft-365/drive-download-links",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'itemId' => '<string>',
'driveId' => '<string>',
'format' => 'pdf'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.openworklabs.com/v1/capabilities/microsoft-365/drive-download-links"
payload := strings.NewReader("{\n \"itemId\": \"<string>\",\n \"driveId\": \"<string>\",\n \"format\": \"pdf\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.openworklabs.com/v1/capabilities/microsoft-365/drive-download-links")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"itemId\": \"<string>\",\n \"driveId\": \"<string>\",\n \"format\": \"pdf\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.openworklabs.com/v1/capabilities/microsoft-365/drive-download-links")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"itemId\": \"<string>\",\n \"driveId\": \"<string>\",\n \"format\": \"pdf\"\n}"
response = http.request(request)
puts response.read_body{
"ok": true,
"file": {
"id": "<string>",
"driveId": "<string>",
"parentId": "<string>",
"name": "<string>",
"mimeType": "<string>",
"revision": "<string>",
"size": 0,
"modifiedTime": "<string>",
"webUrl": "<string>"
},
"download": {
"format": "pdf",
"mimeType": "<string>",
"extension": "<string>",
"size": 0,
"exported": true,
"maxBytes": 0
},
"downloadUrl": "<string>",
"expiresAt": "2023-11-07T05:31:56Z",
"resourceLink": {
"type": "resource_link",
"uri": "<string>",
"name": "<string>",
"mimeType": "<string>",
"size": 0
},
"instructions": "<string>"
}{
"error": "invalid_request",
"details": [
{
"message": "<string>",
"path": [
"<string>"
]
}
],
"message": "<string>",
"capability": "<string>"
}{
"error": "unauthorized"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "needs_connection",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "microsoft_graph_error",
"message": "<string>",
"outcome": "unknown",
"retryable": false
}Create a five-minute download link for one OneDrive or SharePoint file, for clients with a shell
For clients without OpenWork host file transport but with a shell, such as a Workbot computer or a coding agent. Download with curl into a file instead of reading the file into context; format pdf converts Office files. To save edits back, prepare createMicrosoft365DriveUploadSession with itemId and this revision as baseRevision. Uses the selected connection.
curl --request POST \
--url https://api.openworklabs.com/v1/capabilities/microsoft-365/drive-download-links \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"itemId": "<string>",
"driveId": "<string>",
"format": "pdf"
}
'import requests
url = "https://api.openworklabs.com/v1/capabilities/microsoft-365/drive-download-links"
payload = {
"itemId": "<string>",
"driveId": "<string>",
"format": "pdf"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({itemId: '<string>', driveId: '<string>', format: 'pdf'})
};
fetch('https://api.openworklabs.com/v1/capabilities/microsoft-365/drive-download-links', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.openworklabs.com/v1/capabilities/microsoft-365/drive-download-links",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'itemId' => '<string>',
'driveId' => '<string>',
'format' => 'pdf'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.openworklabs.com/v1/capabilities/microsoft-365/drive-download-links"
payload := strings.NewReader("{\n \"itemId\": \"<string>\",\n \"driveId\": \"<string>\",\n \"format\": \"pdf\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.openworklabs.com/v1/capabilities/microsoft-365/drive-download-links")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"itemId\": \"<string>\",\n \"driveId\": \"<string>\",\n \"format\": \"pdf\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.openworklabs.com/v1/capabilities/microsoft-365/drive-download-links")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"itemId\": \"<string>\",\n \"driveId\": \"<string>\",\n \"format\": \"pdf\"\n}"
response = http.request(request)
puts response.read_body{
"ok": true,
"file": {
"id": "<string>",
"driveId": "<string>",
"parentId": "<string>",
"name": "<string>",
"mimeType": "<string>",
"revision": "<string>",
"size": 0,
"modifiedTime": "<string>",
"webUrl": "<string>"
},
"download": {
"format": "pdf",
"mimeType": "<string>",
"extension": "<string>",
"size": 0,
"exported": true,
"maxBytes": 0
},
"downloadUrl": "<string>",
"expiresAt": "2023-11-07T05:31:56Z",
"resourceLink": {
"type": "resource_link",
"uri": "<string>",
"name": "<string>",
"mimeType": "<string>",
"size": 0
},
"instructions": "<string>"
}{
"error": "invalid_request",
"details": [
{
"message": "<string>",
"path": [
"<string>"
]
}
],
"message": "<string>",
"capability": "<string>"
}{
"error": "unauthorized"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "needs_connection",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "microsoft_graph_error",
"message": "<string>",
"outcome": "unknown",
"retryable": false
}Authorizations
Organization API key passed as the x-api-key header. The raw key is the header value; do not prefix it with Bearer.
Body
1 - 512The file's driveId from a search, folder or link result. Omit for the member's own OneDrive.
1 - 512pdf converts a Word, Excel, PowerPoint or other Office file; omit to transfer the stored bytes.
"pdf"Response
Short-lived bearer download URL, as JSON and as an MCP resource link, with the file's revision; no file content.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Secret bearer URL for this one file, valid for five minutes. Do not print, share, log or persist it.
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$The same download as an MCP resource link.
Show child attributes
Show child attributes
Was this page helpful?