---
title: "Script API"
space: "Framework"
url: "https://docs.frappe.io/framework/user/en/desk/scripting/script-api"
updated: "2026-02-17"
---

List of restricted commands that be called in Frappe Framework Server Script, Print Formats and Script Reports

**Note:** This is only applicable for in-app scripting. If you want more features, you will have to create an "Application" and write the event handlers inside Python Modules

### Python Modules

Following python modules are available

#### `json`

Python standard module `json`

### Formatting

#### _ (Translate)

Translate a string

Example: `_("This is translatable")`

#### frappe.format

Format a value based on its datatype

Example: `frappe.format_value(value, dict(fieldtype='Currency'))`

#### frappe.date_format

Format as default date format

#### frappe.format_date

Returns date as "1st September 2019"

### Session

#### frappe.form_dict

Form / request parameters

Example: Request parameter `/page?name="test"` can be accesssed as `frappe.form_dict.name`

#### frappe.request

Request object

#### frappe.response

Response object

#### frappe.session.user

Current user

#### frappe.session.csrf_token

CSRF token of the current session

#### frappe.user

Current user

#### frappe.get_fullname

Returns fullname of the current user

#### frappe.get_gravatar

Gets the user display image from `frappe.utils.get_gravatar_url`

#### frappe.full_name

Fullname of the current user

### Documents (ORM)

Document access and editing

#### frappe.get_meta

Get metadata object

#### frappe.new_doc

Create a new Document record.

#### frappe.get_doc

Get Document. You can also save or execute any method exposed by the document.

Example: `frappe.get_doc("User", frappe.session.user)`

#### frappe.get_last_doc

Get the last Document of a particular DocType with a given set of filters. Defaults to last created.

Example: `frappe.get_last_doc("User", filters={"name": ("like", "%@apple.com")})`

#### frappe.get_cached_doc

Get Document (or cached)

#### frappe.get_mapped_doc

#### frappe.rename_doc

#### frappe.delete_doc

#### frappe.get_system_settings

Get system default settings

### Database

Database access API

#### frappe.db.get_list

Get list of record filtered by current user's permissions

Example: `frappe.db.get_list("Customer")` will return list of customers

#### frappe.db.get_all

Get list of all records

#### frappe.db.sql

Run a SELECT query

Example: `frappe.db.sql("select name from Customer where name like 'm%'")`

#### frappe.db.get_value

Get a value from a record

Example: `frappe.db.get_value("User", frappe.session.user, "first_name")`

#### frappe.db.get_single_value

Get value from a single type document

Example: `frappe.db.get_single_value("System Settings", "default_currency")`

#### frappe.db.get_default

Get default value

#### frappe.db.escape

Sanitize value for database queries to prevent SQL injection

#### frappe.db.set_value

Set a value

#### frappe.db.exists

Checks for existence of a document. Returns `name` of the document if exists else `None`.

#### frappe.db.commit

Allow users to make explicit commits in server scripts like custom scheduler scripts.  
Note: This won't work in any DocType Event server scripts

#### frappe.db.rollback

Allow users to rollback changes via server scripts.  
Note: This won't work in any DocType Event server scripts

### Query Builder

#### frappe.qb

Query builder API to run SELECT queries.

Example: `frappe.qb.from_("Task").select("*").run()`

### Utilities

Utility methods and functions

#### run_script

Run a server script (return values in `frappe.flags`)

#### frappe.msgprint

Show a modal on the server side after as a part of the response.

Example: `frappe.msgprint("Hello")`

#### frappe.get_hooks

Get application hooks

#### frappe.utils

Methods in frappe.utils

#### frappe.render_template

Render a Jinja template

#### frappe.get_url

Get url of the current site via `frappe.utils.get_url`

#### socketio_port

Port for socketio

#### style.border_color

Returns '#d1d8dd'

#### guess_mimetype

Returns mimetypes.guess_type

#### html2text

Encode HTML as text (markdown)

#### dev_server

True if in developer mode

#### frappe.log_error

Generate Error Log with a traceback

#### FrappeClient

Connect to a Frappe site using a requests session

### API

Make external API calls from Frappe.

#### frappe.make_get_request

Make a GET request.

Example: `frappe.make_get_request('https://example.com')`

#### frappe.make_post_request

Make a POST request.

Example: `frappe.make_post_request('https://example.com', data={'username: 'test'})`

#### frappe.make_put_request

Make a PUT request.

Example: `frappe.make_put_request('https://example.com', headers={'Auth': 'Bearer xyz'})`

### Email

#### frappe.sendmail

Send an email. [See docs](https://frappeframework.com/docs/v14/user/en/api/utils#frappesendmail)

Example: `frappe.sendmail(recipients=['test@example.com'], sender='sender@example.com', subject='My Subject', message='<p>Hello</p>')`

