---
title: "API Endpoints Reference | DreamFactory Docs"
source: "https://docs.dreamfactory.com/api-reference/api-endpoints"
canonical_url: "https://docs.dreamfactory.com/api-reference/api-endpoints"
converted_at: "2026-04-05T13:50:43.520Z"
format: "markdown"
converted_by: "html-to-md-ai"
---
Complete reference for all DreamFactory REST API endpoints.

## Base URL[​](#base-url)

All endpoints use the base URL format:

```
https://{your-instance}/api/v2/{service_name}
```

## Authentication[​](#authentication)

Include your API key or session token in request headers:

```
X-DreamFactory-API-Key: your-api-keyX-DreamFactory-Session-Token: your-session-token
```

---

## Table Operations[​](#table-operations)

### `GET /api/v2/_table/{table_name}`[​](#get-apiv2_tabletable_name)

Retrieve records from a table.

**Parameters:**

ParameterTypeDescription`filter`stringFilter expression (see [Query Parameters](/api-reference/query-parameters))`limit`integerMaximum records to return`offset`integerNumber of records to skip`order`stringSort order (e.g., `name ASC`)`fields`stringComma-separated field names`related`stringRelated tables to include`include_count`booleanInclude total record count

**Example Request:**

```
curl -X GET "https://example.com/api/v2/db/_table/contacts?limit=10&order=name%20ASC" \  -H "X-DreamFactory-API-Key: your-api-key"
```

**Example Response:**

```
{  "resource": [    {      "id": 1,      "name": "John Doe",      "email": "[email protected]"    }  ]}
```

---

### `POST /api/v2/_table/{table_name}`[​](#post-apiv2_tabletable_name)

Create one or more records.

**Request Body:**

```
{  "resource": [    {      "name": "Jane Smith",      "email": "[email protected]"    }  ]}
```

**Example Request:**

```
curl -X POST "https://example.com/api/v2/db/_table/contacts" \  -H "X-DreamFactory-API-Key: your-api-key" \  -H "Content-Type: application/json" \  -d '{"resource": [{"name": "Jane Smith", "email": "[email protected]"}]}'
```

**Example Response:**

```
{  "resource": [    {      "id": 2    }  ]}
```

---

### `PUT /api/v2/_table/{table_name}`[​](#put-apiv2_tabletable_name)

Replace records (full update). Requires primary key in each record.

**Request Body:**

```
{  "resource": [    {      "id": 1,      "name": "John Updated",      "email": "[email protected]"    }  ]}
```

**Example Request:**

```
curl -X PUT "https://example.com/api/v2/db/_table/contacts" \  -H "X-DreamFactory-API-Key: your-api-key" \  -H "Content-Type: application/json" \  -d '{"resource": [{"id": 1, "name": "John Updated", "email": "[email protected]"}]}'
```

---

### `PATCH /api/v2/_table/{table_name}`[​](#patch-apiv2_tabletable_name)

Partial update of records. Only specified fields are modified.

**Request Body:**

```
{  "resource": [    {      "id": 1,      "email": "[email protected]"    }  ]}
```

**Example Request:**

```
curl -X PATCH "https://example.com/api/v2/db/_table/contacts" \  -H "X-DreamFactory-API-Key: your-api-key" \  -H "Content-Type: application/json" \  -d '{"resource": [{"id": 1, "email": "[email protected]"}]}'
```

---

### `DELETE /api/v2/_table/{table_name}`[​](#delete-apiv2_tabletable_name)

Delete records by IDs or filter.

**By IDs:**

```
curl -X DELETE "https://example.com/api/v2/db/_table/contacts?ids=1,2,3" \  -H "X-DreamFactory-API-Key: your-api-key"
```

**By Filter:**

```
curl -X DELETE "https://example.com/api/v2/db/_table/contacts?filter=status%3D%27inactive%27" \  -H "X-DreamFactory-API-Key: your-api-key"
```

---

## Schema Operations[​](#schema-operations)

### `GET /api/v2/_schema`[​](#get-apiv2_schema)

List all tables in the database.

**Example Request:**

```
curl -X GET "https://example.com/api/v2/db/_schema" \  -H "X-DreamFactory-API-Key: your-api-key"
```

**Example Response:**

```
{  "resource": [    {"name": "contacts"},    {"name": "orders"},    {"name": "products"}  ]}
```

---

### `GET /api/v2/_schema/{table_name}`[​](#get-apiv2_schematable_name)

Get table structure and field definitions.

**Example Request:**

```
curl -X GET "https://example.com/api/v2/db/_schema/contacts" \  -H "X-DreamFactory-API-Key: your-api-key"
```

**Example Response:**

```
{  "name": "contacts",  "label": "Contacts",  "field": [    {      "name": "id",      "type": "integer",      "db_type": "int",      "is_primary_key": true,      "auto_increment": true    },    {      "name": "name",      "type": "string",      "db_type": "varchar(255)",      "allow_null": false    }  ]}
```

---

### `POST /api/v2/_schema`[​](#post-apiv2_schema)

Create a new table.

**Request Body:**

```
{  "resource": [    {      "name": "new_table",      "label": "New Table",      "field": [        {          "name": "id",          "type": "id"        },        {          "name": "name",          "type": "string",          "length": 255        }      ]    }  ]}
```

---

### `PUT /api/v2/_schema/{table_name}`[​](#put-apiv2_schematable_name)

Update table structure (add/modify columns).

---

### `DELETE /api/v2/_schema/{table_name}`[​](#delete-apiv2_schematable_name)

Drop a table from the database.

```
curl -X DELETE "https://example.com/api/v2/db/_schema/old_table" \  -H "X-DreamFactory-API-Key: your-api-key"
```

---

## Stored Procedures[​](#stored-procedures)

### `GET /api/v2/_proc/{procedure_name}`[​](#get-apiv2_procprocedure_name)

Execute a stored procedure (no parameters or IN parameters only).

**Example Request:**

```
curl -X GET "https://example.com/api/v2/db/_proc/get_active_users" \  -H "X-DreamFactory-API-Key: your-api-key"
```

---

### `POST /api/v2/_proc/{procedure_name}`[​](#post-apiv2_procprocedure_name)

Execute a stored procedure with parameters.

**Request Body:**

```
{  "params": [    {"name": "user_id", "value": 123},    {"name": "status", "value": "active"}  ]}
```

**Example Request:**

```
curl -X POST "https://example.com/api/v2/db/_proc/update_user_status" \  -H "X-DreamFactory-API-Key: your-api-key" \  -H "Content-Type: application/json" \  -d '{"params": [{"name": "user_id", "value": 123}, {"name": "status", "value": "active"}]}'
```

---

## Stored Functions[​](#stored-functions)

### `GET /api/v2/_func/{function_name}`[​](#get-apiv2_funcfunction_name)

Execute a stored function.

```
curl -X GET "https://example.com/api/v2/db/_func/calculate_total?order_id=456" \  -H "X-DreamFactory-API-Key: your-api-key"
```

---

### `POST /api/v2/_func/{function_name}`[​](#post-apiv2_funcfunction_name)

Execute a stored function with complex parameters.

---

## System APIs[​](#system-apis)

### Service Management[​](#service-management)

#### `GET /api/v2/system/service`[​](#get-apiv2systemservice)

List all configured services.

```
curl -X GET "https://example.com/api/v2/system/service" \  -H "X-DreamFactory-API-Key: your-api-key"
```

#### `POST /api/v2/system/service`[​](#post-apiv2systemservice)

Create a new service.

#### `PUT /api/v2/system/service/{id}`[​](#put-apiv2systemserviceid)

Update a service configuration.

#### `DELETE /api/v2/system/service/{id}`[​](#delete-apiv2systemserviceid)

Delete a service.

---

### Role Management[​](#role-management)

#### `GET /api/v2/system/role`[​](#get-apiv2systemrole)

List all roles.

```
curl -X GET "https://example.com/api/v2/system/role" \  -H "X-DreamFactory-API-Key: your-api-key"
```

#### `POST /api/v2/system/role`[​](#post-apiv2systemrole)

Create a new role.

**Request Body:**

```
{  "resource": [    {      "name": "read_only",      "description": "Read-only access to database",      "is_active": true    }  ]}
```

#### `PUT /api/v2/system/role/{id}`[​](#put-apiv2systemroleid)

Update a role.

#### `DELETE /api/v2/system/role/{id}`[​](#delete-apiv2systemroleid)

Delete a role.

---

### User Management[​](#user-management)

#### `GET /api/v2/system/user`[​](#get-apiv2systemuser)

List all users (admin only).

#### `POST /api/v2/system/user`[​](#post-apiv2systemuser)

Create a new user (admin only).

**Request Body:**

```
{  "resource": [    {      "email": "[email protected]",      "password": "SecurePassword123!",      "first_name": "New",      "last_name": "User"    }  ]}
```

#### `PUT /api/v2/system/user/{id}`[​](#put-apiv2systemuserid)

Update a user.

#### `DELETE /api/v2/system/user/{id}`[​](#delete-apiv2systemuserid)

Delete a user.

---

### Application Management[​](#application-management)

#### `GET /api/v2/system/app`[​](#get-apiv2systemapp)

List all applications.

#### `POST /api/v2/system/app`[​](#post-apiv2systemapp)

Create a new application.

#### `PUT /api/v2/system/app/{id}`[​](#put-apiv2systemappid)

Update an application.

#### `DELETE /api/v2/system/app/{id}`[​](#delete-apiv2systemappid)

Delete an application.

---

## User APIs[​](#user-apis)

### Session Management[​](#session-management)

>
> ⚠️ **Admin vs regular user login use different endpoints.** See [Authentication](/api-reference/authentication) for the full breakdown.
>
>
>

#### `POST /api/v2/system/admin/session` — Admin Login[​](#post-apiv2systemadminsession--admin-login)

Requires `X-DreamFactory-API-Key` header and `Content-Type: application/json`.

```
curl -X POST "https://example.com/api/v2/system/admin/session" \  -H "Content-Type: application/json" \  -H "X-DreamFactory-API-Key: your-admin-app-api-key" \  -d '{"email":"[email protected]","password":"yourpassword"}'
```

#### `POST /api/v2/user/session` — Regular User Login[​](#post-apiv2usersession--regular-user-login)

```
curl -X POST "https://example.com/api/v2/user/session" \  -H "Content-Type: application/json" \  -H "X-DreamFactory-API-Key: your-app-api-key" \  -d '{"email":"[email protected]","password":"yourpassword"}'
```

**Response (both endpoints):**

```
{  "session_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",  "id": 1,  "name": "Admin User",  "email": "[email protected]",  "is_sys_admin": true,  "token_expiry_date": "2026-02-19 19:45:18"}
```

#### `GET /api/v2/system/admin/session`[​](#get-apiv2systemadminsession)

Refresh token and get current session info.

#### `DELETE /api/v2/system/admin/session`[​](#delete-apiv2systemadminsession)

Logout and destroy session.

```
curl -X DELETE "https://example.com/api/v2/system/admin/session" \  -H "X-DreamFactory-API-Key: your-api-key" \  -H "X-DreamFactory-Session-Token: your-session-token"
```

---

### User Registration[​](#user-registration)

#### `POST /api/v2/user/register`[​](#post-apiv2userregister)

Register a new user (if open registration is enabled).

**Request Body:**

```
{  "email": "[email protected]",  "password": "SecurePassword123!",  "first_name": "John",  "last_name": "Doe"}
```

---

### Password Management[​](#password-management)

#### `POST /api/v2/user/password`[​](#post-apiv2userpassword)

Request password reset or change password.

**Request Reset Email:**

```
{  "email": "[email protected]"}
```

**Change Password (authenticated):**

```
{  "old_password": "current-password",  "new_password": "new-secure-password"}
```

---

## Response Wrapper[​](#response-wrapper)

All responses are wrapped in a `resource` array for consistency:

```
{  "resource": [    { ... },    { ... }  ]}
```

Single record responses may omit the wrapper depending on the request.

---

## See Also[​](#see-also)

- [Query Parameters](/api-reference/query-parameters) - Filter, sort, and paginate results

- [Error Codes](/api-reference/error-codes) - HTTP status codes and error handling