static void Main(string[] args) { // Use Application-only authentication to obtain a bearer token var oauthClient = new FluentClient("https://api.twitter.com"); //oauthClient.AddTrace(new ConsoleTraceWriter()); // uncomment to see requests in console oauthClient.SetAuthenticator(new HttpBasicAuthenticator("<yourApiKey>", "<yourSecret>")); var obtainBearerTokenRequest = oauthClient .To("obtain a bearer token") .Post("oauth2/token", r => r .AddParameter("grant_type", "client_credentials", ParameterType.GetOrPost)) .Expecting((dynamic response) => (string)response.access_token); var accessToken = obtainBearerTokenRequest.Execute(); // Authenticate API requests with the bearer token var apiClient = new FluentClient("https://api.twitter.com", "/1.1"); apiClient.SetAuthenticator( new OAuth2AuthorizationRequestHeaderAuthenticator(accessToken, "Bearer")); // Twitter use underscores but we love PascalCase apiClient.Serializer.ContractResolver = new UnderscorePropertyNamesContractResolver(); // Use the authenticated client to perform requests var searchTweetsRequest = apiClient .To("search for tweets") .Get("search/tweets.json", r => r .AddParameter("q", "@twitterapi") .AddParameter("result_type", "recent") .AddParameter("count", 50)) .Expecting((TwitterSearchResult result) => result.Statuses); var tweets = searchTweetsRequest.Execute(); Console.WriteLine("=== RESULTS ==="); foreach (var tweet in tweets) { Console.WriteLine("@{0}: \"{1}\" at {2}{3}", tweet.User.ScreenName, tweet.Text, tweet.CreatedAt, Environment.NewLine); } Console.ReadLine(); }