User actions across apps
curl --request POST \
--url https://api.neynar.com/v2/farcaster/action/ \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"action": {
"type": "create.user",
"payload": {}
},
"base_url": "https://example.com",
"signer_uuid": "123e4567-e89b-12d3-a456-426614174000"
}
'import requests
url = "https://api.neynar.com/v2/farcaster/action/"
payload = {
"action": {
"type": "create.user",
"payload": {}
},
"base_url": "https://example.com",
"signer_uuid": "123e4567-e89b-12d3-a456-426614174000"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
action: {type: 'create.user', payload: {}},
base_url: 'https://example.com',
signer_uuid: '123e4567-e89b-12d3-a456-426614174000'
})
};
fetch('https://api.neynar.com/v2/farcaster/action/', 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.neynar.com/v2/farcaster/action/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'action' => [
'type' => 'create.user',
'payload' => [
]
],
'base_url' => 'https://example.com',
'signer_uuid' => '123e4567-e89b-12d3-a456-426614174000'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.neynar.com/v2/farcaster/action/"
payload := strings.NewReader("{\n \"action\": {\n \"type\": \"create.user\",\n \"payload\": {}\n },\n \"base_url\": \"https://example.com\",\n \"signer_uuid\": \"123e4567-e89b-12d3-a456-426614174000\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.neynar.com/v2/farcaster/action/")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"action\": {\n \"type\": \"create.user\",\n \"payload\": {}\n },\n \"base_url\": \"https://example.com\",\n \"signer_uuid\": \"123e4567-e89b-12d3-a456-426614174000\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.neynar.com/v2/farcaster/action/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"action\": {\n \"type\": \"create.user\",\n \"payload\": {}\n },\n \"base_url\": \"https://example.com\",\n \"signer_uuid\": \"123e4567-e89b-12d3-a456-426614174000\"\n}"
response = http.request(request)
puts response.read_body{}Action
User actions across apps
Securely communicate and perform actions on behalf of users across different apps. It enables an app to send data or trigger actions in another app on behalf of a mutual user by signing messages using the userβs Farcaster signer.
POST
/
v2
/
farcaster
/
action
/
User actions across apps
curl --request POST \
--url https://api.neynar.com/v2/farcaster/action/ \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"action": {
"type": "create.user",
"payload": {}
},
"base_url": "https://example.com",
"signer_uuid": "123e4567-e89b-12d3-a456-426614174000"
}
'import requests
url = "https://api.neynar.com/v2/farcaster/action/"
payload = {
"action": {
"type": "create.user",
"payload": {}
},
"base_url": "https://example.com",
"signer_uuid": "123e4567-e89b-12d3-a456-426614174000"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
action: {type: 'create.user', payload: {}},
base_url: 'https://example.com',
signer_uuid: '123e4567-e89b-12d3-a456-426614174000'
})
};
fetch('https://api.neynar.com/v2/farcaster/action/', 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.neynar.com/v2/farcaster/action/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'action' => [
'type' => 'create.user',
'payload' => [
]
],
'base_url' => 'https://example.com',
'signer_uuid' => '123e4567-e89b-12d3-a456-426614174000'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.neynar.com/v2/farcaster/action/"
payload := strings.NewReader("{\n \"action\": {\n \"type\": \"create.user\",\n \"payload\": {}\n },\n \"base_url\": \"https://example.com\",\n \"signer_uuid\": \"123e4567-e89b-12d3-a456-426614174000\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.neynar.com/v2/farcaster/action/")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"action\": {\n \"type\": \"create.user\",\n \"payload\": {}\n },\n \"base_url\": \"https://example.com\",\n \"signer_uuid\": \"123e4567-e89b-12d3-a456-426614174000\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.neynar.com/v2/farcaster/action/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"action\": {\n \"type\": \"create.user\",\n \"payload\": {}\n },\n \"base_url\": \"https://example.com\",\n \"signer_uuid\": \"123e4567-e89b-12d3-a456-426614174000\"\n}"
response = http.request(request)
puts response.read_body{}Related tutorial: Farcaster Actions Spec
Node.js SDK
π SDK Method: publishFarcasterAction Use this API endpoint with the Neynar Node.js SDK for typed responses and better developer experience.Authorizations
API key to authorize requests
Body
application/json
Show child attributes
Show child attributes
The base URL of the app on which the action is being performed.
Example:
"https://example.com"
The signer_uuid of the user on behalf of whom the action is being performed.
Example:
"123e4567-e89b-12d3-a456-426614174000"
Response
200 - application/json
Success
The response is of type object.
Related topics
publishFarcasterActionFarcaster Actions SpecMini App AuthenticationNeynar User ScoreEnabled notificationsWas this page helpful?
βI