A Step-by-Step Guide to Frappe REST API Permissions and Data Filtering


The default API URL to access data is structured as:
[appURL]:[PortNumber]/api/v2/document/[docTypeName]Let’s construct a URL based on this rule:
http://trysite:8000/api/v2/document/DriverBy default, this will return a 403 Forbidden error, indicating a permissions issue.

To gain access, follow these steps:
User > [userName]. API Access section. API Secret. Note that the API Secret will only be generated once, so keep it safe.
You will need both the API Key and API Secret to make a successful request.
Authorization: token [APIkey]:[APIsecret]
To filter specific fields from the response, the structure of the URL is as follows:
APIEndpoint?fields=["field_name"]Example:
http://batsite:8000/api/v2/document/Driver?fields=["first_name","last_name"]To retrieve all fields from a document, use the wildcard * in the fields parameter:
http://batsite:8000/api/v2/document/Driver?fields=["*"]To fetch a specific document by its unique ID, construct the endpoint as follows:
APIEndpoint/document/[docTypeName]/[SingleDocID]Example:
http://batsite:8000/api/v2/document/Driver/DR-0001To create a new document, construct the endpoint using the docType and pass the required data in JSON format.
http://batsite:8000/api/v2/document/DriverPass the body parameters as JSON:
{
"first_name": "Rafique",
"last_name": "Ullah",
"license_number": "TDR3445"
} 
What happens when you create a DocType in Frappe? We break down the .json, .js, and .py files generated by the framework and how to use them.

Getting Permission denied in Frappe? Learn why it happens and how to fix file ownership issues in your bench with one simple command.

Stop fighting Git permissions in WSL. This post explains the root cause of the 'Permission Denied' error and shows you the permanent fix.