Eshway Forms API
The Forms API from Eshway — 4 operation(s) for forms.
The Forms API from Eshway — 4 operation(s) for forms.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/eshway-com:eshway-com-forms-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Fast Forms API
version: 0.1.0
tags:
- name: Forms
paths:
/v1/projects/{project_id}/forms:
post:
tags:
- Forms
summary: Create Form
operationId: create_form_v1_projects__project_id__forms_post
security:
- OAuth2PasswordBearer: []
parameters:
- name: project_id
in: path
required: true
schema:
type: integer
title: Project Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/TaskFormCreate'
responses:
'201':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/TaskFormResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
get:
tags:
- Forms
summary: List Forms
operationId: list_forms_v1_projects__project_id__forms_get
security:
- OAuth2PasswordBearer: []
parameters:
- name: project_id
in: path
required: true
schema:
type: integer
title: Project Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/TaskFormListItem'
title: Response List Forms V1 Projects Project Id Forms Get
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/projects/{project_id}/forms/{form_id}:
get:
tags:
- Forms
summary: Get Form
operationId: get_form_v1_projects__project_id__forms__form_id__get
security:
- OAuth2PasswordBearer: []
parameters:
- name: project_id
in: path
required: true
schema:
type: integer
title: Project Id
- name: form_id
in: path
required: true
schema:
type: integer
title: Form Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/TaskFormResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
put:
tags:
- Forms
summary: Update Form
operationId: update_form_v1_projects__project_id__forms__form_id__put
security:
- OAuth2PasswordBearer: []
parameters:
- name: project_id
in: path
required: true
schema:
type: integer
title: Project Id
- name: form_id
in: path
required: true
schema:
type: integer
title: Form Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/TaskFormUpdate'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/TaskFormResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
delete:
tags:
- Forms
summary: Delete Form
operationId: delete_form_v1_projects__project_id__forms__form_id__delete
security:
- OAuth2PasswordBearer: []
parameters:
- name: project_id
in: path
required: true
schema:
type: integer
title: Project Id
- name: form_id
in: path
required: true
schema:
type: integer
title: Form Id
responses:
'204':
description: Successful Response
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/forms/{slug}:
get:
tags:
- Forms
summary: Get Public Form
operationId: get_public_form_v1_forms__slug__get
parameters:
- name: slug
in: path
required: true
schema:
type: string
title: Slug
- name: authorization
in: header
required: false
schema:
type: string
title: Authorization
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/PublicFormResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/forms/{slug}/submit:
post:
tags:
- Forms
summary: Submit Form
operationId: submit_form_v1_forms__slug__submit_post
parameters:
- name: slug
in: path
required: true
schema:
type: string
title: Slug
- name: authorization
in: header
required: false
schema:
type: string
title: Authorization
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/FormSubmission'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/app__schemas__task__Task'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
FieldOption:
properties:
label:
type: string
title: Label
value:
type: string
title: Value
type: object
required:
- label
- value
title: FieldOption
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
type: object
required:
- loc
- msg
- type
title: ValidationError
TaskFormCreate:
properties:
name:
type: string
maxLength: 255
minLength: 1
title: Name
description:
anyOf:
- type: string
- type: 'null'
title: Description
visibility:
$ref: '#/components/schemas/FormVisibility'
default: project
requires_auth:
type: boolean
title: Requires Auth
default: true
is_active:
type: boolean
title: Is Active
default: true
shown_standard_fields:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Shown Standard Fields
default_values:
anyOf:
- type: object
- type: 'null'
title: Default Values
fields:
items:
$ref: '#/components/schemas/TaskFormFieldCreate'
type: array
title: Fields
default: []
type: object
required:
- name
title: TaskFormCreate
app__schemas__task__Task:
properties:
title:
type: string
title: Title
description:
anyOf:
- type: string
- type: 'null'
title: Description
updated_at:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Updated At
parent_id:
anyOf:
- type: integer
- type: 'null'
title: Parent Id
start_date:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Start Date
end_date:
anyOf:
- type: string
format: date-time
- type: 'null'
title: End Date
id:
type: integer
title: Id
project_id:
type: integer
title: Project Id
user_id:
type: integer
title: User Id
assignee_name:
anyOf:
- type: string
- type: 'null'
title: Assignee Name
assignee_id:
anyOf:
- type: integer
- type: 'null'
title: Assignee Id
created_at:
type: string
format: date-time
title: Created At
priority:
type: string
title: Priority
status:
type: string
title: Status
description: 'Deprecated: Use status_name instead'
deprecated: true
status_name:
anyOf:
- type: string
- type: 'null'
title: Status Name
status_id:
anyOf:
- type: integer
- type: 'null'
title: Status Id
due_date:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Due Date
perspective:
anyOf:
- $ref: '#/components/schemas/Perspective'
- type: 'null'
user:
$ref: '#/components/schemas/UserLite'
assignee:
anyOf:
- $ref: '#/components/schemas/UserLite'
- type: 'null'
assignees:
anyOf:
- items:
$ref: '#/components/schemas/UserLite'
type: array
- type: 'null'
title: Assignees
assigned_groups:
anyOf:
- items:
$ref: '#/components/schemas/GroupSchema'
type: array
- type: 'null'
title: Assigned Groups
calendar_event_id_map:
anyOf:
- type: object
- type: 'null'
title: Calendar Event Id Map
is_archived:
anyOf:
- type: boolean
- type: 'null'
title: Is Archived
default: false
github_branch:
anyOf:
- type: string
- type: 'null'
title: Github Branch
github_base_branch:
anyOf:
- type: string
- type: 'null'
title: Github Base Branch
github_pr_url:
anyOf:
- type: string
- type: 'null'
title: Github Pr Url
github_last_commit_sha:
anyOf:
- type: string
- type: 'null'
title: Github Last Commit Sha
has_github_branch:
type: boolean
title: Has Github Branch
default: false
custom_fields:
anyOf:
- type: object
- type: 'null'
title: Custom Fields
custom_fields_resolved:
anyOf:
- type: object
- type: 'null'
title: Custom Fields Resolved
form_id:
anyOf:
- type: integer
- type: 'null'
title: Form Id
submitted_by_email:
anyOf:
- type: string
- type: 'null'
title: Submitted By Email
type: object
required:
- title
- id
- project_id
- user_id
- assignee_name
- assignee_id
- created_at
- priority
- status
- user
- assignee
- assignees
- assigned_groups
- calendar_event_id_map
title: Task
TaskFormFieldUpdate:
properties:
id:
anyOf:
- type: integer
- type: 'null'
title: Id
field_key:
anyOf:
- type: string
- type: 'null'
title: Field Key
label:
anyOf:
- type: string
- type: 'null'
title: Label
field_type:
anyOf:
- $ref: '#/components/schemas/FieldType'
- type: 'null'
is_required:
anyOf:
- type: boolean
- type: 'null'
title: Is Required
placeholder:
anyOf:
- type: string
- type: 'null'
title: Placeholder
options:
anyOf:
- items:
$ref: '#/components/schemas/FieldOption'
type: array
- type: 'null'
title: Options
validation_rules:
anyOf:
- type: object
- type: 'null'
title: Validation Rules
sort_order:
anyOf:
- type: integer
- type: 'null'
title: Sort Order
type: object
title: TaskFormFieldUpdate
Perspective:
type: string
enum:
- financial
- customer
- internal
- learning
title: Perspective
TaskFormFieldResponse:
properties:
field_key:
type: string
maxLength: 64
minLength: 1
title: Field Key
label:
type: string
maxLength: 255
minLength: 1
title: Label
field_type:
$ref: '#/components/schemas/FieldType'
is_required:
type: boolean
title: Is Required
default: false
placeholder:
anyOf:
- type: string
- type: 'null'
title: Placeholder
options:
anyOf:
- items:
$ref: '#/components/schemas/FieldOption'
type: array
- type: 'null'
title: Options
validation_rules:
anyOf:
- type: object
- type: 'null'
title: Validation Rules
sort_order:
type: integer
title: Sort Order
default: 0
id:
type: integer
title: Id
type: object
required:
- field_key
- label
- field_type
- id
title: TaskFormFieldResponse
TaskFormUpdate:
properties:
name:
anyOf:
- type: string
- type: 'null'
title: Name
description:
anyOf:
- type: string
- type: 'null'
title: Description
visibility:
anyOf:
- $ref: '#/components/schemas/FormVisibility'
- type: 'null'
requires_auth:
anyOf:
- type: boolean
- type: 'null'
title: Requires Auth
is_active:
anyOf:
- type: boolean
- type: 'null'
title: Is Active
shown_standard_fields:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Shown Standard Fields
default_values:
anyOf:
- type: object
- type: 'null'
title: Default Values
fields:
anyOf:
- items:
$ref: '#/components/schemas/TaskFormFieldUpdate'
type: array
- type: 'null'
title: Fields
type: object
title: TaskFormUpdate
FieldType:
type: string
enum:
- text
- textarea
- number
- date
- select
- multi_select
- checkbox
- url
- email
- lookup
title: FieldType
TaskFormResponse:
properties:
name:
type: string
maxLength: 255
minLength: 1
title: Name
description:
anyOf:
- type: string
- type: 'null'
title: Description
visibility:
$ref: '#/components/schemas/FormVisibility'
default: project
requires_auth:
type: boolean
title: Requires Auth
default: true
is_active:
type: boolean
title: Is Active
default: true
shown_standard_fields:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Shown Standard Fields
default_values:
anyOf:
- type: object
- type: 'null'
title: Default Values
id:
type: integer
title: Id
project_id:
type: integer
title: Project Id
slug:
type: string
title: Slug
created_by:
type: integer
title: Created By
created_at:
type: string
format: date-time
title: Created At
updated_at:
type: string
format: date-time
title: Updated At
fields:
items:
$ref: '#/components/schemas/TaskFormFieldResponse'
type: array
title: Fields
default: []
type: object
required:
- name
- id
- project_id
- slug
- created_by
- created_at
- updated_at
title: TaskFormResponse
TaskFormListItem:
properties:
id:
type: integer
title: Id
project_id:
type: integer
title: Project Id
name:
type: string
title: Name
slug:
type: string
title: Slug
visibility:
type: string
title: Visibility
requires_auth:
type: boolean
title: Requires Auth
is_active:
type: boolean
title: Is Active
created_at:
type: string
format: date-time
title: Created At
field_count:
type: integer
title: Field Count
default: 0
type: object
required:
- id
- project_id
- name
- slug
- visibility
- requires_auth
- is_active
- created_at
title: TaskFormListItem
TaskFormFieldCreate:
properties:
field_key:
type: string
maxLength: 64
minLength: 1
title: Field Key
label:
type: string
maxLength: 255
minLength: 1
title: Label
field_type:
$ref: '#/components/schemas/FieldType'
is_required:
type: boolean
title: Is Required
default: false
placeholder:
anyOf:
- type: string
- type: 'null'
title: Placeholder
options:
anyOf:
- items:
$ref: '#/components/schemas/FieldOption'
type: array
- type: 'null'
title: Options
validation_rules:
anyOf:
- type: object
- type: 'null'
title: Validation Rules
sort_order:
type: integer
title: Sort Order
default: 0
type: object
required:
- field_key
- label
- field_type
title: TaskFormFieldCreate
FormSubmission:
properties:
title:
type: string
maxLength: 500
minLength: 1
title: Title
description:
anyOf:
- type: string
- type: 'null'
title: Description
priority:
anyOf:
- type: string
- type: 'null'
title: Priority
due_date:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Due Date
status:
anyOf:
- type: string
- type: 'null'
title: Status
perspective:
anyOf:
- type: string
- type: 'null'
title: Perspective
assignees:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Assignees
submitted_by_email:
anyOf:
- type: string
- type: 'null'
title: Submitted By Email
custom_fields:
type: object
title: Custom Fields
default: {}
type: object
required:
- title
title: FormSubmission
PublicFormResponse:
properties:
id:
type: integer
title: Id
name:
type: string
title: Name
description:
anyOf:
- type: string
- type: 'null'
title: Description
slug:
type: string
title: Slug
requires_auth:
type: boolean
title: Requires Auth
shown_standard_fields:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Shown Standard Fields
assignee_options:
anyOf:
- items:
$ref: '#/components/schemas/FieldOption'
type: array
- type: 'null'
title: Assignee Options
fields:
items:
$ref: '#/components/schemas/PublicFormFieldResponse'
type: array
title: Fields
default: []
project_name:
anyOf:
- type: string
- type: 'null'
title: Project Name
type: object
required:
- id
- name
- slug
- requires_auth
title: PublicFormResponse
PublicFormFieldResponse:
properties:
field_key:
type: string
title: Field Key
label:
type: string
title: Label
field_type:
$ref: '#/components/schemas/FieldType'
is_required:
type: boolean
title: Is Required
placeholder:
anyOf:
- type: string
- type: 'null'
title: Placeholder
options:
anyOf:
- items:
$ref: '#/components/schemas/FieldOption'
type: array
- type: 'null'
title: Options
validation_rules:
anyOf:
- type: object
- type: 'null'
title: Validation Rules
sort_order:
type: integer
title: Sort Order
default: 0
type: object
required:
- field_key
- label
- field_type
- is_required
title: PublicFormFieldResponse
FormVisibility:
type: string
enum:
- public
- organization
- project
title: FormVisibility
GroupSchema:
properties:
id:
type: integer
title: Id
name:
type: string
title: Name
project_id:
type: integer
title: Project Id
organization_id:
type: integer
title: Organization Id
type: object
required:
- id
- name
- project_id
- organization_id
title: GroupSchema
UserLite:
properties:
id:
type: integer
title: Id
username:
type: string
title: Username
full_name:
anyOf:
- type: string
- type: 'null'
title: Full Name
avatar:
anyOf:
- type: string
- type: 'null'
title: Avatar
type: object
required:
- id
- username
title: UserLite
securitySchemes:
OAuth2PasswordBearer:
type: oauth2
flows:
password:
scopes: {}
tokenUrl: token