Feature Requests
Returns feature requests matching the given criteria. Supports semantic search, status filtering, and pagination.
Rate limit: 120 requests per minute
Authorization: Bearer
Filter by one or more account IDs. Returns only feature requests with evidence linked to any of the given accounts.
The maximum number of feature requests to return. Defaults to 100, max 1000.
A search query string for semantic and keyword matching. If omitted, all feature requests are returned (subject to other filters and limit).
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.
The request was invalid or could not be completed.
The authenticated caller or organization is not allowed to access this endpoint or operation.
An unexpected internal error occurred.
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"
}Updates an existing feature request. Only provided fields are modified.
Rate limit: 120 requests per minute
Authorization: Bearer
The ID of the feature request to update.
The new request status. Can be a built-in status (new, in_progress, closed, archived) or a custom status slug.
The request was invalid or could not be completed.
The authenticated caller or organization is not allowed to access this endpoint or operation.
An unexpected internal error occurred.
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"
}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
Authorization: Bearer
The ID of the feature request.
The ID of the customer account to link to the feature request.
A summary explaining why this account is linked. Defaults to "Account manually linked via API."
Account manually linked via API.The request was invalid or could not be completed.
The authenticated caller or organization is not allowed to access this endpoint or operation.
An unexpected internal error occurred.
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"
}Permanently deletes a feature request and its associated evidence.
Rate limit: 120 requests per minute
Authorization: Bearer
The ID of the feature request to delete.
The request was invalid or could not be completed.
The authenticated caller or organization is not allowed to access this endpoint or operation.
An unexpected internal error occurred.
DELETE /feature-requests/{id} HTTP/1.1
Host: api.usepylon.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"request_id": "text"
}Returns a single feature request by ID. Optionally includes evidence items when fetch_evidence is true.
Rate limit: 300 requests per minute
Authorization: Bearer
The ID of the feature request to fetch.
Whether to include evidence items in the response. Defaults to false.
The request was invalid or could not be completed.
The authenticated caller or organization is not allowed to access this endpoint or operation.
An unexpected internal error occurred.
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"
}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
Authorization: Bearer
The description of the feature request. Ignored when should_auto_fetch_evidence is true, since the description is then generated from gathered evidence.
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.
The title of the feature request.
The request was invalid or could not be completed.
The authenticated caller or organization is not allowed to access this endpoint or operation.
An unexpected internal error occurred.
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"
}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
Authorization: Bearer
The ID of the feature request.
The account IDs to add or remove portal visibility for.
Whether the specified accounts should be able to see this feature request in the portal. True to add visibility, false to remove.
The request was invalid or could not be completed.
The authenticated caller or organization is not allowed to access this endpoint or operation.
An unexpected internal error occurred.
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"
}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
Authorization: Bearer
The IDs of the Feature Requests to merge into the surviving Feature Request. Must contain between 1 and 100 unique IDs.
The ID of the Feature Request that will survive the merge.
The request ID for tracking.
The request was invalid or could not be completed.
The authenticated caller or organization is not allowed to access this endpoint or operation.
An unexpected internal error occurred.
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"
}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
Authorization: Bearer
The ID of the feature request.
The ID of the customer account to link to the feature request.
A summary explaining why this account is linked. Defaults to "Account manually linked via API."
Account manually linked via API.The request was invalid or could not be completed.
The authenticated caller or organization is not allowed to access this endpoint or operation.
An unexpected internal error occurred.
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?

