PlanRadar Forms API

Get your PlanRadar forms

Operations 5

GET /api/v1/{customer_id}/ticket_types/{ticket_type_id} Returns specific ticket type #
PUT /api/v1/{customer_id}/ticket_types/{ticket_type_id} Updates specific ticket type #
DELETE /api/v1/{customer_id}/ticket_types/{ticket_type_id} Deletes specific ticket type #
POST /api/v1/{customer_id}/ticket_types Creates ticket type #
GET /api/v1/{customer_id}/ticket_types Returns all ticket types #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/planradar-forms-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API 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 Specification

planradar-forms-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: PlanRadar's API Documentation Forms API
  version: '2.0'
  description: Welcome to PlanRadar's API documentation, here you can find all the details about our APIs as well as test them online.
servers:
- url: /
tags:
- name: Forms
  description: Get your PlanRadar forms
paths:
  /api/v1/{customer_id}/ticket_types/{ticket_type_id}:
    get:
      summary: Returns specific ticket type
      tags:
      - Forms
      description: This API returns a specific ticket type based on its id.
      parameters:
      - name: customer_id
        in: path
        required: true
        schema:
          type: string
      - name: ticket_type_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '404':
          description: Ticket Type Not found
      operationId: getApiV1ByCustomerIdTicketTypesByTicketTypeId
      x-operation-id-source: derived
    put:
      summary: Updates specific ticket type
      tags:
      - Forms
      description: This API is used for updating a specific ticket type based on its id.
      security:
      - apiKey: []
      parameters:
      - name: customer_id
        in: path
        required: true
        schema:
          type: string
      - name: ticket_type_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '404':
          description: Ticket Type Not Found
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  type: object
                  properties:
                    attributes:
                      $ref: '#/components/schemas/TicketType'
              required:
              - title
              - content
      operationId: putApiV1ByCustomerIdTicketTypesByTicketTypeId
      x-operation-id-source: derived
    delete:
      summary: Deletes specific ticket type
      tags:
      - Forms
      description: This API is used for deleting a specific ticket type based on its id.
      security:
      - apiKey: []
      parameters:
      - name: customer_id
        in: path
        required: true
        schema:
          type: string
      - name: ticket_type_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '404':
          description: Ticket Type Not Found
      operationId: deleteApiV1ByCustomerIdTicketTypesByTicketTypeId
      x-operation-id-source: derived
  /api/v1/{customer_id}/ticket_types:
    post:
      summary: Creates ticket type
      tags:
      - Forms
      description: 'This API is used for creating a ticket type.


        Example:


        {

        "data": {

        "attributes": {

        "name": "tickettypeone",

        "capabilities": {

        "has-media": true,

        "has-plan-position": true,

        "store-geolocation-data": false,

        "has-comments": false,

        "has-due-date-extension": true,

        "has-recurring-reminders": false,

        "has-signature": true,

        "has-locking": true,

        "has_sign_as_someone_else": true

        },

        "typed-fields": {

        "bda0b598-ddbf-48c8-8da5-60d2c5983e89": {

        "name": "fieldname",

        "type": "CustomFields::IntegerType",

        "order": 1,

        "visible-to": ["xmy","yen","lwm","lm","yn"],

        "editable-by": ["xmy","yen","lwm","lm"]

        }

        },

        "static-fields": {

        "progress": {

        "order": 1,

        "visible-to": ["xmy","yen","lwm","lm","yn"],

        "editable-by": ["xmy","yen","lwm","lm","yn"]

        }

        },

        "form-decorators":{

        "b6cd699b-668f-4360-b6ac-5de4404a094b":{

        "name":"seperator",

        "visible-to":[

        762, "lm"

        ],

        "order":2,

        "type":"FormDecorators::Separator",

        "description": "",

        "check-all-roles": false,

        "default_value": "",

        "required": false

        },"b6cd699b-668f-4360-b6ac-5de4404a095b":{

        "name":"group",

        "order":3,

        "type":"FormDecorators::Group",

        "description": "",

        "visible_to": [],

        "check_all_roles": true,

        "fields":[

        "cc376c7d-054a-4901-98bb-4069d4e4aa74",

        "cc376c0d-054a-4901-98bb-4069d4e4aa74",

        "parent-id"

        ]

        }

        }

        }

        }

        }


        CheckListType Field Example:


        The CheckListType field provides a checklist with configurable response options, attachments, and notes.


        Configuration Options:


        response-label: Display labels for responses. Valid values: 1 (Yes/No/N/A), 2 (True/False/N/A), 3 (Pass/Fail/N/A). Default: 1


        response-color: Color scheme for responses. Valid values: 1 (Green/Red/Blue), 2 (Red/Green/Blue), 3 (Blue for all). Default: 1


        enable-attachments: Enable attachment support. Default: true


        max-attachments: Maximum attachments per item (requires enable-attachments: true). Default: 1


        required-attachments-for: Require attachments for specific answers (requires enable-attachments: true AND max-attachments set). Valid values: [1, 2, 3]


        enable-notes: Enable notes for checklist items. Default: true


        required-notes-for: Require notes for specific answers (requires enable-notes: true). Valid values: [1, 2, 3]


        Answer Values:


        1: First response option (Yes/True/Pass depending on response-label)


        2: Second response option (No/False/Fail depending on response-label)


        3: Third response option (N/A for all response-labels)


        conditional-config for CheckListType:


        answered: Field has any response (no values required)


        not_answered: Field has no response (no values required)


        includes_any: Response matches any of the specified values (values required: [1, 2, 3])


        includes_all: Response matches all specified values (values required: [1, 2, 3])


        Full CheckListType Example:


        {

        "data": {

        "attributes": {

        "name": "Safety Inspection Form",

        "capabilities": {

        "has-media": true,

        "has-plan-position": true

        },

        "typed-fields": {

        "checklist-field-uuid": {

        "name": "Safety Checklist",

        "type": "CustomFields::CheckListType",

        "order": 1,

        "visible-to": ["lm", "yn"],

        "editable-by": ["lm"],

        "response-label": 1,

        "response-color": 1,

        "enable-attachments": true,

        "max-attachments": 3,

        "required-attachments-for": [1, 2],

        "enable-notes": true,

        "required-notes-for": [2, 3]

        },

        "conditional-text-field-uuid": {

        "name": "Additional Notes",

        "type": "CustomFields::ShortTextType",

        "order": 2,

        "visible-to": ["lm"],

        "editable-by": ["lm"],

        "conditional-config": {

        "condition-type": "any",

        "conditions": {

        "checklist-field-uuid": {

        "predicate": "includes_any",

        "values": [1, 2]

        }

        }

        }

        }

        }

        }

        }

        }


        Minimal CheckListType (uses defaults):


        {

        "typed-fields": {

        "checklist-field-uuid": {

        "name": "Quick Checklist",

        "type": "CustomFields::CheckListType",

        "order": 1,

        "visible-to": ["lm"],

        "editable-by": ["lm"]

        }

        }

        }'
      security:
      - apiKey: []
      parameters:
      - name: customer_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '404':
          description: Ticket Type Not Created
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  type: object
                  properties:
                    attributes:
                      $ref: '#/components/schemas/TicketType'
      operationId: postApiV1ByCustomerIdTicketTypes
      x-operation-id-source: derived
    get:
      summary: Returns all ticket types
      tags:
      - Forms
      description: This API returns all ticket types of the logged in customer.
      parameters:
      - name: customer_id
        in: path
        required: true
        schema:
          type: string
      - name: last_sync_date
        in: query
        description: is a Unix Timestamp. If it is set, only ticket types that were created after that timestamp will be returned
        schema:
          type: string
      - name: page
        in: query
        description: sets the number of pages for the returned ticket types
        schema:
          type: integer
      - name: pagesize
        in: query
        description: sets the number of ticket types that should be returned per page <br/>Maximum is 500, default is 100
        schema:
          type: integer
      - name: apply_form_display_permission
        in: query
        required: false
        description: (KFT-338) when <code>true</code>, filters to forms the caller's role(s) can see via <code>capabilities.visible_to</code>. Watchers bypass. Default <code>false</code>.
        schema:
          type: boolean
      - name: apply_form_edit_permission
        in: query
        required: false
        description: (KFT-338) when <code>true</code>, filters to forms the caller's role(s) can edit via <code>capabilities.editable_by</code>. Watchers bypass. Default <code>false</code>.
        schema:
          type: boolean
      responses:
        '406':
          description: Unsupported Accept Header
      operationId: getApiV1ByCustomerIdTicketTypes
      x-operation-id-source: derived
components:
  schemas:
    TicketType:
      type: object
      properties:
        name:
          type: string
          example: tickettypeone
          description: sets the name of the ticket type
        capabilities:
          type: object
          properties:
            has-media:
              type: boolean
              example: true
            has-plan-position:
              type: boolean
              example: true
            store-geolocation-data:
              type: boolean
              example: false
            has-comments:
              type: boolean
              example: false
            has-due-date-extension:
              type: boolean
              example: true
            has-recurring-reminders:
              type: boolean
              example: false
            has-signature:
              type: boolean
              example: false
            has-locking:
              type: boolean
              example: false
            has-sign-as-someone-else:
              type: boolean
              example: false
            has-form-sequence:
              type: boolean
              example: false
            has-form-sequence-prefix:
              type: string
              example: RFI
              description: sets the prefix of the form sequence - is optional if has-form-sequence is set to true
            has-form-sequence-number:
              type: number
              example: 1
              description: sets the number of the form sequence - is required if has-form-sequence is set to true and it must be greater than 1
          description: 'sets whether or not media, plan position, comments, due date extensions, reminder repetitions and store geolocations are displayed in the ticket '
        typed-fields:
          type: object
          properties:
            field_key:
              type: object
              properties:
                name:
                  type: string
                  example: fieldname
                  description: name of the ticket type
                type:
                  type: string
                  example: CustomFields::IntegerType
                  description: 'sets the type of the field - allowed values: CustomFields::FloatType, CustomFields::DateType, CustomFields::IntegerType, CustomFields::LongTextType, CustomFields::ShortTextType, CustomFields::ListType, CustomFields::SubscriptionType, CustomFields::CheckListType'
                order:
                  type: integer
                  description: sets the order of the field e.g 1 = first typed field
                visible-to:
                  type: array
                  items:
                    type: string
                    description: sets to which roles this field is visible - array that takes the ids of the roles
                editable-by:
                  type: array
                  items:
                    type: string
                    description: sets who has the permission to edit this field - array that takes the ids of the roles
                multiple:
                  type: boolean
                  example: true
                  description: sets whether user field can have multiple assignments
                response-label:
                  type: integer
                  example: 1
                  description: 'Display labels for responses. Valid values: 1 (Yes/No/N/A), 2 (True/False/N/A), 3 (Pass/Fail/N/A). Only for CheckListType.'
                response-color:
                  type: integer
                  example: 1
                  description: 'Color scheme for responses. Valid values: 1 (Green/Red/Blue), 2 (Red/Green/Blue), 3 (Blue for all). Only for CheckListType.'
                enable-attachments:
                  type: boolean
                  example: true
                  description: Enable attachment support for checklist items. Only for CheckListType.
                enable-notes:
                  type: boolean
                  example: true
                  description: Enable notes for checklist items. Only for CheckListType.
                max-attachments:
                  type: integer
                  example: 3
                  description: 'Maximum attachments per checklist item (requires enable-attachments: true). Only for CheckListType.'
                required-attachments-for:
                  type: array
                  items:
                    type: integer
                  description: Require attachments for specific answers (e.g. [1, 2]). Only for CheckListType.
                required-notes-for:
                  type: array
                  items:
                    type: integer
                  description: Require notes for specific answers (e.g. [1, 2]). Only for CheckListType.
          description: typed-fields are the customer's custom created fields
        static-fields:
          type: object
          properties:
            field_key:
              type: object
              properties:
                order:
                  type: integer
                  description: sets the order of the field e.g 1 = first static field
                visible-to:
                  type: array
                  items:
                    type: string
                    description: sets to which roles this field is visible - array that takes the ids of the roles
                editable-by:
                  type: array
                  items:
                    type: string
                    description: sets who has the permission to edit this field - array that takes the ids of the roles
  securitySchemes:
    apiKey:
      type: apiKey
      name: X-PlanRadar-API-Key
      in: header
externalDocs:
  description: Find out more about our development portal
  url: https://www.planradar.com/knowledge-base-overview/