Agility.NET.FetchAPI
3.0.0
dotnet add package Agility.NET.FetchAPI --version 3.0.0
NuGet\Install-Package Agility.NET.FetchAPI -Version 3.0.0
<PackageReference Include="Agility.NET.FetchAPI" Version="3.0.0" />
<PackageVersion Include="Agility.NET.FetchAPI" Version="3.0.0" />
<PackageReference Include="Agility.NET.FetchAPI" />
paket add Agility.NET.FetchAPI --version 3.0.0
#r "nuget: Agility.NET.FetchAPI, 3.0.0"
#:package Agility.NET.FetchAPI@3.0.0
#addin nuget:?package=Agility.NET.FetchAPI&version=3.0.0
#tool nuget:?package=Agility.NET.FetchAPI&version=3.0.0
Agility CMS Fetch SDK for .NET
Official .NET SDK for pulling content from your Agility CMS instance via the Fetch API.
What's New in 3.0
- Upgraded to .NET 10 - Now targets
net10.0for the latest performance and language features - Updated all dependencies to their latest versions
IsPreviewis a parameter set on EACH method call- GraphQL Content Items support
- Single unified assembly (removed
SharedandCoreprojects)
Installation
Install via NuGet Package Manager:
dotnet add package Agility.NET.FetchAPI
Or add to your .csproj:
<PackageReference Include="Agility.NET.FetchAPI" Version="3.0.0" />
Requirements
- .NET 10.0 or later
Quick Start
1. Configure Services
In your Program.cs or startup configuration:
using Agility.NET.FetchAPI.Helpers;
using Agility.NET.FetchAPI.Services;
// Configure Agility settings
builder.Services.Configure<AppSettings>(options =>
{
options.InstanceGUID = "your-instance-guid";
options.FetchAPIKey = "your-fetch-api-key";
options.PreviewAPIKey = "your-preview-api-key";
options.Locales = "en-us";
options.ChannelName = "website";
});
// Register HttpClient and FetchApiService
builder.Services.AddHttpClient<FetchApiService>();
2. Inject and Use the Service
public class MyController : Controller
{
private readonly FetchApiService _agilityService;
public MyController(FetchApiService agilityService)
{
_agilityService = agilityService;
}
public async Task<IActionResult> GetContent()
{
var item = await _agilityService.GetContentItem(
new GetItemParameters
{
IsPreview = false,
Locale = "en-us",
ContentId = 123,
ContentLinkDepth = 2
});
return Ok(item);
}
}
Configuration Options
public class AppSettings
{
public string InstanceGUID { get; set; } // Your Agility instance GUID
public string SecurityKey { get; set; } // Security key (optional)
public string WebsiteName { get; set; } // Website name (optional)
public string FetchAPIKey { get; set; } // API key for fetch (live) mode
public string PreviewAPIKey { get; set; } // API key for preview mode
public string Locales { get; set; } // Supported locales (e.g., "en-us")
public string ChannelName { get; set; } // Default channel name
public int CacheInMinutes { get; set; } // Cache duration in minutes
}
Regional Support
The SDK automatically routes requests to the correct regional endpoint based on your Instance GUID suffix:
| Region | GUID Suffix | Endpoint |
|---|---|---|
| US (default) | — | https://api.aglty.io |
| USA 2 | -us2 |
https://api-usa2.aglty.io |
| Canada | -c |
https://api-ca.aglty.io |
| Europe | -e |
https://api-eu.aglty.io |
| Australia | -a |
https://api-aus.aglty.io |
| Development | -d |
https://api-dev.aglty.io |
Fetch API Methods
| Function | Parameters | Description |
|---|---|---|
GetContentItem |
GetItemParameters |
Get a single content item |
GetContentList |
GetListParameters |
Get a content list |
GetGallery |
GetGalleryParameters |
Get a gallery |
GetPage |
GetPageParameters |
Get a page |
GetSitemapFlat |
GetSitemapParameters |
Get a flat sitemap |
GetSitemapNested |
GetSitemapParameters |
Get a nested sitemap |
GetUrlRedirections |
GetUrlRedirectionsParameters |
Get URL redirections |
GetSyncContent |
GetSyncParameters |
Sync all content using a sync token |
GetSyncPages |
GetSyncParameters |
Sync all pages using a sync token |
GetContentByGraphQL |
GraphQL query | Query content using GraphQL |
Typed Methods
The SDK also provides typed/generic versions of the main methods for strongly-typed responses:
GetTypedContentItem<T>GetTypedContentList<T>GetTypedPage<T>GetTypedSitemapFlat<T>GetTypedSitemapNested<T>
Parameter Models
GetItemParameters
public class GetItemParameters
{
public bool IsPreview { get; set; } // Use preview or fetch mode
public string Locale { get; set; }
public int ContentId { get; set; }
public int ContentLinkDepth { get; set; }
public bool ExpandAllContentLinks { get; set; }
}
GetListParameters
public class GetListParameters
{
public bool IsPreview { get; set; } // Use preview or fetch mode
public string Locale { get; set; }
public string ReferenceName { get; set; }
public string Fields { get; set; }
public int Take { get; set; }
public int Skip { get; set; }
public string Filter { get; set; }
public string Sort { get; set; }
public string Direction { get; set; }
public int ContentLinkDepth { get; set; }
public bool ExpandAllContentLinks { get; set; }
}
GetGalleryParameters
public class GetGalleryParameters
{
public bool IsPreview { get; set; } // Use preview or fetch mode
public int GalleryId { get; set; }
}
GetPageParameters
public class GetPageParameters
{
public bool IsPreview { get; set; } // Use preview or fetch mode
public string Locale { get; set; }
public int PageId { get; set; }
public int ContentLinkDepth { get; set; } // Must be 0 for GetTypedPage
public bool ExpandAllContentLinks { get; set; }
}
GetSitemapParameters
public class GetSitemapParameters
{
public bool IsPreview { get; set; } // Use preview or fetch mode
public string Locale { get; set; }
public string ChannelName { get; set; }
}
GetUrlRedirectionsParameters
public class GetUrlRedirectionsParameters
{
public bool IsPreview { get; set; } // Use preview or fetch mode
public DateTime? LastAccessDate { get; set; }
}
GetSyncParameters
public class GetSyncParameters
{
public bool IsPreview { get; set; } // Use preview or fetch mode
public string Locale { get; set; }
public long SyncToken { get; set; }
public int PageSize { get; set; }
}
GraphQL Support
Query content using GraphQL for more flexible data retrieval:
var query = @"
{
posts {
contentID
fields {
title
content
}
}
}";
var result = await _agilityService.GetContentByGraphQL(query, isPreview: false);
Development Setup
Clone the repo:
git clone https://github.com/agility/agilitycms-dotnet-fetch-apiOpen in your IDE and restore packages:
dotnet restoreBuild:
dotnet buildRun tests:
dotnet test
Integration with Agility .NET Starter
To use this SDK with the Agility CMS .NET Starter:
- Add a project reference or install the NuGet package
- Configure
AppSettingswith your Agility credentials - Register
FetchApiServicewith dependency injection
License
MIT License - see LICENSE for details.
Resources
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. 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. |
-
net10.0
- GraphQL.Client (>= 6.1.0)
- GraphQL.Client.Serializer.Newtonsoft (>= 6.1.0)
- Microsoft.Extensions.Options (>= 10.0.2)
- Newtonsoft.Json (>= 13.0.4)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Agility.NET.FetchAPI:
| Package | Downloads |
|---|---|
|
Agility.NET.Core
Agility package for page management and URL redirects. |
GitHub repositories
This package is not used by any popular GitHub repositories.