Today we’re announcing a much-requested API endpoint: shared link metadata, which lets you get metadata (similar to Core API’s /metadata
) from Dropbox shared links. This API endpoint doesn’t require a user access token.
We’ve been working with our friends at Slack and Trello to help develop this endpoint to super-power Dropbox shared links pasted into a channel or board. We’re now looking forward to seeing how the rest of the developer community uses it.
To test this new endpoint out, you’ll need two things: a Dropbox shared link and a Dropbox app. If you’ve never created a Dropbox shared link, it only takes a few clicks. Creating a Dropbox app is just as easy.
In the following examples, I’ll be using curl and a link to a folder with 2 images inside: https://www.dropbox.com/sh/748f94925f0gesq/AAAMSoRJyhJFfkupnAU0wXuva?dl=0
Using an app key and secret
Request
curl -X POST https://api.dropbox.com/1/metadata/link -u <APP_KEY>:<APP_SECRET> \
-d link=https://www.dropbox.com/sh/748f94925f0gesq/AAAMSoRJyhJFfkupnAU0wXuva?dl=0
Response
200 OK
Content-Type: application/json
{
"bytes": 0,
"contents": [
{
"bytes": 228105,
"client_mtime": "Fri, 28 Aug 2015 18:39:12 +0000",
"icon": "page_white_picture",
"is_dir": false,
"mime_type": "image/jpeg",
"modified": "Fri, 28 Aug 2015 18:44:13 +0000",
"path": "/Pusheen.jpg",
"rev": "155114a7004",
"root": "link",
"size": "222.8 KB",
"thumb_exists": true
},
{
"bytes": 550913,
"client_mtime": "Fri, 28 Aug 2015 18:39:58 +0000",
"icon": "page_white_picture",
"is_dir": false,
"mime_type": "image/jpeg",
"modified": "Fri, 28 Aug 2015 18:44:08 +0000",
"path": "/Sausalito.jpg",
"rev": "153114a7004",
"root": "link",
"size": "538 KB",
"thumb_exists": true
}
],
"folder_name": "Shared Link Metadata",
"hash": "f9433abe16be847f75ec8949b3870534",
"icon": "folder",
"in_dropbox": false,
"is_dir": true,
"link": "https://www.dropbox.com/sh/748f94925f0gesq/AAAMSoRJyhJFfkupnAU0wXuva?dl=0",
"modified": "Fri, 10 Jul 2015 01:07:57 +0000",
"path": null,
"rev": "141114a7004",
"root": "link",
"size": "0 bytes",
"thumb_exists": false,
"visibility": "PUBLIC"
}
Using a user access token
If your app has an authenticated user, it's helpful to know whether a shared link points to a file in that user’s Dropbox. If you call /metadata/link
with the user’s access token, the returned metadata will tell you whether the shared link points to a file or folder in that user’s Dropbox via the in_dropbox
field. If in_dropbox
is true
, the path
field will tell you the exact path to the file within the user’s Dropbox. With that path, your app can use the rest of the Core API to work directly with the file. If this is your first time creating an access token, try our OAuth guide.
Request
curl -X POST https://api.dropbox.com/1/metadata/link \
-d link=https://www.dropbox.com/sh/748f94925f0gesq/AAAMSoRJyhJFfkupnAU0wXuva?dl=0 \
-H "Authorization: Bearer <ACCESS_TOKEN>"
Response
200 OK
Content-Type: application/json
{
"bytes": 0,
"contents": [
{
"bytes": 228105,
"client_mtime": "Fri, 28 Aug 2015 18:39:12 +0000",
"icon": "page_white_picture",
"is_dir": false,
"mime_type": "image/jpeg",
"modified": "Fri, 28 Aug 2015 18:44:13 +0000",
"path": "/Pusheen.jpg",
"rev": "155114a7004",
"root": "link",
"size": "222.8 KB",
"thumb_exists": true
},
{
"bytes": 550913,
"client_mtime": "Fri, 28 Aug 2015 18:39:58 +0000",
"icon": "page_white_picture",
"is_dir": false,
"mime_type": "image/jpeg",
"modified": "Fri, 28 Aug 2015 18:44:08 +0000",
"path": "/Sausalito.jpg",
"rev": "153114a7004",
"root": "link",
"size": "538 KB",
"thumb_exists": true
}
],
"folder_name": "Shared Link Metadata",
"hash": "f9433abe16be847f75ec8949b3870534",
"icon": "folder",
"in_dropbox": true,
"is_dir": true,
"link": "https://www.dropbox.com/sh/748f94925f0gesq/AAAMSoRJyhJFfkupnAU0wXuva?dl=0",
"modified": "Fri, 10 Jul 2015 01:07:57 +0000",
"path": "/Blog/Shared Link Metadata",
"rev": "141114a7004",
"root": "dropbox",
"size": "0 bytes",
"thumb_exists": false,
"visibility": "PUBLIC"
}
Examining subfolders or files
If your shared link points to a folder (like mine did) and you just need metadata for specific files or subfolders in that folder, you can pass its relative path in the path
parameter:
Request
curl -X POST https://api.dropbox.com/1/metadata/link \
-d link=https://www.dropbox.com/sh/748f94925f0gesq/AAAMSoRJyhJFfkupnAU0wXuva?dl=0 \
-d path=/Pusheen.jpg -H "Authorization: Bearer <ACCESS_TOKEN>"
Response
200 OK
Content-Type: application/json
{
"bytes": 228105,
"client_mtime": "Fri, 28 Aug 2015 18:39:12 +0000",
"icon": "page_white_picture",
"in_dropbox": false,
"is_dir": false,
"link": "https://www.dropbox.com/sh/748f94925f0gesq/AAACxOBrrlgYrMtZ804XECFQa/Pusheen.jpg?dl=0",
"mime_type": "image/jpeg",
"modified": "Fri, 28 Aug 2015 18:44:13 +0000",
"path": "/Pusheen.jpg",
"rev": "155114a7004",
"root": "link",
"size": "222.8 KB",
"thumb_exists": true,
"visibility": "PUBLIC"
}
For full details on this new endpoint, check out our Core API docs. Happy hacking!