Skip to content

DocType Registry

Reference for discovering and exploring DocTypes on Frappe/ERPNext sites.

Core Frappe Modules (Standard)

These modules exist on every Frappe site:

ModuleTypical DocTypesPurpose
CoreDocType, User, Role, File, Report, PageFramework foundation
CustomCustom Field, Client Script, Property SetterCustomization layer
DeskToDo, Dashboard, Kanban Board, WorkspaceUser interface
EmailEmail Account, Notification, Email TemplateEmail system
IntegrationsWebhook, OAuth Client, Connected AppThird-party integrations
PrintingPrint Format, Letter HeadPrint templates
WebsiteWeb Page, Web Form, Blog PostWebsite/portal
WorkflowWorkflow, Workflow State, Workflow ActionDocument workflows
AutomationAssignment Rule, Auto RepeatAutomation rules
ContactsAddress, ContactContact management
GeoCountry, CurrencyGeographic data

Quick DocType Discovery Commands

Find DocTypes by keyword

python
# In bench console
frappe.get_all("DocType",
    filters={"name": ["like", "%Invoice%"]},
    fields=["name", "module", "issingle"],
    limit_page_length=0
)

Find custom app DocTypes

python
frappe.get_all("DocType",
    filters={"module": "My Custom Module"},
    fields=["name", "issingle", "istable"],
    limit_page_length=0
)

Check DocType metadata

python
meta = frappe.get_meta("Sales Invoice")
print(f"Fields: {len(meta.fields)}")
print(f"Is Submittable: {meta.is_submittable}")
print(f"Is Child Table: {meta.istable}")
for df in meta.fields:
    print(f"  {df.fieldname} ({df.fieldtype})" + (" *" if df.reqd else ""))

Find child tables of a DocType

python
meta = frappe.get_meta("Sales Invoice")
for df in meta.fields:
    if df.fieldtype == "Table":
        print(f"  {df.fieldname}{df.options}")