Dropbox File_properties API
This namespace contains helpers for property and template metadata endpoints. These endpoints enable you to tag arbitrary key/value data to Dropbox files. The most basic unit in this namespace is the :type:`PropertyField`. These fields encapsulate the actual key/value data. Fields are added to a Dropbox file using a :type:`PropertyGroup`. Property groups contain a reference to a Dropbox file and a :type:`PropertyGroupTemplate`. Property groups are uniquely identified by the combination of their associated Dropbox file and template. The :type:`PropertyGroupTemplate` is a way of restricting the possible key names and value types of the data within a property group. The possible key names and value types are explicitly enumerated using :type:`PropertyFieldTemplate` objects. You can think of a property group template as a class definition for a particular key/value metadata object, and the property groups themselves as the instantiations of these objects. Templates are owned either by a user/app pair or team/app pair. Templates and their associated properties can't be accessed by any app other than the app that created them, and even then, only when the app is linked with the owner of the template (either a user or team). User-owned templates are accessed via the user-auth file_properties/templates/*_for_user endpoints, while team-owned templates are accessed via the team-auth file_properties/templates/*_for_team endpoints. Properties associated with either type of template can be accessed via the user-auth properties/* endpoints. Finally, properties can be accessed from a number of endpoints that return metadata, including `files/get_metadata`, and `files/list_folder`. Properties can also be added during upload, using `files/upload`.
POST
/2/file_properties/properties/add
Dropbox properties/add
POST
/2/file_properties/properties/overwrite
Dropbox properties/overwrite
POST
/2/file_properties/properties/remove
Dropbox properties/remove
POST
/2/file_properties/properties/search
Dropbox properties/search
POST
/2/file_properties/properties/search/continue
Dropbox properties/search/continue
POST
/2/file_properties/properties/update
Dropbox properties/update
POST
/2/file_properties/templates/add_for_team
Dropbox templates/add_for_team
POST
/2/file_properties/templates/add_for_user
Dropbox templates/add_for_user
POST
/2/file_properties/templates/get_for_team
Dropbox templates/get_for_team
POST
/2/file_properties/templates/get_for_user
Dropbox templates/get_for_user
POST
/2/file_properties/templates/list_for_team
Dropbox templates/list_for_team
POST
/2/file_properties/templates/list_for_user
Dropbox templates/list_for_user
POST
/2/file_properties/templates/remove_for_team
Dropbox templates/remove_for_team
POST
/2/file_properties/templates/remove_for_user
Dropbox templates/remove_for_user
POST
/2/file_properties/templates/update_for_team
Dropbox templates/update_for_team
POST
/2/file_properties/templates/update_for_user
Dropbox templates/update_for_user
Documentation
Specifications
Other Resources
Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/dropbox-file-properties-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Dropbox API Reference File Properties API
description: "The powerful, yet simple, Dropbox API allows you to manage and control content and team settings programmatically and extend Dropbox capabilities in new and powerful ways. This is a collection that includes requests to all endpoints in the Dropbox API. \n\nThe Dropbox API is divided in two groups of endpoints: User Endpoints and Business Endpoints. Operations that would most likely be executed by a user, such as file operations, are in the User Endpoints folder. Operations that would most likely be executed by a team administrator, such as adding users to groups, live in the Business Endpoints folder. \n\nIf you are new to Dropbox Business and Team Administration, please have a look at the [Dropobox Admin Guide](https://help.dropbox.com/guide/admin/how-to-get-started#dropbox-admin-guide). \n\nIf you want more information on how to use our API please refer to our [Developer Portal](https://www.dropbox.com/developers). \n\n# What's in the collection?\n\nThe endpoints are organized in the following folders:\n* account\n* auth\n* check\n* contacts\n* file_properties\n* file_requests\n* files\n* sharing\n* team\n* team_log\n* users\n\n# Authorization\n\n## OAuth 2.0 for API Access\nDropbox uses OAuth 2.0, an open specification, to authorize access to data. To get an OAuth token from Dropbox to enable Postman to access your Dropbox account via the API you’ll need to create a new app on the DBX Platform.\n\n## Creating an App on the DBX Platform\nNavigate to https://www.dropbox.com/developers/apps and select “Create app” \n1. Choose an API \n2. Choose the type of access you need \n3. Give your app a name \n4. Choose the Dropbox account that will own your app \n\nFor reference, please use the [Dropbox OAuth guide](https://www.dropbox.com/lp/developers/reference/oauth-guide) \n\n## Generating an Access Token\nOnce you select “Create app” a page will load that displays information about your newly created app. To generate an access token scroll down to “OAuth 2” and click “Generate” beneath “Generated access token.” The token will display as a long string of characters. Copy this token for use with the Postman Collection.\n\n## Adding an Access Token to the requests\nIn the Postman client, click on the three dots to the right of the collection name to \"View more actions.\"\n\n\n\nThen, click \"Edit.\"\n\nClick on the \"Variables\" tab and, in the row for the `access_token` variable, paste your access token in the `CURRENT VALUE` column. The default value is `your-access-token-here`.\n\n\n\nFor information on sessions and variables in Postman see the blog post at https://blog.postman.com/sessions-faq/.\n\n# Notes\n* Dropbox also has a Postman Collection in the API Network to help administrators with team management workflows. It is called [Dropbox Team Admin Workflows](). \n\n"
version: 1.0.0
servers:
- url: https://api.dropbox.com
security:
- bearerAuth: []
tags:
- name: File_properties
description: 'This namespace contains helpers for property and template metadata endpoints.
These endpoints enable you to tag arbitrary key/value data to Dropbox files.
The most basic unit in this namespace is the :type:`PropertyField`. These fields encapsulate the actual key/value data.
Fields are added to a Dropbox file using a :type:`PropertyGroup`. Property groups contain a reference to a Dropbox file and a :type:`PropertyGroupTemplate`. Property groups are uniquely identified by the combination of their associated Dropbox file and template.
The :type:`PropertyGroupTemplate` is a way of restricting the possible key names and value types of the data within a property group. The possible key names and value types are explicitly enumerated using :type:`PropertyFieldTemplate` objects.
You can think of a property group template as a class definition for a particular key/value metadata object, and the property groups themselves as the instantiations of these objects.
Templates are owned either by a user/app pair or team/app pair. Templates and their associated properties can''t be accessed by any app other than the app that created them, and even then, only when the app is linked with the owner of the template (either a user or team).
User-owned templates are accessed via the user-auth file_properties/templates/*_for_user endpoints, while team-owned templates are accessed via the team-auth file_properties/templates/*_for_team endpoints. Properties associated with either type of template can be accessed via the user-auth properties/* endpoints.
Finally, properties can be accessed from a number of endpoints that return metadata, including `files/get_metadata`, and `files/list_folder`. Properties can also be added during upload, using `files/upload`.
'
paths:
/2/file_properties/properties/add:
post:
tags:
- File_properties
summary: Dropbox properties/add
description: '[properties/add](https://www.dropbox.com/developers/documentation/http/documentation#file_properties-properties-add)
scope: `files.metadata.write`
Add property groups to a Dropbox file. See `templates/add_for_user` or `templates/add_for_team` to create new templates.'
requestBody:
content:
'*/*':
schema:
type: string
example: '"{\n \"path\": \"/my_awesome/word.docx\", \n \"property_groups\": [\n {\n \"template_id\": \"ptid:1a5n2i6d3OYEAAAAAAAAAYa\", \n \"fields\": [\n {\n \"name\": \"Security Policy\", \n \"value\": \"Confidential\"\n }\n ]\n }\n ]\n}"'
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
responses:
'200':
description: Successful response
content:
application/json: {}
/2/file_properties/properties/overwrite:
post:
tags:
- File_properties
summary: Dropbox properties/overwrite
description: '[properties/overwrite](https://www.dropbox.com/developers/documentation/http/documentation#file_properties-properties-overwrite)
scope: `files.metadata.write`
Overwrite property groups associated with a file. This endpoint should be used instead of `properties/update` when property groups are being updated via a "snapshot" instead of via a "delta". In other words, this endpoint will delete all omitted fields from a property group, whereas `properties/update` will only delete fields that are explicitly marked for deletion.'
requestBody:
content:
'*/*':
schema:
type: string
example: '"{\n \"path\": \"/my_awesome/word.docx\", \n \"property_groups\": [\n {\n \"template_id\": \"ptid:1a5n2i6d3OYEAAAAAAAAAYa\", \n \"fields\": [\n {\n \"name\": \"Security Policy\", \n \"value\": \"Confidential\"\n }\n ]\n }\n ]\n}"'
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
responses:
'200':
description: Successful response
content:
application/json: {}
/2/file_properties/properties/remove:
post:
tags:
- File_properties
summary: Dropbox properties/remove
description: '[properties/remove](https://www.dropbox.com/developers/documentation/http/documentation#file_properties-properties-remove)
scope: `files.metadata.write`
Permanently removes the specified property group from the file. To remove specific property field key value pairs, see `properties/update`. To update a template, see `templates/update_for_user` or `templates/update_for_team`. To remove a template, see `templates/remove_for_user` or `templates/remove_for_team`.'
requestBody:
content:
'*/*':
schema:
type: string
example: '"{\n \"path\": \"/my_awesome/word.docx\", \n \"property_template_ids\": [\n \"ptid:1a5n2i6d3OYEAAAAAAAAAYa\"\n ]\n}"'
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
responses:
'200':
description: Successful response
content:
application/json: {}
/2/file_properties/properties/search:
post:
tags:
- File_properties
summary: Dropbox properties/search
description: '[properties/search](https://www.dropbox.com/developers/documentation/http/documentation#file_properties-properties-search)
scope: `files.metadata.read`
Search across property templates for particular property field values.'
requestBody:
content:
'*/*':
schema:
type: string
example: '"{\n \"queries\": [\n {\n \"query\": \"Compliance Bot - Beta\", \n \"mode\": {\n \".tag\": \"field_name\", \n \"field_name\": \"Security\"\n }, \n \"logical_operator\": \"or_operator\"\n }\n ], \n \"template_filter\": \"filter_none\"\n}"'
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
- name: Authorization
in: header
schema:
type: string
example: Bearer YOUR_ACCESS_TOKEN
responses:
'200':
description: OK
headers:
X-Dropbox-Request-Id:
schema:
type: integer
example: '1234'
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
matches:
- id: id:a4ayc_80_OEAAAAAAAAAXz
path: /my_awesome/word.docx
is_deleted: false
property_groups:
- template_id: ptid:1a5n2i6d3OYEAAAAAAAAAYa
fields:
- name: Security Policy
value: Confidential
/2/file_properties/properties/search/continue:
post:
tags:
- File_properties
summary: Dropbox properties/search/continue
description: '[properties/search/continue](https://www.dropbox.com/developers/documentation/http/documentation#file_properties-properties-search-continue)
scope: `files.metadata.read`
Once a cursor has been retrieved from `properties/search`, use this to paginate through all search results.'
requestBody:
content:
'*/*':
schema:
type: string
example: '"{\n \"cursor\": \"ZtkX9_EHj3x7PMkVuFIhwKYXEpwpLwyxp9vMKomUhllil9q7eWiAu\"\n}"'
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
responses:
'200':
description: OK
headers:
X-Dropbox-Request-Id:
schema:
type: integer
example: '1234'
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
matches:
- id: id:a4ayc_80_OEAAAAAAAAAXz
path: /my_awesome/word.docx
is_deleted: false
property_groups:
- template_id: ptid:1a5n2i6d3OYEAAAAAAAAAYa
fields:
- name: Security Policy
value: Confidential
/2/file_properties/properties/update:
post:
tags:
- File_properties
summary: Dropbox properties/update
description: '[properties/update](https://www.dropbox.com/developers/documentation/http/documentation#file_properties-properties-update)
scope: `files.metadata.write`
Add, update or remove properties associated with the supplied file and templates. This endpoint should be used instead of `properties/overwrite` when property groups are being updated via a "delta" instead of via a "snapshot" . In other words, this endpoint will not delete any omitted fields from a property group, whereas `properties/overwrite` will delete any fields that are omitted from a property group.'
requestBody:
content:
'*/*':
schema:
type: string
example: '"{\n \"path\": \"/my_awesome/word.docx\", \n \"update_property_groups\": [\n {\n \"template_id\": \"ptid:1a5n2i6d3OYEAAAAAAAAAYa\", \n \"add_or_update_fields\": [\n {\n \"name\": \"Security Policy\", \n \"value\": \"Confidential\"\n }\n ], \n \"remove_fields\": []\n }\n ]\n}"'
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
responses:
'200':
description: Successful response
content:
application/json: {}
/2/file_properties/templates/add_for_team:
post:
tags:
- File_properties
summary: Dropbox templates/add_for_team
description: '[templates/add_for_team](https://www.dropbox.com/developers/documentation/http/teams#file_properties-templates-add_for_team)
scope: `files.team_metadata.write`
Add a template associated with a team. See `properties/add` to add properties to a file or folder.
Note: this endpoint will create team-owned templates.'
requestBody:
content:
'*/*':
schema:
type: string
example: '"{\n \"name\": \"Security\", \n \"description\": \"These properties describe how confidential this file or folder is.\", \n \"fields\": [\n {\n \"name\": \"Security Policy\", \n \"description\": \"This is the security policy of the file or folder described.\\nPolicies can be Confidential, Public or Internal.\", \n \"type\": \"string\"\n }\n ]\n}"'
security:
- bearerAuth: []
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
responses:
'200':
description: OK
headers:
X-Dropbox-Request-Id:
schema:
type: integer
example: '1234'
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
template_id: ptid:1a5n2i6d3OYEAAAAAAAAAYa
/2/file_properties/templates/add_for_user:
post:
tags:
- File_properties
summary: Dropbox templates/add_for_user
description: '[templates/add_for_user](https://www.dropbox.com/developers/documentation/http/documentation#file_properties-templates-add_for_user)
scope: `files.metadata.write`
Add a template associated with a user. See `properties/add` to add properties to a file. This endpoint can''t be called on a team member or admin''s behalf.'
requestBody:
content:
'*/*':
schema:
type: string
example: '"{\n \"name\": \"Security\", \n \"description\": \"These properties describe how confidential this file or folder is.\", \n \"fields\": [\n {\n \"name\": \"Security Policy\", \n \"description\": \"This is the security policy of the file or folder described.\\nPolicies can be Confidential, Public or Internal.\", \n \"type\": \"string\"\n }\n ]\n}"'
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
responses:
'200':
description: OK
headers:
X-Dropbox-Request-Id:
schema:
type: integer
example: '1234'
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
template_id: ptid:1a5n2i6d3OYEAAAAAAAAAYa
/2/file_properties/templates/get_for_team:
post:
tags:
- File_properties
summary: Dropbox templates/get_for_team
description: '[templates/get_for_team](https://www.dropbox.com/developers/documentation/http/teams#file_properties-templates-get_for_team)
scope: `files.team_metadata.write`
Get the schema for a specified template.'
requestBody:
content:
'*/*':
schema:
type: string
example: '"{\n \"template_id\": \"ptid:1a5n2i6d3OYEAAAAAAAAAYa\"\n}"'
security:
- bearerAuth: []
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
responses:
'200':
description: OK
headers:
X-Dropbox-Request-Id:
schema:
type: integer
example: '1234'
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
name: Security
description: These properties describe how confidential this file or folder is.
fields:
- name: Security Policy
description: 'This is the security policy of the file or folder described.
Policies can be Confidential, Public or Internal.'
type:
.tag: string
/2/file_properties/templates/get_for_user:
post:
tags:
- File_properties
summary: Dropbox templates/get_for_user
description: '[templates/get_for_user](https://www.dropbox.com/developers/documentation/http/documentation#file_properties-templates-get_for_user)
scope: `files.metadata.read`
Get the schema for a specified template. This endpoint can''t be called on a team member or admin''s behalf.'
requestBody:
content:
'*/*':
schema:
type: string
example: '"{\n \"template_id\": \"ptid:1a5n2i6d3OYEAAAAAAAAAYa\"\n}"'
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
responses:
'200':
description: OK
headers:
X-Dropbox-Request-Id:
schema:
type: integer
example: '1234'
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
name: Security
description: These properties describe how confidential this file or folder is.
fields:
- name: Security Policy
description: 'This is the security policy of the file or folder described.
Policies can be Confidential, Public or Internal.'
type:
.tag: string
/2/file_properties/templates/list_for_team:
post:
tags:
- File_properties
summary: Dropbox templates/list_for_team
description: '[templates/list_for_team](https://www.dropbox.com/developers/documentation/http/teams#file_properties-templates-list_for_team)
scope: `files.team_metadata.write`
Get the template identifiers for a team. To get the schema of each template use `templates/get_for_team`. '
security:
- bearerAuth: []
responses:
'200':
description: OK
headers:
X-Dropbox-Request-Id:
schema:
type: integer
example: '1234'
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
template_ids:
- ptid:1a5n2i6d3OYEAAAAAAAAAYa
/2/file_properties/templates/list_for_user:
post:
tags:
- File_properties
summary: Dropbox templates/list_for_user
description: '[templates/list_for_user](https://www.dropbox.com/developers/documentation/http/documentation#file_properties-templates-list_for_user)
scope: `files.metadata.read`
Get the template identifiers for a team. To get the schema of each template use `templates/get_for_user`. This endpoint can''t be called on a team member or admin''s behalf. '
responses:
'200':
description: OK
headers:
X-Dropbox-Request-Id:
schema:
type: integer
example: '1234'
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
template_ids:
- ptid:1a5n2i6d3OYEAAAAAAAAAYa
/2/file_properties/templates/remove_for_team:
post:
tags:
- File_properties
summary: Dropbox templates/remove_for_team
description: '[templates/remove_for_team](https://www.dropbox.com/developers/documentation/http/teams#file_properties-templates-remove_for_team)
scope: `files.team_metadata.write`
Permanently removes the specified template created from `templates/add_for_user`. All properties associated with the template will also be removed. This action cannot be undone.'
requestBody:
content:
'*/*':
schema:
type: string
example: '"{\n \"template_id\": \"ptid:1a5n2i6d3OYEAAAAAAAAAYa\"\n}"'
security:
- bearerAuth: []
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
responses:
'200':
description: Successful response
content:
application/json: {}
/2/file_properties/templates/remove_for_user:
post:
tags:
- File_properties
summary: Dropbox templates/remove_for_user
description: '[templates/remove_for_user](https://www.dropbox.com/developers/documentation/http/documentation#file_properties-templates-remove_for_user)
scope: `files.metadata.write`
Permanently removes the specified template created from `templates/add_for_user`. All properties associated with the template will also be removed. This action cannot be undone.'
requestBody:
content:
'*/*':
schema:
type: string
example: '"{\n \"template_id\": \"ptid:1a5n2i6d3OYEAAAAAAAAAYa\"\n}"'
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
responses:
'200':
description: Successful response
content:
application/json: {}
/2/file_properties/templates/update_for_team:
post:
tags:
- File_properties
summary: Dropbox templates/update_for_team
description: '[templates/update_for_team](https://www.dropbox.com/developers/documentation/http/teams#file_properties-templates-update_for_team)
scope: `files.team_metadata.write`
Update a template associated with a team. This route can update the template name, the template description and add optional properties to templates.'
requestBody:
content:
'*/*':
schema:
type: string
example: '"{\n \"template_id\": \"ptid:1a5n2i6d3OYEAAAAAAAAAYa\", \n \"name\": \"New Security Template Name\", \n \"description\": \"These properties will describe how confidential this file or folder is.\", \n \"add_fields\": [\n {\n \"name\": \"Security Policy\", \n \"description\": \"This is the security policy of the file or folder described.\\nPolicies can be Confidential, Public or Internal.\", \n \"type\": \"string\"\n }\n ]\n}"'
security:
- bearerAuth: []
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
responses:
'200':
description: OK
headers:
X-Dropbox-Request-Id:
schema:
type: integer
example: '1234'
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
template_id: ptid:1a5n2i6d3OYEAAAAAAAAAYa
/2/file_properties/templates/update_for_user:
post:
tags:
- File_properties
summary: Dropbox templates/update_for_user
description: '[templates/update_for_user](https://www.dropbox.com/developers/documentation/http/documentation#file_properties-templates-update_for_user)
scope: `files.metadata.write`
Update a template associated with a user. This route can update the template name, the template description and add optional properties to templates. This endpoint can''t be called on a team member or admin''s behalf.'
requestBody:
content:
'*/*':
schema:
type: string
example: '"{\n \"template_id\": \"ptid:1a5n2i6d3OYEAAAAAAAAAYa\", \n \"name\": \"New Security Template Name\", \n \"description\": \"These properties will describe how confidential this file or folder is.\", \n \"add_fields\": [\n {\n \"name\": \"Security Policy\", \n \"description\": \"This is the security policy of the file or folder described.\\nPolicies can be Confidential, Public or Internal.\", \n \"type\": \"string\"\n }\n ]\n}"'
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
responses:
'200':
description: OK
headers:
X-Dropbox-Request-Id:
schema:
type: integer
example: '1234'
Content-Type:
schema:
type: string
example: application/json
content:
application/json:
schema:
type: object
example:
template_id: ptid:1a5n2i6d3OYEAAAAAAAAAYa
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer