Neynar Documentation

Documentation Index

Fetch the complete documentation index at: /llms.txt

Use this file to discover all available pages before exploring further.

Send event

cURL

curl --request POST \
  --url https://api.neynar.com/v2/farcaster/app_host/user/event/ \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: NEYNAR_API_DOCS' \
  --data '
{
  "app_domain": "demo.neynar.com",
  "signed_message": "<string>"
}
'```

### Python

import requests

url = "https://api.neynar.com/v2/farcaster/app_host/user/event/"

payload = { "app_domain": "demo.neynar.com", "signed_message": "" } headers = { "x-api-key": "NEYNAR_API_DOCS", "Content-Type": "application/json" }

response = requests.post(url, json=payload, headers=headers)

print(response.text)


### JavaScript

const options = { method: 'POST', headers: {'x-api-key': 'NEYNAR_API_DOCS', 'Content-Type': 'application/json'}, body: JSON.stringify({app_domain: 'demo.neynar.com', signed_message: ''}) };

fetch('https://api.neynar.com/v2/farcaster/app_host/user/event/', options) .then(res => res.json()) .then(res => console.log(res)) .catch(err => console.error(err));


### PHP
"https://api.neynar.com/v2/farcaster/app_host/user/event/",\ 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([\ 'app_domain' => 'demo.neynar.com',\ 'signed_message' => ''\ ]),\ CURLOPT_HTTPHEADER => [\ "Content-Type: application/json",\ "x-api-key: NEYNAR_API_DOCS"\ ],\ ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; } ?>

### Go

package main

import ( "fmt" "strings" "net/http" "io" )

func main() {

url := "https://api.neynar.com/v2/farcaster/app_host/user/event/"

payload := strings.NewReader("{\n "app_domain": "demo.neynar.com",\n "signed_message": ""}\n")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("x-api-key", "NEYNAR_API_DOCS") 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)) }


### Unirest (Java)

HttpResponse response = Unirest.post("https://api.neynar.com/v2/farcaster/app_host/user/event/") .header("x-api-key", "NEYNAR_API_DOCS") .header("Content-Type", "application/json") .body("{\n "app_domain": "demo.neynar.com",\n "signed_message": ""}\n") .asString();


### Ruby

require 'uri' require 'net/http'

url = URI("https://api.neynar.com/v2/farcaster/app_host/user/event/")

http = Net::HTTP.new(url.host, url.port) http.use_ssl = true

request = Net::HTTP::Post.new(url) request["x-api-key"] = 'NEYNAR_API_DOCS' request["Content-Type"] = 'application/json' request.body = "{\n "app_domain": "demo.neynar.com",\n "signed_message": ""}\n"

response = http.request(request) puts response.read_body


### Response Status Codes

- 200
- 400
- 404
- 500
- 502

### Example Responses

{ "success": true, "message": "Successfully processed event" }


{ "message": "", "code": "", "property": "", "status": 123 }


### Node.js SDK

🔗 **SDK Method:** [appHostPostEvent](https://docs.neynar.com/nodejs-sdk/app-host-apis/appHostPostEvent)

Use this API endpoint with the Neynar Node.js SDK for typed responses and better developer experience.

#### Authorizations

- **x-api-key**: string, header (default: NEYNAR_API_DOCS, required)

API key to authorize requests

#### Body

application/json

- **app_domain**: string, required

Domain of the mini app

Example:

"demo.neynar.com"


- **signed_message**: string, required

JFS-signed message containing the event payload. The message must be properly signed and contain valid event information. Can be provided as a single string or json object.

#### Response

**200**: application/json Success

- **success**: boolean, required

Example:

true