Skip to content
Branch: master
Go to file

Latest commit


Failed to load latest commit information.
Latest commit message
Commit time


Ramone - A C# library for working with REST services and Web APIs

Ramone is a C# library that simplifies access to HTTP based Web APIs and REST
services. It has a strong focus on REST and implements elements of the Uniform
Interface as first class citizens of the API.

This means natural support for

- URIs as identifiers for resources.
- The standard HTTP methods GET, POST, PUT and more.
- Multiple media types (XML, JSON, HTML, ATOM, multipart, urlencoded and more).
- User defined media types.
- Hyper media controls (linking and key/value forms).
- Automatic redirect handling.
- File up/download.
- Asynchronous requests

What Ramone does is to wrap the inner workings of HTTP (using .NET's 
HttpWebRequest/HttpWebResponse classes) and make encoding and decoding easier 
through the use of codecs for the various formats used on the web.

In its most simple form you can GET a resource like this:

  // Define resource type
  class Cat
    public string Name { get; set; }
    public DateTime DateOfBirth { get; set; }

  // Create session pointing to service root
  ISession Session = RamoneConfiguration.NewSession(new Uri(""));

  // Setup HTTP request
  Request req = Session.Bind("/cat/{name}", new { name = "Mike" });

  // Make actual request
  using (var resp = req.AcceptXml().Get<Cat>())
    Cat c = resp.Body;
    Console.WriteLine("Cat with name={0} was born on={1:d}.", c.Name, c.DateOfBirth);

See more examples here:

Happy hacking.

Jorn Wildt

Binaries are available on NuGet:


I am trying to write a complete downloadable manual which is available as a PDF. You can
either download that together with the binaries via the links above or access the nightly
build here:

There are some online examples on the GitHub wiki:

In addition to this there is a few blog posts:

  Consuming Web APIs in C# with Ramone

  Introducing the Ramone C# Library for Web API Clients

  Ramone: Consuming Hyper-Media REST Services in C#

  JSON-Patch support in Ramone

  Using Ramone for OAuth2 authorization with Google APIs

  Asynchronous HTTP requests using Ramone

The name "Ramone" was inspired by the character "Ramone" in the movie "Cars".
In the movie Ramone is an easy going car. Hopefully you will find using the 
Ramone library just as easy going. You are of course also free to associate 
Ramone with the punk band "The Ramones" if that suits you better :-)

To use Ramone in a .NET project you must first reference the Ramone.dll
assembly. This assembly contains both the core Ramone code as well as supporting
libraries (JsonFx, HtmlAgilityPack and more).

If you already have the supporting libraries in your code base then you should
reference Ramone.Core.dll which contains only the core Ramone code.

Here is how to build Ramone from scratch:

1) Download the source from GitHub (
2) Open "Ramone.sln" and build the whole project.
   - This builds the core Ramone.dll and additional test projects

- RestSharp
- RestFulie
- RESTAgent
- Dynamic REST
- Spring.NET Rest client
- Microsoft WCF HttpClient
- Hammock (discontinued by the developer)

Twitter: @JornWildt

Please add bug reports as issues on GitHub, thanks.

Thanks to the OpenRasta ( and Restfulie (
projects for inspiration.

Thanks to cBrain ( for investing hours in the project.

Thanks to these contributers:

Ramone includes distributions of:

    licens (MIT):

  Html Agility Pack
    License (Ms-PL):

  Cutting Edge Conditions
    License (MIT):

    License (MIT):

Ramone is distributed under the MIT License:
A copy of this license is included in the file LICENSE.TXT.


A C# client framework for consuming HTTP/REST services




No releases published


You can’t perform that action at this time.