APIVerve.API.RSStoJSON 1.2.0

Prefix Reserved
dotnet add package APIVerve.API.RSStoJSON --version 1.2.0
                    
NuGet\Install-Package APIVerve.API.RSStoJSON -Version 1.2.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="APIVerve.API.RSStoJSON" Version="1.2.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="APIVerve.API.RSStoJSON" Version="1.2.0" />
                    
Directory.Packages.props
<PackageReference Include="APIVerve.API.RSStoJSON" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add APIVerve.API.RSStoJSON --version 1.2.0
                    
#r "nuget: APIVerve.API.RSStoJSON, 1.2.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package APIVerve.API.RSStoJSON@1.2.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=APIVerve.API.RSStoJSON&version=1.2.0
                    
Install as a Cake Addin
#tool nuget:?package=APIVerve.API.RSStoJSON&version=1.2.0
                    
Install as a Cake Tool

RSStoJSON API

RSS to JSON is a simple tool for converting RSS feeds into JSON format. It returns the RSS feed in JSON format.

Build Status Code Climate Prod Ready

This is a .NET Wrapper for the RSStoJSON API


Installation

Using the .NET CLI:

dotnet add package APIVerve.API.RSStoJSON

Using the Package Manager:

nuget install APIVerve.API.RSStoJSON

Using the Package Manager Console:

Install-Package APIVerve.API.RSStoJSON

From within Visual Studio:

  1. Open the Solution Explorer
  2. Right-click on a project within your solution
  3. Click on Manage NuGet Packages
  4. Click on the Browse tab and search for "APIVerve.API.RSStoJSON"
  5. Click on the APIVerve.API.RSStoJSON package, select the appropriate version in the right-tab and click Install

Configuration

Before using the rsstojson API client, you have to setup your account and obtain your API Key. You can get it by signing up at https://apiverve.com


Quick Start

Here's a simple example to get you started quickly:

using System;
using APIVerve.API.RSStoJSON;

class Program
{
    static async Task Main(string[] args)
    {
        // Initialize the API client
        var apiClient = new RSStoJSONAPIClient("[YOUR_API_KEY]");

        var queryOptions = new RSStoJSONQueryOptions {
    url = "https://www.nasa.gov/rss/dyn/breaking_news.rss"
};

        // Make the API call
        try
        {
            var response = await apiClient.ExecuteAsync(queryOptions);

            if (response.Error != null)
            {
                Console.WriteLine($"API Error: {response.Error}");
            }
            else
            {
                Console.WriteLine("Success!");
                // Access response data using the strongly-typed ResponseObj properties
                Console.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(response, Newtonsoft.Json.Formatting.Indented));
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Exception: {ex.Message}");
        }
    }
}

Usage

The RSStoJSON API documentation is found here: https://docs.apiverve.com/ref/rsstojson. You can find parameters, example responses, and status codes documented here.

Setup

Authentication

RSStoJSON API uses API Key-based authentication. When you create an instance of the API client, you can pass your API Key as a parameter.

// Create an instance of the API client
var apiClient = new RSStoJSONAPIClient("[YOUR_API_KEY]");

Usage Examples

The modern async/await pattern provides the best performance and code readability:

using System;
using System.Threading.Tasks;
using APIVerve.API.RSStoJSON;

public class Example
{
    public static async Task Main(string[] args)
    {
        var apiClient = new RSStoJSONAPIClient("[YOUR_API_KEY]");

        var queryOptions = new RSStoJSONQueryOptions {
    url = "https://www.nasa.gov/rss/dyn/breaking_news.rss"
};

        var response = await apiClient.ExecuteAsync(queryOptions);

        if (response.Error != null)
        {
            Console.WriteLine($"Error: {response.Error}");
        }
        else
        {
            Console.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(response, Newtonsoft.Json.Formatting.Indented));
        }
    }
}

Synchronous Usage

If you need to use synchronous code, you can use the Execute method:

using System;
using APIVerve.API.RSStoJSON;

public class Example
{
    public static void Main(string[] args)
    {
        var apiClient = new RSStoJSONAPIClient("[YOUR_API_KEY]");

        var queryOptions = new RSStoJSONQueryOptions {
    url = "https://www.nasa.gov/rss/dyn/breaking_news.rss"
};

        var response = apiClient.Execute(queryOptions);

        if (response.Error != null)
        {
            Console.WriteLine($"Error: {response.Error}");
        }
        else
        {
            Console.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(response, Newtonsoft.Json.Formatting.Indented));
        }
    }
}

Error Handling

The API client provides comprehensive error handling. Here are some examples:

Handling API Errors

using System;
using System.Threading.Tasks;
using APIVerve.API.RSStoJSON;

public class Example
{
    public static async Task Main(string[] args)
    {
        var apiClient = new RSStoJSONAPIClient("[YOUR_API_KEY]");

        var queryOptions = new RSStoJSONQueryOptions {
    url = "https://www.nasa.gov/rss/dyn/breaking_news.rss"
};

        try
        {
            var response = await apiClient.ExecuteAsync(queryOptions);

            // Check for API-level errors
            if (response.Error != null)
            {
                Console.WriteLine($"API Error: {response.Error}");
                Console.WriteLine($"Status: {response.Status}");
                return;
            }

            // Success - use the data
            Console.WriteLine("Request successful!");
            Console.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(response, Newtonsoft.Json.Formatting.Indented));
        }
        catch (ArgumentException ex)
        {
            // Invalid API key or parameters
            Console.WriteLine($"Invalid argument: {ex.Message}");
        }
        catch (System.Net.Http.HttpRequestException ex)
        {
            // Network or HTTP errors
            Console.WriteLine($"Network error: {ex.Message}");
        }
        catch (Exception ex)
        {
            // Other errors
            Console.WriteLine($"Unexpected error: {ex.Message}");
        }
    }
}

Comprehensive Error Handling with Retry Logic

using System;
using System.Threading.Tasks;
using APIVerve.API.RSStoJSON;

public class Example
{
    public static async Task Main(string[] args)
    {
        var apiClient = new RSStoJSONAPIClient("[YOUR_API_KEY]");

        // Configure retry behavior (max 3 retries)
        apiClient.SetMaxRetries(3);        // Retry up to 3 times (default: 0, max: 3)
        apiClient.SetRetryDelay(2000);     // Wait 2 seconds between retries

        var queryOptions = new RSStoJSONQueryOptions {
    url = "https://www.nasa.gov/rss/dyn/breaking_news.rss"
};

        try
        {
            var response = await apiClient.ExecuteAsync(queryOptions);

            if (response.Error != null)
            {
                Console.WriteLine($"API Error: {response.Error}");
            }
            else
            {
                Console.WriteLine("Success!");
                Console.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(response, Newtonsoft.Json.Formatting.Indented));
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Failed after retries: {ex.Message}");
        }
    }
}

Advanced Features

Custom Headers

Add custom headers to your requests:

var apiClient = new RSStoJSONAPIClient("[YOUR_API_KEY]");

// Add custom headers
apiClient.AddCustomHeader("X-Custom-Header", "custom-value");
apiClient.AddCustomHeader("X-Request-ID", Guid.NewGuid().ToString());

var queryOptions = new RSStoJSONQueryOptions {
    url = "https://www.nasa.gov/rss/dyn/breaking_news.rss"
};

var response = await apiClient.ExecuteAsync(queryOptions);

// Remove a header
apiClient.RemoveCustomHeader("X-Custom-Header");

// Clear all custom headers
apiClient.ClearCustomHeaders();

Request Logging

Enable logging for debugging:

var apiClient = new RSStoJSONAPIClient("[YOUR_API_KEY]", isDebug: true);

// Or use a custom logger
apiClient.SetLogger(message =>
{
    Console.WriteLine($"[LOG] {DateTime.Now:yyyy-MM-dd HH:mm:ss} - {message}");
});

var queryOptions = new RSStoJSONQueryOptions {
    url = "https://www.nasa.gov/rss/dyn/breaking_news.rss"
};

var response = await apiClient.ExecuteAsync(queryOptions);

Retry Configuration

Customize retry behavior for failed requests:

var apiClient = new RSStoJSONAPIClient("[YOUR_API_KEY]");

// Set retry options
apiClient.SetMaxRetries(3);           // Retry up to 3 times (default: 0, max: 3)
apiClient.SetRetryDelay(1500);        // Wait 1.5 seconds between retries (default: 1000ms)

var queryOptions = new RSStoJSONQueryOptions {
    url = "https://www.nasa.gov/rss/dyn/breaking_news.rss"
};

var response = await apiClient.ExecuteAsync(queryOptions);

Dispose Pattern

The API client implements IDisposable for proper resource cleanup:

var queryOptions = new RSStoJSONQueryOptions {
    url = "https://www.nasa.gov/rss/dyn/breaking_news.rss"
};

using (var apiClient = new RSStoJSONAPIClient("[YOUR_API_KEY]"))
{
    var response = await apiClient.ExecuteAsync(queryOptions);
    Console.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(response, Newtonsoft.Json.Formatting.Indented));
}
// HttpClient is automatically disposed here

Example Response

{
  "status": "ok",
  "error": null,
  "data": {
    "source": "www.nasa.gov",
    "articles": 10,
    "maxReached": false,
    "feed": [
      {
        "website": "NASA",
        "title": "NASA IXPE’s Longest Observation Solves Black Hole Jets Mystery",
        "pubDate": "Tue, 16 Dec 2025 21:23:13 +0000",
        "description": "Written by Michael Allen An international team of astronomers using NASA’s IXPE (Imaging X-ray Polarimetry Explorer) has identified the origin of X-rays in a supermassive black hole’s jet, answering a question that has been unresolved since the earliest days of X-ray astronomy. Their findings are described in a paper published in The Astrophysical Journal Letters, […]",
        "link": "https://www.nasa.gov/missions/ixpe/nasa-ixpes-longest-observation-solves-black-hole-jets-mystery/"
      },
      {
        "website": "NASA",
        "title": "NASA Launches Research Program for Students to Explore Big Ideas",
        "pubDate": "Tue, 16 Dec 2025 21:01:46 +0000",
        "description": "NASA is now accepting concepts for a new research challenge. The Opportunities in Research, Business, Innovation, and Technology (ORBIT) challenge is a multi-phase innovation competition designed to empower university and college students to develop next-generation solutions that benefit life on Earth and deep-space exploration. With up to $380,000 in total prize funding, NASA’s ORBIT challenges […]",
        "link": "https://www.nasa.gov/learning-resources/research-program-for-students/"
      },
      {
        "website": "NASA",
        "title": "Through Astronaut Eyes: 25 Years of Life in Orbit  ",
        "pubDate": "Tue, 16 Dec 2025 20:35:35 +0000",
        "description": "After 25 years of continuous human presence in space, the International Space Station remains a training and proving ground for deep space missions, enabling NASA to focus on Artemis missions to the Moon and Mars. The orbiting laboratory is also a living archive of human experience, culture, and connection.   Creating community With 290 visitors from […]",
        "link": "https://www.nasa.gov/centers-and-facilities/johnson/through-astronaut-eyes-25-years-of-life-in-orbit/"
      },
      {
        "website": "NASA",
        "title": "NASA Ignites New Golden Age of Exploration, Innovation in 2025",
        "pubDate": "Tue, 16 Dec 2025 19:48:18 +0000",
        "description": "With a second Trump Administration at the helm in 2025, NASA marked significant progress toward the Artemis II test flight early next year, which is the first crewed mission around the Moon in more than 50 years, as well as built upon its momentum toward a human return to the lunar surface in preparation to […]",
        "link": "https://www.nasa.gov/news-release/nasa-ignites-new-golden-age-of-exploration-innovation-in-2025/"
      },
      {
        "website": "NASA",
        "title": "How Small Is Too Small? Volunteers Help NASA Test Lake Monitoring From Space",
        "pubDate": "Tue, 16 Dec 2025 19:45:41 +0000",
        "description": "Volunteers participating in the Lake Observations by Citizen Scientists and Satellites (LOCSS) project have been collecting water level data in lakes since 2017. Now, the LOCSS team has used these data to examine the accuracy of water level measurements made from space.",
        "link": "https://science.nasa.gov/get-involved/citizen-science/how-small-is-too-small-volunteers-help-nasa-test-lake-monitoring-from-space/"
      },
      {
        "website": "NASA",
        "title": "NASA JPL Shakes Things Up Testing Future Commercial Lunar Spacecraft",
        "pubDate": "Tue, 16 Dec 2025 19:43:07 +0000",
        "description": "The same historic facilities that some 50 years ago prepared NASA’s twin Voyager probes for their ongoing interstellar odyssey are helping to ready a towering commercial spacecraft for a journey to the Moon. Launches involve brutal shaking and astonishingly loud noises, and testing in these facilities mimics those conditions to help ensure mission hardware can […]",
        "link": "https://www.nasa.gov/centers-and-facilities/jpl/nasa-jpl-shakes-things-up-testing-future-commercial-lunar-spacecraft/"
      },
      {
        "website": "NASA",
        "title": "Peekaboo!",
        "pubDate": "Tue, 16 Dec 2025 17:27:30 +0000",
        "description": "Clockwise from left, JAXA (Japan Aerospace Exploration Agency) astronaut Kimiya Yui and NASA astronauts Jonny Kim, Zena Cardman, and Mike Fincke pose for a playful portrait through a circular opening in a hatch thermal cover aboard the International Space Station on Sept. 18, 2025. The cover provides micrometeoroid and orbital debris protection while maintaining cleanliness […]",
        "link": "https://www.nasa.gov/image-article/peekaboo-2/"
      },
      {
        "website": "NASA",
        "title": "Toxicology and Environmental Chemistry",
        "pubDate": "Tue, 16 Dec 2025 16:28:12 +0000",
        "description": "Ensuring Astronaut Safety Achieving safe exploration of space in vehicles that rely upon closed environmental systems to recycle air and water to sustain life and are operated in extremely remote locations is a major challenge. The Toxicology and Environmental Chemistry (TEC) group at Johnson Space Center (JSC) is made up of 2 interrelated groups: Toxicology […]",
        "link": "https://www.nasa.gov/directorates/esdmd/hhp/toxicology-and-environmental-chemistry/"
      },
      {
        "website": "NASA",
        "title": "Statistics and Data Science",
        "pubDate": "Tue, 16 Dec 2025 16:14:41 +0000",
        "description": "Enabling Successful Research A major aim of biomedical research at NASA is to acquire data to evaluate, understand, and assess the biomedical hazards of spaceflight and to develop effective countermeasures. Data Science (S&DS) personnel provide statistical support to groups within the NASA JSC Human Health and Performance Directorate and other NASA communities. They have expertise […]",
        "link": "https://www.nasa.gov/directorates/esdmd/hhp/biostatistics-and-data-science/"
      },
      {
        "website": "NASA",
        "title": "One of NASA’s Key Cameras Orbiting Mars Takes 100,000th Image",
        "pubDate": "Tue, 16 Dec 2025 16:00:00 +0000",
        "description": "Mesas and dunes stand out in the view snapped by HiRISE, one of the imagers aboard the agency’s Mars Reconnaissance Orbiter. After nearly 20 years at the Red Planet, NASA’s Mars Reconnaissance Orbiter (MRO) has snapped its 100,000th image of the surface with its HiRISE camera. Short for High Resolution Imaging Science Experiment, HiRISE is […]",
        "link": "https://www.nasa.gov/missions/mars-reconnaissance-orbiter/one-of-nasas-key-cameras-orbiting-mars-takes-100000th-image/"
      }
    ]
  }
}

Customer Support

Need any assistance? Get in touch with Customer Support.


Updates

Stay up to date by following @apiverveHQ on Twitter.


All usage of the APIVerve website, API, and services is subject to the APIVerve Terms of Service and all legal documents and agreements.


License

Licensed under the The MIT License (MIT)

Copyright (©) 2026 APIVerve, and EvlarSoft LLC

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 is compatible. 
.NET Framework net20 is compatible.  net35 is compatible.  net40 is compatible.  net403 was computed.  net45 is compatible.  net451 was computed.  net452 was computed.  net46 was computed.  net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.2.0 98 7/15/2026
1.1.14 139 2/16/2026
1.1.13 128 2/14/2026
1.1.12 480 12/9/2025
1.1.10 192 11/8/2025
1.1.9 231 3/28/2025
1.1.8 214 2/21/2025
1.1.7 203 2/3/2025
1.0.10 195 11/8/2025

Initial release of RSStoJSON API client. Features include async/await support, automatic retries, custom headers, request logging, and cancellation token support.