## By filters

Use this when you need: **By filters**.

## Usage

```javascript
import { NeynarAPIClient, Configuration } from "@neynar/nodejs-sdk";

const client = new NeynarAPIClient(
  new Configuration({ apiKey: "YOUR_NEYNAR_API_KEY" })
);

const res = await client.fetchFeed({
  // xNeynarExperimental: true,
  // feedType: "value",
  // filterType: "value",
  // fid: 123,
  // fids: "example",
  // parentUrl: "example",
  // channelId: "example",
  // membersOnly: true,
  // embedUrl: "example",
  // embedTypes: [],
  // withRecasts: true,
  // limit: 123,
  // cursor: "example",
  // viewerFid: 123,
});
console.log(res);
```

## Parameters

| Parameter                 | Type                                 | Required | Description |
| ------------------------- | ------------------------------------ | -------- | ----------- |
| `xNeynarExperimental`     | `boolean`                            | ❌      | -           |
| `feedType`                | `FetchFeedFeedTypeEnum`             | ❌      | -           |
| `filterType`              | `FetchFeedFilterTypeEnum`           | ❌      | -           |
| `fid`                     | `number`                             | ❌      | -           |
| `fids`                    | `string`                             | ❌      | -           |
| `parentUrl`               | `string`                             | ❌      | -           |
| `channelId`               | `string`                             | ❌      | -           |
| `membersOnly`             | `boolean`                            | ❌      | -           |
| `embedUrl`                | `string`                             | ❌      | -           |
| `embedTypes`              | `Array<FetchFeedEmbedTypesEnum>`    | ❌      | -           |
| `withRecasts`             | `boolean`                            | ❌      | -           |
| `limit`                   | `number`                             | ❌      | -           |
| `cursor`                  | `string`                             | ❌      | -           |
| `viewerFid`               | `number`                             | ❌      | -           |

## Response

Returns a `RequestArgs` object.

## Error Handling

```javascript
try {
  const res = await client.fetchFeed({ /* required fields */ });
  // use res
} catch (err) {
  // Axios/HTTP errors, invalid params, auth issues, etc.
  console.error(err);
}
```

## Tips

- Provide a **viewerFid** when supported to respect mutes/blocks and include `viewer_context`.
- Keep requests scoped (e.g., use `limit`) to improve latency.
- Cache results where sensible.
