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.
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.
paths:
/2/file_properties/properties/add:
post:
tags:
- File_properties
summary: Dropbox properties/add
description: '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: {}
operationId: post2FilePropertiesPropertiesAdd
x-operation-id-source: derived
/2/file_properties/properties/overwrite:
post:
tags:
- File_properties
summary: Dropbox properties/overwrite
description: '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: {}
operationId: post2FilePropertiesPropertiesOverwrite
x-operation-id-source: derived
/2/file_properties/properties/remove:
post:
tags:
- File_properties
summary: Dropbox properties/remove
description: '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: {}
operationId: post2FilePropertiesPropertiesRemove
x-operation-id-source: derived
/2/file_properties/properties/search:
post:
tags:
- File_properties
summary: Dropbox properties/search
description: '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
operationId: post2FilePropertiesPropertiesSearch
x-operation-id-source: derived
/2/file_properties/properties/search/continue:
post:
tags:
- File_properties
summary: Dropbox properties/search/continue
description: '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
operationId: post2FilePropertiesPropertiesSearchContinue
x-operation-id-source: derived
/2/file_properties/properties/update:
post:
tags:
- File_properties
summary: Dropbox properties/update
description: '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: {}
operationId: post2FilePropertiesPropertiesUpdate
x-operation-id-source: derived
/2/file_properties/templates/add_for_team:
post:
tags:
- File_properties
summary: Dropbox templates/add_for_team
description: '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
operationId: post2FilePropertiesTemplatesAddForTeam
x-operation-id-source: derived
/2/file_properties/templates/add_for_user:
post:
tags:
- File_properties
summary: Dropbox templates/add_for_user
description: '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
operationId: post2FilePropertiesTemplatesAddForUser
x-operation-id-source: derived
/2/file_properties/templates/get_for_team:
post:
tags:
- File_properties
summary: Dropbox templates/get_for_team
description: '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
operationId: post2FilePropertiesTemplatesGetForTeam
x-operation-id-source: derived
/2/file_properties/templates/get_for_user:
post:
tags:
- File_properties
summary: Dropbox templates/get_for_user
description: '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
operationId: post2FilePropertiesTemplatesGetForUser
x-operation-id-source: derived
/2/file_properties/templates/list_for_team:
post:
tags:
- File_properties
summary: Dropbox templates/list_for_team
description: '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
operationId: post2FilePropertiesTemplatesListForTeam
x-operation-id-source: derived
/2/file_properties/templates/list_for_user:
post:
tags:
- File_properties
summary: Dropbox templates/list_for_user
description: '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
operationId: post2FilePropertiesTemplatesListForUser
x-operation-id-source: derived
/2/file_properties/templates/remove_for_team:
post:
tags:
- File_properties
summary: Dropbox templates/remove_for_team
description: '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: {}
operationId: post2FilePropertiesTemplatesRemoveForTeam
x-operation-id-source: derived
/2/file_properties/templates/remove_for_user:
post:
tags:
- File_properties
summary: Dropbox templates/remove_for_user
description: '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: {}
operationId: post2FilePropertiesTemplatesRemoveForUser
x-operation-id-source: derived
/2/file_properties/templates/update_for_team:
post:
tags:
- File_properties
summary: Dropbox templates/update_for_team
description: '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
operationId: post2FilePropertiesTemplatesUpdateForTeam
x-operation-id-source: derived
/2/file_properties/templates/update_for_user:
post:
tags:
- File_properties
summary: Dropbox templates/update_for_user
description: '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
operationId: post2FilePropertiesTemplatesUpdateForUser
x-operation-id-source: derived
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer