diff --git a/Apis/page-fetcher-api/Program.cs b/Apis/page-fetcher-api/Program.cs
index 2a97344..9ff8f48 100644
--- a/Apis/page-fetcher-api/Program.cs
+++ b/Apis/page-fetcher-api/Program.cs
@@ -2,6 +2,7 @@ using System.Reflection;
using Microsoft.EntityFrameworkCore;
using PageFetcher.Data;
using PageFetcherApi.Services;
+using PageFetcherApi.Settings;
using Serilog;
using StartupHelpers;
diff --git a/Apis/page-fetcher-api/Services/PageFetcherService.cs b/Apis/page-fetcher-api/Services/PageFetcherService.cs
index 7dae58b..fe452e4 100644
--- a/Apis/page-fetcher-api/Services/PageFetcherService.cs
+++ b/Apis/page-fetcher-api/Services/PageFetcherService.cs
@@ -6,6 +6,7 @@ using Microsoft.Playwright;
using PageFetcher.Data;
using PageFetcher.Data.Entities;
using PageFetcher.Models;
+using PageFetcherApi.Settings;
namespace PageFetcherApi.Services;
diff --git a/Apis/page-fetcher-api/Settings/PageFetcherSettings.cs b/Apis/page-fetcher-api/Settings/PageFetcherSettings.cs
new file mode 100644
index 0000000..5b180fa
--- /dev/null
+++ b/Apis/page-fetcher-api/Settings/PageFetcherSettings.cs
@@ -0,0 +1,17 @@
+namespace PageFetcherApi.Settings;
+
+///
+/// Runtime settings for the page-fetcher service.
+/// Bound from the PageFetcher configuration section.
+///
+public sealed class PageFetcherSettings
+{
+ /// Default Playwright wait condition (networkidle, load, domcontentloaded).
+ public string DefaultWaitFor { get; set; } = "networkidle";
+
+ /// Page navigation timeout in seconds.
+ public int TimeoutSeconds { get; set; } = 30;
+
+ /// Maximum characters stored/returned in the extracted text field.
+ public int MaxTextChars { get; set; } = 60_000;
+}