Neynar Documentation

Create a webhook

cURL

curl --request POST \
  --url https://api.neynar.com/v2/farcaster/webhook/ \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: NEYNAR_API_DOCS' \
  --data '
{
  "name": "<string>",
  "url": "<string>",
  "subscription": {
    "cast.created": {
      "author_fids": [
        123
      ],
      "embedded_cast_author_fids": [
        123
      ],
      "embedded_cast_hashes": [
        "<string>"
      ],
      "embeds": "\b(farcaster|neynar)\b",
      "exclude_author_fids": [
        123
      ],
      "mentioned_fids": [
        123
      ],
      "minimum_author_score": 0,
      "parent_author_fids": [
        123
      ],
      "parent_hashes": [
        "<string>"
      ],
      "parent_urls": [
        "<string>"
      ],
      "root_parent_urls": [
        "<string>"
      ],
      "text": "(?i)\$degen"
    },
    "cast.deleted": {
      "author_fids": [
        123
      ],
      "embedded_cast_author_fids": [
        123
      ],
      "embedded_cast_hashes": [
        "<string>"
      ],
      "embeds": "\b(farcaster|neynar)\b",
      "exclude_author_fids": [
        123
      ],
      "mentioned_fids": [
        123
      ],
      "minimum_author_score": 0,
      "parent_author_fids": [
        123
      ],
      "parent_hashes": [
        "<string>"
      ],
      "parent_urls": [
        "<string>"
      ],
      "root_parent_urls": [
        "<string>"
      ],
      "text": "(?i)\$degen"
    },
    "follow.created": {
      "fids": [
        123
      ],
      "target_fids": [
        123
      ]
    },
    "follow.deleted": {
      "fids": [
        123
      ],
      "target_fids": [
        123
      ]
    },
    "reaction.created": {
      "fids": [
        123
      ],
      "target_cast_hashes": [
        "0x71d5225f77e0164388b1d4c120825f3a2c1f131c"
      ],
      "target_fids": [
        123
      ]
    },
    "reaction.deleted": {
      "fids": [
        123
      ],
      "target_cast_hashes": [
        "0x71d5225f77e0164388b1d4c120825f3a2c1f131c"
      ],
      "target_fids": [
        123
      ]
    },
    "trade.created": {
      "fids": [
        123
      ],
      "minimum_token_amount_usdc": 1,
      "minimum_trader_neynar_score": 0.5
    },
    "user.created": {},
    "user.updated": {
      "fids": [
        123
      ]
    }
  }
}
'

Python

import requests

url = "https://api.neynar.com/v2/farcaster/webhook/"

payload = {
    "name": "<string>",
    "url": "<string>",
    "subscription": {
        "cast.created": {
            "author_fids": [123],
            "embedded_cast_author_fids": [123],
            "embedded_cast_hashes": ["<string>"],
            "embeds": "\b(farcaster|neynar)\b",
            "exclude_author_fids": [123],
            "mentioned_fids": [123],
            "minimum_author_score": 0,
            "parent_author_fids": [123],
            "parent_hashes": ["<string>"],
            "parent_urls": ["<string>"],
            "root_parent_urls": ["<string>"],
            "text": "(?i)\$degen"
        },
        "cast.deleted": {
            "author_fids": [123],
            "embedded_cast_author_fids": [123],
            "embedded_cast_hashes": ["<string>"],
            "embeds": "\b(farcaster|neynar)\b",
            "exclude_author_fids": [123],
            "mentioned_fids": [123],
            "minimum_author_score": 0,
            "parent_author_fids": [123],
            "parent_hashes": ["<string>"],
            "parent_urls": ["<string>"],
            "root_parent_urls": ["<string>"],
            "text": "(?i)\$degen"
        },
        "follow.created": {
            "fids": [123],
            "target_fids": [123]
        },
        "follow.deleted": {
            "fids": [123],
            "target_fids": [123]
        },
        "reaction.created": {
            "fids": [123],
            "target_cast_hashes": ["0x71d5225f77e0164388b1d4c120825f3a2c1f131c"],
            "target_fids": [123]
        },
        "reaction.deleted": {
            "fids": [123],
            "target_cast_hashes": ["0x71d5225f77e0164388b1d4c120825f3a2c1f131c"],
            "target_fids": [123]
        },
        "trade.created": {
            "fids": [123],
            "minimum_token_amount_usdc": 1,
            "minimum_trader_neynar_score": 0.5
        },
        "user.created": {},
        "user.updated": { "fids": [123] }
    }
}

headers = {
    "x-api-key": "NEYNAR_API_DOCS",
    "Content-Type": "application/json"
}

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

print(response.text)

JavaScript (Fetch)

const options = {
  method: 'POST',
  headers: {'x-api-key': 'NEYNAR_API_DOCS', 'Content-Type': 'application/json'},
  body: JSON.stringify({
    name: '<string>',
    url: '<string>',
    subscription: {
      'cast.created': {
        author_fids: [123],
        embedded_cast_author_fids: [123],
        embedded_cast_hashes: ['<string>'],
        embeds: ' (farcaster|neynar)',
        exclude_author_fids: [123],
        mentioned_fids: [123],
        minimum_author_score: 0,
        parent_author_fids: [123],
        parent_hashes: ['<string>'],
        parent_urls: ['<string>'],
        root_parent_urls: ['<string>'],
        text: '(?i)\$degen'
      },
      'cast.deleted': {
        author_fids: [123],
        embedded_cast_author_fids: [123],
        embedded_cast_hashes: ['<string>'],
        embeds: ' (farcaster|neynar)',
        exclude_author_fids: [123],
        mentioned_fids: [123],
        minimum_author_score: 0,
        parent_author_fids: [123],
        parent_hashes: ['<string>'],
        parent_urls: ['<string>'],
        root_parent_urls: ['<string>'],
        text: '(?i)\$degen'
      },
      'follow.created': {fids: [123], target_fids: [123]},
      'follow.deleted': {fids: [123], target_fids: [123]},
      'reaction.created': {
        fids: [123],
        target_cast_hashes: ['0x71d5225f77e0164388b1d4c120825f3a2c1f131c'],
        target_fids: [123]
      },
      'reaction.deleted': {
        fids: [123],
        target_cast_hashes: ['0x71d5225f77e0164388b1d4c120825f3a2c1f131c'],
        target_fids: [123]
      },
      'trade.created': {fids: [123], minimum_token_amount_usdc: 1, minimum_trader_neynar_score: 0.5},
      'user.created': {},
      'user.updated': {fids: [123]}
    }
  })
};

fetch('https://api.neynar.com/v2/farcaster/webhook/', 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/webhook/",
  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([
    'name' => '<string>',
    'url' => '<string>',
    'subscription' => [
        'cast.created' => [
                'author_fids' => [
                                123
                ],
                'embedded_cast_author_fids' => [
                                123
                ],
                'embedded_cast_hashes' => [
                                '<string>'
                ],
                'embeds' => '\b(farcaster|neynar)\b',
                'exclude_author_fids' => [
                                123
                ],
                'mentioned_fids' => [
                                123
                ],
                'minimum_author_score' => 0,
                'parent_author_fids' => [
                                123
                ],
                'parent_hashes' => [
                                '<string>'
                ],
                'parent_urls' => [
                                '<string>'
                ],
                'root_parent_urls' => [
                                '<string>'
                ],
                'text' => '(?i)\$degen'
        ],
        'cast.deleted' => [
                'author_fids' => [
                                123
                ],
                'embedded_cast_author_fids' => [
                                123
                ],
                'embedded_cast_hashes' => [
                                '<string>'
                ],
                'embeds' => '\b(farcaster|neynar)\b',
                'exclude_author_fids' => [
                                123
                ],
                'mentioned_fids' => [
                                123
                ],
                'minimum_author_score' => 0,
                'parent_author_fids' => [
                                123
                ],
                'parent_hashes' => [
                                '<string>'
                ],
                'parent_urls' => [
                                '<string>'
                ],
                'root_parent_urls' => [
                                '<string>'
                ],
                'text' => '(?i)\$degen'
        ],
        'follow.created' => [
                'fids' => [
                                123
                ],
                'target_fids' => [
                                123
                ]
        ],
        'follow.deleted' => [
                'fids' => [
                                123
                ],
                'target_fids' => [
                                123
                ]
        ],
        'reaction.created' => [
                'fids' => [
                                123
                ],
                'target_cast_hashes' => [
                                '0x71d5225f77e0164388b1d4c120825f3a2c1f131c'
                ],
                'target_fids' => [
                                123
                ]
        ],
        'reaction.deleted' => [
                'fids' => [
                                123
                ],
                'target_cast_hashes' => [
                                '0x71d5225f77e0164388b1d4c120825f3a2c1f131c'
                ],
                'target_fids' => [
                                123
                ]
        ],
        'trade.created' => [
                'fids' => [
                                123
                ],
                'minimum_token_amount_usdc' => 1,
                'minimum_trader_neynar_score' => 0.5
        ],
        'user.created' => [

],
        'user.updated' => [
                'fids' => [
                                123
                ]
        ]
    ]
  ]),
  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/webhook/"

payload := strings.NewReader("{\n  \"name\": \"<string>\",\n  \"url\": \"<string>\",\n  \"subscription\": {\n    \"cast.created\": {\n      \"author_fids\": [\n        123\n      ],\n      \"embedded_cast_author_fids\": [\n        123\n      ],\n      \"embedded_cast_hashes\": [\n        \"<string>\"\n      ],\n      \"embeds\": \"\\b(farcaster|neynar)\\b\",\n      \"exclude_author_fids\": [\n        123\n      ],\n      \"mentioned_fids\": [\n        123\n      ],\n      \"minimum_author_score\": 0,\n      \"parent_author_fids\": [\n        123\n      ],\n      \"parent_hashes\": [\n        \"<string>\"\n      ],\n      \"parent_urls\": [\n        \"<string>\"\n      ],\n      \"root_parent_urls\": [\n        \"<string>\"\n      ],\n      \"text\": \"(?i)\\$degen\"\n    },\n    \"cast.deleted\": {\n      \"author_fids\": [\n        123\n      ],\n      \"embedded_cast_author_fids\": [\n        123\n      ],\n      \"embedded_cast_hashes\": [\n        \"<string>\"\n      ],\n      \"embeds\": \"\\b(farcaster|neynar)\\b\",\n      \"exclude_author_fids\": [\n        123\n      ],\n      \"mentioned_fids\": [\n        123\n      ],\n      \"minimum_author_score\": 0,\n      \"parent_author_fids\": [\n        123\n      ],\n      \"parent_hashes\": [\n        \"<string>\"\n      ],\n      \"parent_urls\": [\n        \"<string>\"\n      ],\n      \"root_parent_urls\": [\n        \"<string>\"\n      ],\n      \"text\": \"(?i)\\$degen\"\n    },\n    \"follow.created\": {\n      \"fids\": [\n        123\n      ],\n      \"target_fids\": [\n        123\n      ]\n    },\n    \"follow.deleted\": {\n      \"fids\": [\n        123\n      ],\n      \"target_fids\": [\n        123\n      ]\n    },\n    \"reaction.created\": {\n      \"fids\": [\n        123\n      ],\n      \"target_cast_hashes\": [\n        \"0x71d5225f77e0164388b1d4c120825f3a2c1f131c\"\n      ],\n      \"target_fids\": [\n        123\n      ]\n    },\n    \"reaction.deleted\": {\n      \"fids\": [\n        123\n      ],\n      \"target_cast_hashes\": [\n        \"0x71d5225f77e0164388b1d4c120825f3a2c1f131c\"\n      ],\n      \"target_fids\": [\n        123\n      ]\n    },\n    \"trade.created\": {\n      \"fids\": [\n        123\n      ],\n      \"minimum_token_amount_usdc\": 1,\n      \"minimum_trader_neynar_score\": 0.5\n    },\n    \"user.created\": {},\n    \"user.updated\": {\n      \"fids\": [\n        123\n      ]\n    }\n  }\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))
}

Java

HttpResponse<String> response = Unirest.post("https://api.neynar.com/v2/farcaster/webhook/")
  .header("x-api-key", "NEYNAR_API_DOCS")
  .header("Content-Type", "application/json")
  .body("{\n  \"name\": \"<string>\",\n  \"url\": \"<string>\",\n  \"subscription\": {\n    \"cast.created\": {\n      \"author_fids\": [\n        123\n      ],\n      \"embedded_cast_author_fids\": [\n        123\n      ],\n      \"embedded_cast_hashes\": [\n        \"<string>\"\n      ],\n      \"embeds\": \"\\b(farcaster|neynar)\\b\",\n      \"exclude_author_fids\": [\n        123\n      ],\n      \"mentioned_fids\": [\n        123\n      ],\n      \"minimum_author_score\": 0,\n      \"parent_author_fids\": [\n        123\n      ],\n      \"parent_hashes\": [\n        \"<string>\"\n      ],\n      \"parent_urls\": [\n        \"<string>\"\n      ],\n      \"root_parent_urls\": [\n        \"<string>\"\n      ],\n      \"text\": \"(?i)\\$degen\"\n    },\n    \"cast.deleted\": {\n      \"author_fids\": [\n        123\n      ],\n      \"embedded_cast_author_fids\": [\n        123\n      ],\n      \"embedded_cast_hashes\": [\n        \"<string>\"\n      ],\n      \"embeds\": \"\\b(farcaster|neynar)\\b\",\n      \"exclude_author_fids\": [\n        123\n      ],\n      \"mentioned_fids\": [\n        123\n      ],\n      \"minimum_author_score\": 0,\n      \"parent_author_fids\": [\n        123\n      ],\n      \"parent_hashes\": [\n        \"<string>\"\n      ],\n      \"parent_urls\": [\n        \"<string>\"\n      ],\n      \"root_parent_urls\": [\n        \"<string>\"\n      ],\n      \"text\": \"(?i)\\$degen\"\n    },\n    \"follow.created\": {\n      \"fids\": [\n        123\n      ],\n      \"target_fids\": [\n        123\n      ]\n    },\n    \"follow.deleted\": {\n      \"fids\": [\n        123\n      ],\n      \"target_fids\": [\n        123\n      ]\n    },\n    \"reaction.created\": {\n      \"fids\": [\n        123\n      ],\n      \"target_cast_hashes\": [\n        \"0x71d5225f77e0164388b1d4c120825f3a2c1f131c\"\n      ],\n      \"target_fids\": [\n        123\n      ]\n    },\n    \"reaction.deleted\": {\n      \"fids\": [\n        123\n      ],\n      \"target_cast_hashes\": [\n        \"0x71d5225f77e0164388b1d4c120825f3a2c1f131c\"\n      ],\n      \"target_fids\": [\n        123\n      ]\n    },\n    \"trade.created\": {\n      \"fids\": [\n        123\n      ],\n      \"minimum_token_amount_usdc\": 1,\n      \"minimum_trader_neynar_score\": 0.5\n    },\n    \"user.created\": {},\n    \"user.updated\": {\n      \"fids\": [\n        123\n      ]\n    }\n  }\n}")
  .asString();

Ruby

require 'uri'
require 'net/http'

url = URI("https://api.neynar.com/v2/farcaster/webhook/")

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  \"name\": \"<string>\",\n  \"url\": \"<string>\",\n  \"subscription\": {\n    \"cast.created\": {\n      \"author_fids\": [\n        123\n      ],\n      \"embedded_cast_author_fids\": [\n        123\n      ],\n      \"embedded_cast_hashes\": [\n        \"<string>\"\n      ],\n      \"embeds\": \"\\b(farcaster|neynar)\\b\",\n      \"exclude_author_fids\": [\n        123\n      ],\n      \"mentioned_fids\": [\n        123\n      ],\n      \"minimum_author_score\": 0,\n      \"parent_author_fids\": [\n        123\n      ],\n      \"parent_hashes\": [\n        \"<string>\"\n      ],\n      \"parent_urls\": [\n        \"<string>\"\n      ],\n      \"root_parent_urls\": [\n        \"<string>\"\n      ],\n      \"text\": \"(?i)\\$degen\"\n    },\n    \"cast.deleted\": {\n      \"author_fids\": [\n        123\n      ],\n      \"embedded_cast_author_fids\": [\n        123\n      ],\n      \"embedded_cast_hashes\": [\n        \"<string>\"\n      ],\n      \"embeds\": \"\\b(farcaster|neynar)\\b\",\n      \"exclude_author_fids\": [\n        123\n      ],\n      \"mentioned_fids\": [\n        123\n      ],\n      \"minimum_author_score\": 0,\n      \"parent_author_fids\": [\n        123\n      ],\n      \"parent_hashes\": [\n        \"<string>\"\n      ],\n      \"parent_urls\": [\n        \"<string>\"\n      ],\n      \"root_parent_urls\": [\n        \"<string>\"\n      ],\n      \"text\": \"(?i)\\$degen\"\n    },\n    \"follow.created\": {\n      \"fids\": [\n        123\n      ],\n      \"target_fids\": [\n        123\n      ]\n    },\n    \"follow.deleted\": {\n      \"fids\": [\n        123\n      ],\n      \"target_fids\": [\n        123\n      ]\n    },\n    \"reaction.created\": {\n      \"fids\": [\n        123\n      ],\n      \"target_cast_hashes\": [\n        \"0x71d5225f77e0164388b1d4c120825f3a2c1f131c\"\n      ],\n      \"target_fids\": [\n        123\n      ]\n    },\n    \"reaction.deleted\": {\n      \"fids\": [\n        123\n      ],\n      \"target_cast_hashes\": [\n        \"0x71d5225f77e0164388b1d4c120825f3a2c1f131c\"\n      ],\n      \"target_fids\": [\n        123\n      ]\n    },\n    \"trade.created\": {\n      \"fids\": [\n        123\n      ],\n      \"minimum_token_amount_usdc\": 1,\n      \"minimum_trader_neynar_score\": 0.5\n    },\n    \"user.created\": {},\n    \"user.updated\": {\n      \"fids\": [\n        123\n      ]\n    }\n  }\n}"

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

Response

Success responses (200)

{
  "message": "<string>",
  "success": true,
  "webhook": {
    "active": true,
    "created_at": "2023-11-07T05:31:56Z",
    "deleted_at": "2023-11-07T05:31:56Z",
    "description": "<string>",
    "developer_uuid": "<string>",
    "http_timeout": "<string>",
    "object": "webhook",
    "rate_limit": 123,
    "rate_limit_duration": "<string>",
    "secrets": [
      {
        "created_at": "<string>",
        "deleted_at": "<string>",
        "expires_at": "<string>",
        "uid": "<string>",
        "updated_at": "<string>",
        "value": "<string>"
      }
    ],
    "target_url": "<string>",
    "title": "<string>",
    "updated_at": "2023-11-07T05:31:56Z",
    "webhook_id": "<string>",
    "subscription": {
      "created_at": "2023-11-07T05:31:56Z",
      "filters": {
        "cast.created": {
          "author_fids": [
            123
          ],
          "embedded_cast_author_fids": [
            123
          ],
          "embedded_cast_hashes": [
            "<string>"
          ],
          "embeds": "\b(farcaster|neynar)\b",
          "exclude_author_fids": [
            123
          ],
          "mentioned_fids": [
            123
          ],
          "minimum_author_score": 0,
          "parent_author_fids": [
            123
          ],
          "parent_hashes": [
            "<string>"
          ],
          "parent_urls": [
            "<string>"
          ],
          "root_parent_urls": [
            "<string>"
          ],
          "text": "(?i)\$degen"
        },
        "cast.deleted": {
          "author_fids": [
            123
          ],
          "embedded_cast_author_fids": [
            123
          ],
          "embedded_cast_hashes": [
            "<string>"
          ],
          "embeds": "\b(farcaster|neynar)\b",
          "exclude_author_fids": [
            123
          ],
          "mentioned_fids": [
            123
          ],
          "minimum_author_score": 0,
          "parent_author_fids": [
            123
          ],
          "parent_hashes": [
            "<string>"
          ],
          "parent_urls": [
            "<string>"
          ],
          "root_parent_urls": [
            "<string>"
          ],
          "text": "(?i)\$degen"
        },
        "follow.created": {
          "fids": [
            123
          ],
          "target_fids": [
            123
          ]
        },
        "follow.deleted": {
          "fids": [
            123
          ],
          "target_fids": [
            123
          ]
        },
        "reaction.created": {
          "fids": [
            123
          ],
          "target_cast_hashes": [
            "0x71d5225f77e0164388b1d4c120825f3a2c1f131c"
          ],
          "target_fids": [
            123
          ]
        },
        "reaction.deleted": {
          "fids": [
            123
          ],
          "target_cast_hashes": [
            "0x71d5225f77e0164388b1d4c120825f3a2c1f131c"
          ],
          "target_fids": [
            123
          ]
        },
        "trade.created": {
          "fids": [
            123
          ],
          "minimum_token_amount_usdc": 1,
          "minimum_trader_neynar_score": 0.5
        },
        "user.created": {},
        "user.updated": {
          "fids": [
            123
          ]
        }
      },
      "object": "webhook_subscription",
      "subscription_id": "<string>",
      "updated_at": "2023-11-07T05:31:56Z"
    }
  }
}

Error responses (400/404)

{
  "message": "<string>",
  "code": "<string>",
  "property": "<string>",
  "status": 123
}