PlanRadar Groups V2 API

The Groups V2 API from PlanRadar — 2 operation(s) for groups v2.

Operations 5

GET /api/v2/{customer_id}/groups List groups
POST /api/v2/{customer_id}/groups Create group
GET /api/v2/{customer_id}/groups/{id} Show group
PATCH /api/v2/{customer_id}/groups/{id} Update group
DELETE /api/v2/{customer_id}/groups/{id} Delete group

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-groups-v2-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-groups-v2-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: PlanRadar's API Documentation Approval Requests V2 Groups V2 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.<br />\n        <h5>Rate Limits</h5>30 requests per minute per account, aggregated across all tokens.<br />\n        If the threshold is exceeded, a 5-minute cooldown is applied to the account, aggregated across all tokens.<br />\n        During the cooldown period, further requests may be rejected until the cooldown ends.<br />\n        In rare cases, an endpoint may have a different rate limit than the default. When that happens, the differing limit will be explicitly stated in the API documentation for that endpoint.<br />\n        <h5>Access Key</h5>In order to be able to access any API you have to create an access token.Therefore you have to follow these steps:-\n        <ul>\n          <li>Go to your profile page and click on Personal Access Tokens on the left side bar</li><li>Click on the 'Create Access Token' top right button in order to create a new access token.</li><li>Copy the created token and paste it into the field that pops up when you click on the 'Authorize' button </li><li>Note: you can copy the token only once.</li><li>Now you can easily access any API</li>\n        </ul>\n        <h5>V2 APIs</h5>We are currently working on upgrading all our APIs to v2, and we recommend that you use v2 APIs if it is available.\n        <p>V2 APIs are faster, robust and more flexible than v1 APIs</p>"
servers:
- url: /
tags:
- name: Groups V2
paths:
  /api/v2/{customer_id}/groups:
    get:
      summary: List groups
      tags:
      - Groups V2
      security:
      - apiKey: []
      parameters:
      - name: customer_id
        in: path
        description: Customer ID
        example: ymjxnx
        required: true
        schema:
          type: string
      - name: page
        in: query
        required: false
        description: Page number
        example: 1
        schema:
          type: integer
      - name: pagesize
        in: query
        required: false
        description: Number of records per page
        example: 25
        schema:
          type: integer
      - name: check_inhouse
        in: query
        required: false
        description: Include groups_have_inhouse_users in meta
        schema:
          type: boolean
      - name: q
        in: query
        required: false
        description: Ransack search parameter. Use q[search_i_cont] to search across name, leader name, leader email, and project name.
        example:
          search_i_cont: john
        schema:
          type: object
      - name: filters
        in: query
        required: false
        description: 'On-fly filters using field IDs from the filterable_fields endpoint (type=groups). Each filter specifies a field ID, a predicate, and one or more values.<br/><br/><b>Format:</b> <code>filters[{field-id}][0][predicate]={predicate}&filters[{field-id}][0][value]={value}</code><br/><br/><b>Available Fields:</b><br/>- <code>id</code> (integer): Group ID. Predicates: eq, le, ge, neq, between<br/>- <code>name</code> (short_text): Group name. Predicates: eq, neq, starts_with, ends_with, like, not_like<br/>- <code>created-on</code> (date): Creation date. Predicates: eq, le, ge, neq, between, plus relative date predicates<br/>- <code>updated-on</code> (date): Last update date. Predicates: eq, le, ge, neq, between, plus relative date predicates<br/>- <code>leader-id</code> (list): Group leader. Predicates: in, not_in<br/>- <code>leader-email</code> (short_text): Leader email. Predicates: eq, neq, starts_with, ends_with, like, not_like<br/>- <code>leader-tel</code> (short_text): Leader phone number. Predicates: eq, neq, starts_with, ends_with, like, not_like<br/>- <code>members</code> (list): Group members. Predicates: in, not_in<br/>- <code>projects</code> (list): Linked projects. Predicates: in, not_in<br/><br/><b>Examples:</b><br/>- Filter by leader: <code>filters[leader-id][0][predicate]=in&filters[leader-id][0][value][0]=abc</code><br/>- Filter by name: <code>filters[name][0][predicate]=like&filters[name][0][value]=engineering</code><br/>- Filter by date: <code>filters[created-on][0][predicate]=ge&filters[created-on][0][value]=2024-01-01</code><br/>- Multiple filters: <code>filters[leader-id][0][predicate]=in&filters[leader-id][0][value][0]=abc&filters[name][0][predicate]=like&filters[name][0][value]=test</code>'
        schema:
          type: object
      responses:
        '200':
          description: Groups list
        '401':
          description: Request unauthorized
    post:
      summary: Create group
      tags:
      - Groups V2
      security:
      - apiKey: []
      parameters:
      - name: customer_id
        in: path
        description: Customer ID
        example: ymjxnx
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Group created with members
        '401':
          description: Request unauthorized for invalid customer
        '422':
          description: Invalid member user_ids
        '404':
          description: Non-existing member user_ids
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - data
              properties:
                data:
                  type: object
                  required:
                  - attributes
                  properties:
                    attributes:
                      type: object
                      required:
                      - name
                      - leader_id
                      properties:
                        name:
                          type: string
                          example: Group Name
                        leader_id:
                          type: string
                          example: oll
                        user_ids:
                          type: array
                          items:
                            type: string
                          example:
                          - abc
                          - def
                          description: Encoded user IDs to assign as group members
  /api/v2/{customer_id}/groups/{id}:
    parameters:
    - name: customer_id
      in: path
      description: Customer ID
      example: ymjxnx
      required: true
      schema:
        type: string
    - name: id
      in: path
      description: Group ID
      example: grp123
      required: true
      schema:
        type: string
    get:
      summary: Show group
      tags:
      - Groups V2
      security:
      - apiKey: []
      parameters:
      - name: page
        in: query
        required: false
        description: Projects page number (1-indexed). Paginates the projects relationship.
        example: 1
        schema:
          type: integer
      - name: pagesize
        in: query
        required: false
        description: Projects page size (max 200, default 50)
        example: 50
        schema:
          type: integer
      - name: q[name_i_cont]
        in: query
        required: false
        description: Case-insensitive substring filter applied to the projects relationship
        example: alpha
        schema:
          type: string
      responses:
        '200':
          description: Group with project associations
        '404':
          description: Group not found
    patch:
      summary: Update group
      tags:
      - Groups V2
      security:
      - apiKey: []
      responses:
        '200':
          description: Group updated with cascade removal
        '422':
          description: Invalid member user_ids on update
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - data
              properties:
                data:
                  type: object
                  required:
                  - attributes
                  properties:
                    attributes:
                      type: object
                      properties:
                        name:
                          type: string
                          example: Group Name
                        leader_id:
                          type: string
                          example: oll
                        user_ids:
                          type: array
                          items:
                            type: string
                          example:
                          - abc
                          - def
                          description: Encoded user IDs to assign as group members. Full replacement -- service computes diff.
                        remove_users_from_projects:
                          type: boolean
                          example: false
                          description: If true, removed members are also removed from associated projects and their ticket assignments are cleaned up via background jobs
    delete:
      summary: Delete group
      tags:
      - Groups V2
      security:
      - apiKey: []
      responses:
        '204':
          description: Group deleted with cascade removal from projects
        '422':
          description: Group linked to inaccessible projects
        '404':
          description: Group not found
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  type: object
                  properties:
                    attributes:
                      type: object
                      properties:
                        remove_users_from_projects:
                          type: boolean
                          example: false
                          description: If true, group members are also removed from associated projects and their ticket assignments are cleaned up via background jobs
components:
  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/