List Prompt Actions
curl --request GET \
--url https://api.reply.io/v3/prompt-actions \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.reply.io/v3/prompt-actions"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.reply.io/v3/prompt-actions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.reply.io/v3/prompt-actions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.reply.io/v3/prompt-actions"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.reply.io/v3/prompt-actions")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.reply.io/v3/prompt-actions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"items": [
{
"id": 312,
"name": "Company focus summary",
"prompt": "Summarise in one sentence what {{Company}} sells, based on their website.",
"outputs": [
{
"id": 84,
"label": "Company focus",
"customFieldId": 1907,
"customFieldName": "Company focus",
"fieldType": "text"
}
],
"createdAt": "2026-09-02T11:24:31.120Z",
"lastRunAt": "2026-09-14T08:03:55.000Z"
}
],
"hasMore": true
}{
"title": "Bad Request",
"status": 400,
"detail": "Parameter 'top' must be between 1 and 1000",
"code": "promptAction.invalidInput"
}{
"title": "Unauthorized",
"status": 401,
"detail": "Authentication credentials are missing or invalid."
}{
"title": "Forbidden",
"status": 403,
"detail": "Prompt Actions feature is not available for your team",
"code": "promptAction.featureDisabled"
}{
"title": "Too Many Requests",
"status": 429,
"detail": "API calls quota exceeded! maximum admitted 100 per 1m."
}Prompt Actions
List Prompt Actions
New. This endpoint shipped recently. If anything about it is unclear or could work better for you, tell us in the developer Slack.
contacts:read scope (or a broader one that includes it).
Browse the Prompt Actions your team has saved, newest activity included. Each one carries its prompt text and the custom fields its outputs are written into. Paged with top and skip.
GET
/
v3
/
prompt-actions
List Prompt Actions
curl --request GET \
--url https://api.reply.io/v3/prompt-actions \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.reply.io/v3/prompt-actions"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.reply.io/v3/prompt-actions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.reply.io/v3/prompt-actions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.reply.io/v3/prompt-actions"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.reply.io/v3/prompt-actions")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.reply.io/v3/prompt-actions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"items": [
{
"id": 312,
"name": "Company focus summary",
"prompt": "Summarise in one sentence what {{Company}} sells, based on their website.",
"outputs": [
{
"id": 84,
"label": "Company focus",
"customFieldId": 1907,
"customFieldName": "Company focus",
"fieldType": "text"
}
],
"createdAt": "2026-09-02T11:24:31.120Z",
"lastRunAt": "2026-09-14T08:03:55.000Z"
}
],
"hasMore": true
}{
"title": "Bad Request",
"status": 400,
"detail": "Parameter 'top' must be between 1 and 1000",
"code": "promptAction.invalidInput"
}{
"title": "Unauthorized",
"status": 401,
"detail": "Authentication credentials are missing or invalid."
}{
"title": "Forbidden",
"status": 403,
"detail": "Prompt Actions feature is not available for your team",
"code": "promptAction.featureDisabled"
}{
"title": "Too Many Requests",
"status": 429,
"detail": "API calls quota exceeded! maximum admitted 100 per 1m."
}Authorizations
Authenticate every request with a Bearer token. Pass your Reply API key in the
Authorization header:
Authorization: Bearer <your-api-key>
Get your API key from the Reply dashboard: Settings → API Key.
Query Parameters
Maximum number of items to return (default 100, max 1000)
Number of items to skip