diff --git a/src/Modrinth.Net/Http/Requester.cs b/src/Modrinth.Net/Http/Requester.cs
index 9a179bd..b09f650 100644
--- a/src/Modrinth.Net/Http/Requester.cs
+++ b/src/Modrinth.Net/Http/Requester.cs
@@ -34,6 +34,8 @@ public class Requester : IRequester
public Requester(ModrinthClientConfig config, HttpClient? httpClient = null)
{
_config = config;
+ if (config.JsonSerializerContext != null)
+ _jsonSerializerOptions.TypeInfoResolverChain.Add(config.JsonSerializerContext);
_semaphore = new SemaphoreSlim(_config.MaxConcurrentRequests);
HttpClient = httpClient ?? new HttpClient();
diff --git a/src/Modrinth.Net/ModrinthClientConfig.cs b/src/Modrinth.Net/ModrinthClientConfig.cs
index dfca14f..8c6d9b7 100644
--- a/src/Modrinth.Net/ModrinthClientConfig.cs
+++ b/src/Modrinth.Net/ModrinthClientConfig.cs
@@ -1,4 +1,6 @@
-namespace Modrinth;
+using System.Text.Json.Serialization.Metadata;
+
+namespace Modrinth;
///
/// Object containing options for
@@ -41,6 +43,12 @@ public class ModrinthClientConfig
/// Default is 100.
///
public int BatchSize { get; set; } = 100;
+
+ ///
+ /// The JSON serializer context to use for serialization and deserialization.
+ /// If null, the client will use the default serializer with reflection-based serialization, which is less performant.
+ ///
+ public IJsonTypeInfoResolver? JsonSerializerContext { get; set; }
///
/// Validates the configuration options.