> ## Documentation Index
> Fetch the complete documentation index at: https://docs.twexapi.io/llms.txt
> Use this file to discover all available pages before exploring further.

# C# / .NET SDK

> Use the TwexAPI C# SDK for tweet search, follower exports, DMs, and X automation in .NET services.

Use the C# SDK when you want typed request objects, async/await support, retries, and pagination helpers for TwexAPI REST workflows in .NET services and worker applications.

| C# task        | SDK call                   | Save         |
| -------------- | -------------------------- | ------------ |
| Search tweets  | `sdk.Search.Advanced`      | `NextCursor` |
| Read profile   | `sdk.Users.GetAbout`       | `ScreenName` |
| List followers | `sdk.Users.Followers.List` | cursor       |

## Install

```bash theme={null}
dotnet add package XapiScraper --version 0.1.0
```

NuGet publication is pending. Install from GitHub source until it is published:

```bash theme={null}
git clone https://github.com/twexapi-dev/x-api-scraper-csharp.git
cd x-api-scraper-csharp
dotnet add reference src/XapiScraper/XapiScraper.csproj
```

Source: [twexapi-dev/x-api-scraper-csharp](https://github.com/twexapi-dev/x-api-scraper-csharp)

## Authenticate

```bash theme={null}
export X_API_SCRAPER_KEY="YOUR_API_KEY"
```

```csharp theme={null}
using XapiScraper;
using XapiScraper.Models.Components;

var sdk = new XApiScraperSDK(new XApiScraperSDK.Config
{
    BearerAuth = Environment.GetEnvironmentVariable("X_API_SCRAPER_KEY")
});

var req = new AdvancedSearchCursorQuery
{
    SearchTerms = new List<string> { "from:elonmusk" },
    SortBy = "Latest",
    NextCursor = ""
};

var res = await sdk.Search.Advanced(req);
```

## Basic example

Look up a profile and list followers:

```csharp theme={null}
var about = await sdk.Users.GetAbout(new UsersGetAboutRequest
{
    ScreenName = "elonmusk"
});

var followers = await sdk.Users.Followers.List(new FollowersFollowingV3Query
{
    Username = "elonmusk"
});
```

## Workflow: search tweets

```csharp theme={null}
var cursor = "";
while (true)
{
    var page = await sdk.Search.Advanced(new AdvancedSearchCursorQuery
    {
        SearchTerms = new List<string> { "from:elonmusk AI" },
        SortBy = "Latest",
        NextCursor = cursor
    });

    foreach (var tweet in page.Tweets ?? Enumerable.Empty<Tweet>())
    {
        // process tweet rows
    }

    if (page.HasNextPage != true || string.IsNullOrEmpty(page.NextCursor))
    {
        break;
    }

    cursor = page.NextCursor;
}
```

## Workflow: post a tweet

Write actions need a Twitter cookie or `auth_token` on the request:

```csharp theme={null}
await sdk.Tweets.Actions.Create(new CreateTweetRequest
{
    TweetContent = "Hello from the TwexAPI C# SDK.",
    Cookie = Environment.GetEnvironmentVariable("TWITTER_COOKIE")
});
```

## Error handling

The SDK throws `XapiScraper.Models.Errors.APIException` for HTTP failures. Inspect `StatusCode` and `Body` before retrying 4xx responses.

## References

* [SDKs overview](/sdks)
* [Authentication](/authentication)
* [Microsoft Agent Framework](/guides/microsoft-agent-framework)
* [Advanced Twitter Search](/api-reference/search-endpoints/advanced-twitter-search)
* [Source Repository](https://github.com/twexapi-dev/x-api-scraper-csharp)
