OpenAPI Specification
openapi: 3.0.3
info:
title: PDFfiller REST Applications API
description: 'The PDFfiller REST API allows developers to build applications that interact with PDFfiller over HTTP. It supports operations for managing documents, templates, fillable forms, fields, annotations, and eSignature requests. Authentication uses OAuth 2.0 with password or client credentials grant types. PDFfiller is part of the airSlate family of products.
'
version: '2.0'
contact:
name: PDFfiller Developer Support
url: https://developers.pdffiller.com/
license:
name: Proprietary
url: https://www.pdffiller.com/en/terms.htm
servers:
- url: https://api.pdffiller.com/v2
description: PDFfiller API v2
security:
- oauth2: []
tags:
- name: Applications
description: Manage OAuth applications
paths:
/applications:
get:
operationId: listApplications
summary: List all applications
description: Returns a list of all OAuth applications for the authenticated user.
tags:
- Applications
parameters:
- $ref: '#/components/parameters/per_page'
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/order_by'
- $ref: '#/components/parameters/order'
responses:
'200':
description: List of applications
content:
application/json:
schema:
$ref: '#/components/schemas/ApplicationList'
'401':
$ref: '#/components/responses/Unauthorized'
post:
operationId: createApplication
summary: Create an application
description: Creates a new OAuth application.
tags:
- Applications
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ApplicationInput'
responses:
'201':
description: Application created
content:
application/json:
schema:
$ref: '#/components/schemas/Application'
'401':
$ref: '#/components/responses/Unauthorized'
/applications/{application_id}:
get:
operationId: getApplication
summary: Get application by ID
description: Lists information about the specified application.
tags:
- Applications
parameters:
- $ref: '#/components/parameters/application_id'
responses:
'200':
description: Application details
content:
application/json:
schema:
$ref: '#/components/schemas/Application'
'404':
$ref: '#/components/responses/NotFound'
put:
operationId: updateApplication
summary: Update an application
description: Updates an existing OAuth application.
tags:
- Applications
parameters:
- $ref: '#/components/parameters/application_id'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ApplicationInput'
responses:
'200':
description: Application updated
content:
application/json:
schema:
$ref: '#/components/schemas/Application'
'404':
$ref: '#/components/responses/NotFound'
delete:
operationId: deleteApplication
summary: Delete an application
description: Deletes the specified OAuth application.
tags:
- Applications
parameters:
- $ref: '#/components/parameters/application_id'
responses:
'204':
description: Application deleted
'404':
$ref: '#/components/responses/NotFound'
/applications/{application_id}/users:
get:
operationId: getApplicationUsers
summary: List application users
description: Retrieves a list of users who authorized with the specified application.
tags:
- Applications
parameters:
- $ref: '#/components/parameters/application_id'
- $ref: '#/components/parameters/per_page'
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/order_by'
- $ref: '#/components/parameters/order'
responses:
'200':
description: List of application users
content:
application/json:
schema:
$ref: '#/components/schemas/UserList'
'404':
$ref: '#/components/responses/NotFound'
components:
schemas:
User:
type: object
properties:
id:
type: integer
email:
type: string
format: email
name:
type: string
created_at:
type: string
format: date-time
ApplicationInput:
type: object
required:
- name
properties:
name:
type: string
description: Application name
description:
type: string
description: Application description
domain:
type: string
description: Application domain for authorization_code grant
logo:
type: string
description: Logo image (base64 string, file URL, or file upload)
embedded-domain:
type: string
description: Domain where the client will be embedded
all-domains:
type: boolean
description: Allow all domains flag
UserList:
type: object
properties:
total:
type: integer
items:
type: array
items:
$ref: '#/components/schemas/User'
Error:
type: object
properties:
error:
type: string
error_description:
type: string
code:
type: integer
ApplicationList:
type: object
properties:
total:
type: integer
per_page:
type: integer
page:
type: integer
items:
type: array
items:
$ref: '#/components/schemas/Application'
Application:
type: object
properties:
id:
type: integer
name:
type: string
description:
type: string
domain:
type: string
embedded_domain:
type: string
all_domains:
type: boolean
logo:
type: string
format: uri
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
parameters:
application_id:
name: application_id
in: path
required: true
description: Unique identifier for the application
schema:
type: integer
order_by:
name: order_by
in: query
description: Field to sort results by
schema:
type: string
per_page:
name: per_page
in: query
description: Number of items per page
schema:
type: integer
default: 15
maximum: 100
page:
name: page
in: query
description: Page number
schema:
type: integer
default: 1
order:
name: order
in: query
description: Sort order
schema:
type: string
enum:
- asc
- desc
default: desc
responses:
NotFound:
description: Resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
Unauthorized:
description: Authentication required or token invalid
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
securitySchemes:
oauth2:
type: oauth2
flows:
password:
tokenUrl: https://api.pdffiller.com/v2/oauth/token
scopes:
read: Read access
write: Write access
clientCredentials:
tokenUrl: https://api.pdffiller.com/v2/oauth/token
scopes:
read: Read access
write: Write access