For the complete documentation index, see llms.txt. This page is also available as Markdown.

Feature Requests

Search or list feature requests

post
/feature-requests/search

Returns feature requests matching the given criteria. Supports semantic search, status filtering, and pagination.

Rate limit: 120 requests per minute

Authorizations
AuthorizationstringRequired

Authorization: Bearer

Body
account_idsstring[]Optional

Filter by one or more account IDs. Returns only feature requests with evidence linked to any of the given accounts.

limitinteger · int64Optional

The maximum number of feature requests to return. Defaults to 100, max 1000.

querystringOptional

A search query string for semantic and keyword matching. If omitted, all feature requests are returned (subject to other filters and limit).

request_statusesstring[]Optional

Filter by one or more request statuses. Each value can be a built-in status (new, in_progress, closed, archived) or a custom status slug.

Responses
200Success
application/json
request_idstringOptional
post/feature-requests/search
POST /feature-requests/search HTTP/1.1
Host: api.usepylon.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 77

{
  "account_ids": [
    "text"
  ],
  "limit": 1,
  "query": "text",
  "request_statuses": [
    "text"
  ]
}
{
  "data": [
    {
      "account_ids": [
        "text"
      ],
      "created_at": "text",
      "custom_fields": {
        "priority": {
          "value": "high"
        }
      },
      "description": "text",
      "evidence_count": 1,
      "external_issues": [
        {
          "external_id": "text",
          "link": "text",
          "source": "text"
        }
      ],
      "id": "text",
      "portal_visible_to_account_ids": [
        "text"
      ],
      "request_status": "text",
      "title": "text",
      "updated_at": "text"
    }
  ],
  "request_id": "text"
}

Update a feature request

patch
/feature-requests/{id}

Updates an existing feature request. Only provided fields are modified.

Rate limit: 120 requests per minute

Authorizations
AuthorizationstringRequired

Authorization: Bearer

Path parameters
idstringRequired

The ID of the feature request to update.

Body
request_statusstringOptional

The new request status. Can be a built-in status (new, in_progress, closed, archived) or a custom status slug.

Responses
200Success
application/json
request_idstringOptional
patch/feature-requests/{id}
PATCH /feature-requests/{id} HTTP/1.1
Host: api.usepylon.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 92

{
  "custom_fields": [
    {
      "slug": "text",
      "value": "text",
      "values": [
        "text"
      ]
    }
  ],
  "request_status": "text"
}
{
  "data": {
    "created_at": "text",
    "custom_fields": {
      "priority": {
        "value": "high"
      }
    },
    "description": "text",
    "evidence": [
      {
        "account_id": "text",
        "created_at": "text",
        "external_url": "text",
        "id": "text",
        "source_id": "text",
        "source_type": "text",
        "summary": "text"
      }
    ],
    "evidence_count": 1,
    "external_issues": [
      {
        "external_id": "text",
        "link": "text",
        "source": "text"
      }
    ],
    "id": "text",
    "portal_visible_to_account_ids": [
      "text"
    ],
    "request_status": "text",
    "title": "text",
    "updated_at": "text"
  },
  "request_id": "text"
}

Link a customer account to a feature request

post
/feature-requests/{id}/evidence

Creates a manual evidence record linking a customer account to a feature request. Repeated requests create separate evidence records.

Rate limit: 120 requests per minute

Authorizations
AuthorizationstringRequired

Authorization: Bearer

Path parameters
idstringRequired

The ID of the feature request.

Body
account_idstringRequired

The ID of the customer account to link to the feature request.

summarystringOptional

A summary explaining why this account is linked. Defaults to "Account manually linked via API."

Default: Account manually linked via API.
Responses
200Success
application/json
request_idstringOptional
post/feature-requests/{id}/evidence
POST /feature-requests/{id}/evidence HTTP/1.1
Host: api.usepylon.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 66

{
  "account_id": "text",
  "summary": "Account manually linked via API."
}
{
  "data": {
    "account_id": "text",
    "created_at": "text",
    "external_url": "text",
    "id": "text",
    "source_id": "text",
    "source_type": "text",
    "summary": "text"
  },
  "request_id": "text"
}

Delete a feature request

delete
/feature-requests/{id}

Permanently deletes a feature request and its associated evidence.

Rate limit: 120 requests per minute

Authorizations
AuthorizationstringRequired

Authorization: Bearer

Path parameters
idstringRequired

The ID of the feature request to delete.

Responses
200Success
application/json
request_idstringOptional
delete/feature-requests/{id}
DELETE /feature-requests/{id} HTTP/1.1
Host: api.usepylon.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "request_id": "text"
}

Get a feature request by ID

get
/feature-requests/{id}

Returns a single feature request by ID. Optionally includes evidence items when fetch_evidence is true.

Rate limit: 300 requests per minute

Authorizations
AuthorizationstringRequired

Authorization: Bearer

Path parameters
idstringRequired

The ID of the feature request to fetch.

Query parameters
fetch_evidencebooleanOptional

Whether to include evidence items in the response. Defaults to false.

Responses
200Success
application/json
request_idstringOptional
get/feature-requests/{id}
GET /feature-requests/{id} HTTP/1.1
Host: api.usepylon.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "data": {
    "created_at": "text",
    "custom_fields": {
      "priority": {
        "value": "high"
      }
    },
    "description": "text",
    "evidence": [
      {
        "account_id": "text",
        "created_at": "text",
        "external_url": "text",
        "id": "text",
        "source_id": "text",
        "source_type": "text",
        "summary": "text"
      }
    ],
    "evidence_count": 1,
    "external_issues": [
      {
        "external_id": "text",
        "link": "text",
        "source": "text"
      }
    ],
    "id": "text",
    "portal_visible_to_account_ids": [
      "text"
    ],
    "request_status": "text",
    "title": "text",
    "updated_at": "text"
  },
  "request_id": "text"
}

Create a feature request

post
/feature-requests

Creates a new feature request. When should_auto_fetch_evidence is true, supporting evidence is automatically gathered and used to generate the description.

Rate limit: 120 requests per minute

Authorizations
AuthorizationstringRequired

Authorization: Bearer

Body
descriptionstringOptional

The description of the feature request. Ignored when should_auto_fetch_evidence is true, since the description is then generated from gathered evidence.

should_auto_fetch_evidencebooleanOptional

When true, asynchronously gathers supporting evidence and generates a description, mirroring the in-app experience. Defaults to false, which creates the feature request as-is.

titlestringRequired

The title of the feature request.

Responses
200Success
application/json
request_idstringOptional
post/feature-requests
POST /feature-requests HTTP/1.1
Host: api.usepylon.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 71

{
  "description": "text",
  "should_auto_fetch_evidence": true,
  "title": "text"
}
{
  "data": {
    "created_at": "text",
    "custom_fields": {
      "priority": {
        "value": "high"
      }
    },
    "description": "text",
    "evidence": [
      {
        "account_id": "text",
        "created_at": "text",
        "external_url": "text",
        "id": "text",
        "source_id": "text",
        "source_type": "text",
        "summary": "text"
      }
    ],
    "evidence_count": 1,
    "external_issues": [
      {
        "external_id": "text",
        "link": "text",
        "source": "text"
      }
    ],
    "id": "text",
    "portal_visible_to_account_ids": [
      "text"
    ],
    "request_status": "text",
    "title": "text",
    "updated_at": "text"
  },
  "request_id": "text"
}

Set portal visibility for a feature request

post
/feature-requests/{id}/set-portal-visibility

Toggles portal visibility for a set of accounts on a feature request. Idempotent — adding already-visible accounts or removing already-hidden accounts is a no-op. Note: visibility only takes effect when the Feature Requests tab is enabled in portal settings.

Rate limit: 120 requests per minute

Authorizations
AuthorizationstringRequired

Authorization: Bearer

Path parameters
idstringRequired

The ID of the feature request.

Body
account_idsstring[]Required

The account IDs to add or remove portal visibility for.

visiblebooleanRequired

Whether the specified accounts should be able to see this feature request in the portal. True to add visibility, false to remove.

Responses
200Success
application/json
request_idstringOptional
post/feature-requests/{id}/set-portal-visibility
POST /feature-requests/{id}/set-portal-visibility HTTP/1.1
Host: api.usepylon.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 39

{
  "account_ids": [
    "text"
  ],
  "visible": true
}
{
  "data": {
    "created_at": "text",
    "custom_fields": {
      "priority": {
        "value": "high"
      }
    },
    "description": "text",
    "evidence": [
      {
        "account_id": "text",
        "created_at": "text",
        "external_url": "text",
        "id": "text",
        "source_id": "text",
        "source_type": "text",
        "summary": "text"
      }
    ],
    "evidence_count": 1,
    "external_issues": [
      {
        "external_id": "text",
        "link": "text",
        "source": "text"
      }
    ],
    "id": "text",
    "portal_visible_to_account_ids": [
      "text"
    ],
    "request_status": "text",
    "title": "text",
    "updated_at": "text"
  },
  "request_id": "text"
}

Merge feature requests

post
/feature-requests/merge

Merges one or more feature requests into a surviving feature request. Evidence and linked external issues are consolidated, and merged feature requests are archived. Merge requests that share a target should be sent serially.

Rate limit: 30 requests per minute

Authorizations
AuthorizationstringRequired

Authorization: Bearer

Body
merge_feature_request_idsstring[]Required

The IDs of the Feature Requests to merge into the surviving Feature Request. Must contain between 1 and 100 unique IDs.

merge_into_feature_request_idstringRequired

The ID of the Feature Request that will survive the merge.

Responses
200Success
application/json
request_idstringOptional

The request ID for tracking.

post/feature-requests/merge
POST /feature-requests/merge HTTP/1.1
Host: api.usepylon.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 77

{
  "merge_feature_request_ids": [
    "text"
  ],
  "merge_into_feature_request_id": "text"
}
{
  "data": {
    "created_at": "text",
    "custom_fields": {
      "priority": {
        "value": "high"
      }
    },
    "description": "text",
    "evidence": [
      {
        "account_id": "text",
        "created_at": "text",
        "external_url": "text",
        "id": "text",
        "source_id": "text",
        "source_type": "text",
        "summary": "text"
      }
    ],
    "evidence_count": 1,
    "external_issues": [
      {
        "external_id": "text",
        "link": "text",
        "source": "text"
      }
    ],
    "id": "text",
    "portal_visible_to_account_ids": [
      "text"
    ],
    "request_status": "text",
    "title": "text",
    "updated_at": "text"
  },
  "request_id": "text"
}

Link a customer account to a feature request

post
/feature-requests/{id}/evidence

Creates a manual evidence record linking a customer account to a feature request. Repeated requests create separate evidence records.

Rate limit: 120 requests per minute

Authorizations
AuthorizationstringRequired

Authorization: Bearer

Path parameters
idstringRequired

The ID of the feature request.

Body
account_idstringRequired

The ID of the customer account to link to the feature request.

summarystringOptional

A summary explaining why this account is linked. Defaults to "Account manually linked via API."

Default: Account manually linked via API.
Responses
200Success
application/json
request_idstringOptional
post/feature-requests/{id}/evidence
POST /feature-requests/{id}/evidence HTTP/1.1
Host: api.usepylon.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 66

{
  "account_id": "text",
  "summary": "Account manually linked via API."
}
{
  "data": {
    "account_id": "text",
    "created_at": "text",
    "external_url": "text",
    "id": "text",
    "source_id": "text",
    "source_type": "text",
    "summary": "text"
  },
  "request_id": "text"
}

Last updated

Was this helpful?