Download one OneDrive or SharePoint file with a short-lived link
curl --request GET \
--url https://api.openworklabs.com/v1/direct-downloads/microsoft-365/drive-linkimport requests
url = "https://api.openworklabs.com/v1/direct-downloads/microsoft-365/drive-link"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.openworklabs.com/v1/direct-downloads/microsoft-365/drive-link', 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/direct-downloads/microsoft-365/drive-link",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.openworklabs.com/v1/direct-downloads/microsoft-365/drive-link"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.openworklabs.com/v1/direct-downloads/microsoft-365/drive-link")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.openworklabs.com/v1/direct-downloads/microsoft-365/drive-link")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body"<string>"{
"error": "invalid_request",
"details": [
{
"message": "<string>",
"path": [
"<string>"
]
}
],
"message": "<string>",
"capability": "<string>"
}{
"error": "unauthorized"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "needs_connection",
"message": "<string>"
}{
"error": "microsoft_graph_error",
"message": "<string>",
"outcome": "unknown",
"retryable": false
}Direct uploads
Download one OneDrive or SharePoint file with a short-lived link
The signed link names one member, connection, file and format and expires after five minutes. The member’s current organization access and Microsoft 365 connection are checked again on every download.
GET
/
v1
/
direct-downloads
/
microsoft-365
/
drive-link
Download one OneDrive or SharePoint file with a short-lived link
curl --request GET \
--url https://api.openworklabs.com/v1/direct-downloads/microsoft-365/drive-linkimport requests
url = "https://api.openworklabs.com/v1/direct-downloads/microsoft-365/drive-link"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.openworklabs.com/v1/direct-downloads/microsoft-365/drive-link', 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/direct-downloads/microsoft-365/drive-link",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.openworklabs.com/v1/direct-downloads/microsoft-365/drive-link"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.openworklabs.com/v1/direct-downloads/microsoft-365/drive-link")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.openworklabs.com/v1/direct-downloads/microsoft-365/drive-link")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body"<string>"{
"error": "invalid_request",
"details": [
{
"message": "<string>",
"path": [
"<string>"
]
}
],
"message": "<string>",
"capability": "<string>"
}{
"error": "unauthorized"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "needs_connection",
"message": "<string>"
}{
"error": "microsoft_graph_error",
"message": "<string>",
"outcome": "unknown",
"retryable": false
}Query Parameters
Required string length:
1 - 2048Response
File bytes.
The response is of type file.
Was this page helpful?