OpenAPI Specification
openapi: 3.1.0
info:
title: DreamFactory System Admin API
description: The DreamFactory System API provides administrative management capabilities for DreamFactory instances. It allows administrators to manage services, apps, roles, users, CORS configurations, email templates, environment settings, lookups, events, scripts, and more. All system resources are accessible under the /api/v2/system/ base path. Authentication requires either an X-DreamFactory-Session-Token header (for system admins) or an X-DreamFactory-API-Key header (for users with appropriate permissions).
version: 2.0.0
contact:
name: DreamFactory Support
url: https://www.dreamfactory.com/support
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0
termsOfService: https://www.dreamfactory.com/terms-of-use
servers:
- url: https://{instance}/api/v2
description: DreamFactory instance
variables:
instance:
default: example.dreamfactory.com
description: Your DreamFactory instance hostname
security:
- sessionToken: []
- apiKey: []
tags:
- name: Admin
description: System administrator management
paths:
/system/admin:
get:
operationId: listAdmins
summary: DreamFactory List administrators
description: Retrieve a list of system administrators.
tags:
- Admin
parameters:
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/filter'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/offset'
- $ref: '#/components/parameters/order'
- $ref: '#/components/parameters/related'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AdminListResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'500':
$ref: '#/components/responses/InternalError'
post:
operationId: createAdmin
summary: DreamFactory Create administrator
description: Create one or more system administrators.
tags:
- Admin
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AdminRequest'
responses:
'201':
description: Admin created
content:
application/json:
schema:
$ref: '#/components/schemas/AdminResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'500':
$ref: '#/components/responses/InternalError'
/system/admin/{id}:
get:
operationId: getAdmin
summary: DreamFactory Get administrator
description: Retrieve a specific administrator by ID.
tags:
- Admin
parameters:
- $ref: '#/components/parameters/id'
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/related'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AdminResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalError'
patch:
operationId: updateAdmin
summary: DreamFactory Update administrator
description: Update a specific administrator by ID.
tags:
- Admin
parameters:
- $ref: '#/components/parameters/id'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AdminRequest'
responses:
'200':
description: Admin updated
content:
application/json:
schema:
$ref: '#/components/schemas/AdminResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalError'
delete:
operationId: deleteAdmin
summary: DreamFactory Delete administrator
description: Delete a specific administrator by ID.
tags:
- Admin
parameters:
- $ref: '#/components/parameters/id'
responses:
'200':
description: Admin deleted
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalError'
components:
parameters:
id:
name: id
in: path
required: true
description: Resource identifier.
schema:
type: integer
related:
name: related
in: query
description: Comma-delimited list of related resources to include.
schema:
type: string
limit:
name: limit
in: query
description: Maximum number of records to return.
schema:
type: integer
default: 0
filter:
name: filter
in: query
description: SQL-like filter to limit results.
schema:
type: string
fields:
name: fields
in: query
description: Comma-delimited list of fields to return.
schema:
type: string
order:
name: order
in: query
description: SQL-like order containing field and direction.
schema:
type: string
offset:
name: offset
in: query
description: Number of records to skip for pagination.
schema:
type: integer
default: 0
responses:
NotFound:
description: Resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
InternalError:
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
Unauthorized:
description: Unauthorized - invalid or missing session token or API key
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
BadRequest:
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
schemas:
AdminListResponse:
type: object
properties:
resource:
type: array
items:
$ref: '#/components/schemas/AdminResponse'
AdminRequest:
type: object
properties:
name:
type: string
description: Display name of the administrator.
first_name:
type: string
description: First name.
last_name:
type: string
description: Last name.
email:
type: string
format: email
description: Email address (used for login).
password:
type: string
description: Password for the administrator.
is_active:
type: boolean
description: Whether the admin account is active.
required:
- email
- name
AdminResponse:
type: object
properties:
id:
type: integer
name:
type: string
first_name:
type: string
last_name:
type: string
email:
type: string
format: email
is_active:
type: boolean
created_date:
type: string
format: date-time
last_modified_date:
type: string
format: date-time
ErrorResponse:
type: object
properties:
error:
type: object
properties:
code:
type: integer
description: Error code.
message:
type: string
description: Error message.
context:
type: object
description: Additional error context.
SuccessResponse:
type: object
properties:
success:
type: boolean
securitySchemes:
sessionToken:
type: apiKey
name: X-DreamFactory-Session-Token
in: header
description: Session token obtained after admin login.
apiKey:
type: apiKey
name: X-DreamFactory-API-Key
in: header
description: API key associated with a registered application.
externalDocs:
description: DreamFactory Documentation
url: https://guide.dreamfactory.com/docs/