curl --request GET \
--url https://api.privy.io/v1/intents/{intent_id} \
--header 'Authorization: Basic <encoded-value>' \
--header 'privy-app-id: <privy-app-id>'HttpResponse<String> response = Unirest.get("https://api.privy.io/v1/intents/{intent_id}")
.header("privy-app-id", "<privy-app-id>")
.header("Authorization", "Basic <encoded-value>")
.asString();const options = {
method: 'GET',
headers: {'privy-app-id': '<privy-app-id>', Authorization: 'Basic <encoded-value>'}
};
fetch('https://api.privy.io/v1/intents/{intent_id}', 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.privy.io/v1/intents/{intent_id}",
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: Basic <encoded-value>",
"privy-app-id: <privy-app-id>"
],
]);
$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.privy.io/v1/intents/{intent_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("privy-app-id", "<privy-app-id>")
req.Header.Add("Authorization", "Basic <encoded-value>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"intent_id": "clpq1234567890abcdefghij",
"intent_type": "RPC",
"created_by_display_name": "[email protected]",
"created_by_id": "did:privy:clabcd123",
"created_at": 1741834854578,
"resource_id": "xs76o3pi0v5syd62ui1wmijw",
"authorization_details": [
{
"members": [
{
"type": "user",
"user_id": "did:privy:clabcd123",
"signed_at": null
}
],
"threshold": 1,
"display_name": "Admin Key Quorum"
}
],
"status": "pending",
"custom_expiry": false,
"expires_at": 1741921254578,
"request_details": {
"method": "POST",
"url": "https://api.privy.io/v1/wallets/xs76o3pi0v5syd62ui1wmijw/rpc",
"body": {
"method": "eth_sendTransaction",
"caip2": "eip155:8453",
"chain_type": "ethereum",
"params": {
"transaction": {
"to": "0x0000000000000000000000000000000000000000",
"value": 1
}
}
}
}
}Get intent
Retrieve an intent by ID. Returns its current status, authorization details, and execution result when applicable. Requests authenticated with an app secret can retrieve any intent for the app. Requests authenticated with a user token can retrieve only intents that the authenticated user created, must approve, or has signed. Unrelated intents return a 404 response.
curl --request GET \
--url https://api.privy.io/v1/intents/{intent_id} \
--header 'Authorization: Basic <encoded-value>' \
--header 'privy-app-id: <privy-app-id>'HttpResponse<String> response = Unirest.get("https://api.privy.io/v1/intents/{intent_id}")
.header("privy-app-id", "<privy-app-id>")
.header("Authorization", "Basic <encoded-value>")
.asString();const options = {
method: 'GET',
headers: {'privy-app-id': '<privy-app-id>', Authorization: 'Basic <encoded-value>'}
};
fetch('https://api.privy.io/v1/intents/{intent_id}', 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.privy.io/v1/intents/{intent_id}",
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: Basic <encoded-value>",
"privy-app-id: <privy-app-id>"
],
]);
$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.privy.io/v1/intents/{intent_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("privy-app-id", "<privy-app-id>")
req.Header.Add("Authorization", "Basic <encoded-value>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"intent_id": "clpq1234567890abcdefghij",
"intent_type": "RPC",
"created_by_display_name": "[email protected]",
"created_by_id": "did:privy:clabcd123",
"created_at": 1741834854578,
"resource_id": "xs76o3pi0v5syd62ui1wmijw",
"authorization_details": [
{
"members": [
{
"type": "user",
"user_id": "did:privy:clabcd123",
"signed_at": null
}
],
"threshold": 1,
"display_name": "Admin Key Quorum"
}
],
"status": "pending",
"custom_expiry": false,
"expires_at": 1741921254578,
"request_details": {
"method": "POST",
"url": "https://api.privy.io/v1/wallets/xs76o3pi0v5syd62ui1wmijw/rpc",
"body": {
"method": "eth_sendTransaction",
"caip2": "eip155:8453",
"chain_type": "ethereum",
"params": {
"transaction": {
"to": "0x0000000000000000000000000000000000000000",
"value": 1
}
}
}
}
}Authorizations
Basic Auth header with your app ID as the username and your app secret as the password.
Headers
ID of your Privy app.
Path Parameters
ID of the intent.
Response
Intent details.
- RpcIntentResponse
- TransferIntentResponse
- WalletIntentResponse
- PolicyIntentResponse
- RuleIntentResponse
- KeyQuorumIntentResponse
Response for an RPC intent
Unique ID for the intent
Display name of the user who created the intent
Unix timestamp when the intent was created
ID of the resource being modified (wallet_id, policy_id, etc)
Detailed authorization information including key quorum members, thresholds, and signature status
Show child attributes
Show child attributes
Current status of an intent.
pending, processing, executed, failed, expired, rejected, dismissed Whether this intent has a custom expiry time set by the client. If false, the intent expires after a default duration.
Unix timestamp when the intent expires
RPC The original RPC request that would be sent to the wallet endpoint
Show child attributes
Show child attributes
ID of the user who created the intent. If undefined, the intent was created using the app secret
Unix timestamp when the intent was rejected, present when status is 'rejected'
Unix timestamp when the intent was dismissed, present when status is 'dismissed'
Human-readable reason for dismissal, present when status is 'dismissed'
Current state of the wallet before any changes. If undefined, the resource was deleted and no longer exists
Show child attributes
Show child attributes
{
"id": "id2tptkqrxd39qo9j423etij",
"address": "0xF1DBff66C993EE895C8cb176c30b07A559d76496",
"display_name": "Treasury",
"external_id": "my-order-123",
"chain_type": "ethereum",
"policy_ids": [],
"additional_signers": [],
"owner_id": "rkiz0ivz254drv1xw982v3jq",
"entity": {
"id": "jorpjo4rfxj62nx1itt8y1zt",
"type": "user"
},
"created_at": 1741834854578,
"exported_at": null,
"imported_at": null,
"archived_at": null
}
Result of RPC execution (only present if status is 'executed' or 'failed')
Show child attributes
Show child attributes
Was this page helpful?

