{"id":21524,"date":"2026-11-10T13:43:00","date_gmt":"2026-11-10T12:43:00","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/blog\/?p=21524"},"modified":"2026-10-25T22:32:11","modified_gmt":"2026-10-25T21:32:11","slug":"saas-for-ai-agents-web-interface-api-or-mcp-access","status":"publish","type":"post","link":"https:\/\/www.lukaswojcik.com\/blog\/en\/saas-internet-earning\/saas-for-ai-agents-web-interface-api-or-mcp-access\/","title":{"rendered":"SaaS for AI agents: web interface, API or MCP access?"},"content":{"rendered":"<p>SaaS is software offered as a service. A document checker might be used in a browser, added to a fixed automated workflow or called by an AI agent. An agent uses a language model to select functions for a task. All three access methods should complete the same work reliably; adding a connector does not establish customer demand.<\/p>\n<figure class=\"lw-diagram\"><img src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/diagrams\/saas-api-mcp-agenten-en.png\" width=\"1120\" height=\"580\" loading=\"lazy\" decoding=\"async\" alt=\"Web interface; Stable API; MCP tools; Shared business logic\"><figcaption>Three access methods use the same validation rules and job processing.<\/figcaption><\/figure>\n<h2>The interface supports visual review<\/h2>\n<p>A web interface shows inputs, a preview and results together. A document checker can highlight errors before the checked file is approved for export. This is particularly useful for occasional tasks and decisions requiring review by a knowledgeable person.<\/p>\n<p>An understandable job overview remains useful after automated access is added. A job might be waiting, running, complete or blocked by missing permissions. These states make troubleshooting possible without reading technical logs.<\/p>\n<h2>The API supports predetermined workflows<\/h2>\n<p>An API is an interface for other programs. A fixed workflow can use the API to start a check, request progress and download the result. Documentation defines allowed inputs, request time limits and error responses. Version information helps developers plan for interface changes.<\/p>\n<p>A job identifier alone does not prevent duplicate execution. The server must store a retry key and associate later requests using that key with the same job, including concurrent requests. The client must reuse the key; changed inputs need explicit error handling. This property is called idempotency. [<a href=\"#source-4\">4<\/a>] For long operations, the first response confirms acceptance and the result arrives later. An accepted check can still fail.<\/p>\n<h2>MCP exposes tools to compatible clients<\/h2>\n<p>MCP stands for Model Context Protocol. Among other things, it defines how an application discovers available tools and required inputs, then calls a tool. [<a href=\"#source-1\">1<\/a>] The document checker could provide three narrowly defined tools: start a check, read progress and read the result. MCP does not guarantee a suitable tool choice or a correct result.<\/p>\n<p>A tool description needs to state what a call changes. Checking a file differs from sending or deleting the file. Critical actions need appropriate approval and a server-side permission check. A label such as \u201cread-only\u201d cannot replace that check.<\/p>\n<h2>The server checks every access<\/h2>\n<p>An agent needs access only to the data and operations required for the task. For example, a job for company A must not read company B\u2019s documents. The server therefore needs to verify identity, customer account and permitted action for every job. A supplied account name alone does not prove permission.<\/p>\n<p>For protected HTTP connections, MCP describes an OAuth-based flow: an access token demonstrates the granted permission to the intended server. Local stdio connections exchange data through a running program\u2019s input and output and do not use this flow. [<a href=\"#source-2\">2<\/a>] MCP forbids accepting tokens that were not issued for the MCP server. Otherwise, an intermediary could misuse access rights. Approval for one connected client must not be assumed to cover a different client. [<a href=\"#source-3\">3<\/a>]<\/p>\n<h2>Billing for jobs rather than conversation<\/h2>\n<p>A clearly defined job is a better billing unit than a conversation turn. An agent may request progress several times without starting another document check. One possible model reserves an amount from the budget before starting and bills for the agreed work. Rules for failed or cancelled jobs need to be explicit.<\/p>\n<p>A hypothetical example assumes 1,000 document jobs and 100 additional processing attempts in total. At 0.02 currency units per attempt, variable costs are 1,100 \u00d7 0.02 = 22. These are costs of actual processing attempts, such as retries after a processing error, not automatically every repeated HTTP request. Duplicate-job protection is intended to avoid unnecessary repeated work. Pure status requests can have a separate allowance, although these requests still incur some server overhead. This is not a platform price.<\/p>\n<h2>A pilot without rebuilding the platform<\/h2>\n<p>A small trial can expose three functions through the interface and API: start a check, request progress and read the result. An MCP connector then uses the same validation rules and job processing. The pilot group records completed tasks, required approvals, duplicate jobs and support time.<\/p>\n<p>A short guide with a complete example makes integration easier than a long list of unclear tools. An MCP connector is most useful when actual customers use a compatible application and the additional access method demonstrably saves steps.<\/p>\n<section class=\"lw-saas-tool-links\">\n<h2>Related tools<\/h2>\n<ul>\n<li><a href=\"https:\/\/www.lukaswojcik.com\/blog\/en\/toolbox\/ai-usage-budget-calculator\/\">AI Usage Budget Calculator<\/a><\/li>\n<li><a href=\"https:\/\/www.lukaswojcik.com\/blog\/en\/toolbox\/automation-cost-comparator\/\">Automation Cost Comparator<\/a><\/li>\n<li><a href=\"https:\/\/www.lukaswojcik.com\/blog\/en\/toolbox\/saas-pricing-model-simulator\/\">SaaS Pricing Model Simulator<\/a><\/li>\n<\/ul>\n<\/section>\n<h2>Sources<\/h2>\n<ol>\n<li id=\"source-1\"><a href=\"https:\/\/modelcontextprotocol.io\/specification\/2025-11-25\/server\/tools\" target=\"_blank\" rel=\"noopener noreferrer\">MCP: tools specification<\/a><\/li>\n<li id=\"source-2\"><a href=\"https:\/\/modelcontextprotocol.io\/specification\/2025-11-25\/basic\/authorization\" target=\"_blank\" rel=\"noopener noreferrer\">MCP: authorization<\/a><\/li>\n<li id=\"source-3\"><a href=\"https:\/\/modelcontextprotocol.io\/docs\/2025-11-25\/tutorials\/security\/security_best_practices\" target=\"_blank\" rel=\"noopener noreferrer\">MCP: security best practices<\/a><\/li>\n<li id=\"source-4\"><a href=\"https:\/\/docs.stripe.com\/api\/idempotent_requests\" target=\"_blank\" rel=\"noopener noreferrer\">Stripe: Idempotent requests<\/a><\/li>\n<\/ol>\n<p><small>Sources checked: 25 October 2026.<\/small><\/p>\n<div class=\"lw-faq\">\n<h2>Questions and answers<\/h2>\n<h3>Does MCP replace a conventional API?<\/h3>\n<p>Not necessarily. A web interface, API and MCP can use the same validation rules and processing. MCP adds access for compatible applications, while an existing API can continue to support fixed automated workflows.<\/p>\n<h3>Should an agent receive administrator permissions?<\/h3>\n<p>A document-checking agent normally needs no permission to manage every account or delete unrelated files. Permissions should be limited to the relevant customer account and required actions. Critical changes also need appropriate approval.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Web interfaces, APIs and MCP through a document-checking example: understandable results, limited permissions and protection against duplicate jobs.<\/p>\n","protected":false},"author":1,"featured_media":30058,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[93008],"tags":[],"class_list":["post-21524","post","type-post","status-publish","format-standard","hentry","category-saas-internet-earning"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>SaaS for AI agents: web interface, API or MCP access? | Lukas Wojcik<\/title>\n<meta name=\"description\" content=\"Compare three entry points to the same product through usability, permissions, repeatability and billing.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.lukaswojcik.com\/blog\/en\/saas-internet-earning\/saas-for-ai-agents-web-interface-api-or-mcp-access\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SaaS for AI agents: web interface, API or MCP access? | Lukas Wojcik\" \/>\n<meta property=\"og:description\" content=\"Compare three entry points to the same product through usability, permissions, repeatability and billing.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/en\/saas-internet-earning\/saas-for-ai-agents-web-interface-api-or-mcp-access\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-11-10T12:43:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/11\/flux-voll-21524-21524.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Lukas Wojcik\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Lukas Wojcik\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/saas-internet-earning\\\/saas-for-ai-agents-web-interface-api-or-mcp-access\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/saas-internet-earning\\\/saas-for-ai-agents-web-interface-api-or-mcp-access\\\/\"},\"author\":{\"name\":\"Lukas Wojcik\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"headline\":\"SaaS for AI agents: web interface, API or MCP access?\",\"datePublished\":\"2026-11-10T12:43:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/saas-internet-earning\\\/saas-for-ai-agents-web-interface-api-or-mcp-access\\\/\"},\"wordCount\":826,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/saas-internet-earning\\\/saas-for-ai-agents-web-interface-api-or-mcp-access\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/flux-voll-21524-21524.png\",\"articleSection\":[\"SaaS &amp; Internet Earning\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/saas-internet-earning\\\/saas-for-ai-agents-web-interface-api-or-mcp-access\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/saas-internet-earning\\\/saas-for-ai-agents-web-interface-api-or-mcp-access\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/saas-internet-earning\\\/saas-for-ai-agents-web-interface-api-or-mcp-access\\\/\",\"name\":\"SaaS for AI agents: web interface, API or MCP access? | Lukas Wojcik\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/saas-internet-earning\\\/saas-for-ai-agents-web-interface-api-or-mcp-access\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/saas-internet-earning\\\/saas-for-ai-agents-web-interface-api-or-mcp-access\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/flux-voll-21524-21524.png\",\"datePublished\":\"2026-11-10T12:43:00+00:00\",\"description\":\"Compare three entry points to the same product through usability, permissions, repeatability and billing.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/saas-internet-earning\\\/saas-for-ai-agents-web-interface-api-or-mcp-access\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/saas-internet-earning\\\/saas-for-ai-agents-web-interface-api-or-mcp-access\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/saas-internet-earning\\\/saas-for-ai-agents-web-interface-api-or-mcp-access\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/flux-voll-21524-21524.png\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/flux-voll-21524-21524.png\",\"width\":1200,\"height\":630,\"caption\":\"SaaS for AI agents: web interface, API or MCP access?\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/saas-internet-earning\\\/saas-for-ai-agents-web-interface-api-or-mcp-access\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SaaS for AI agents: web interface, API or MCP access?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\",\"name\":\"Lukas Wojcik - Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\",\"name\":\"Lukas Wojcik\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"width\":424,\"height\":636,\"caption\":\"Lukas Wojcik\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\"},\"sameAs\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"SaaS for AI agents: web interface, API or MCP access? | Lukas Wojcik","description":"Compare three entry points to the same product through usability, permissions, repeatability and billing.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.lukaswojcik.com\/blog\/en\/saas-internet-earning\/saas-for-ai-agents-web-interface-api-or-mcp-access\/","og_locale":"en_US","og_type":"article","og_title":"SaaS for AI agents: web interface, API or MCP access? | Lukas Wojcik","og_description":"Compare three entry points to the same product through usability, permissions, repeatability and billing.","og_url":"https:\/\/www.lukaswojcik.com\/blog\/en\/saas-internet-earning\/saas-for-ai-agents-web-interface-api-or-mcp-access\/","og_site_name":"Lukas Wojcik - Blog","article_published_time":"2026-11-10T12:43:00+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/11\/flux-voll-21524-21524.png","type":"image\/png"}],"author":"Lukas Wojcik","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Lukas Wojcik","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/saas-internet-earning\/saas-for-ai-agents-web-interface-api-or-mcp-access\/#article","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/saas-internet-earning\/saas-for-ai-agents-web-interface-api-or-mcp-access\/"},"author":{"name":"Lukas Wojcik","@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"headline":"SaaS for AI agents: web interface, API or MCP access?","datePublished":"2026-11-10T12:43:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/saas-internet-earning\/saas-for-ai-agents-web-interface-api-or-mcp-access\/"},"wordCount":826,"commentCount":0,"publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/saas-internet-earning\/saas-for-ai-agents-web-interface-api-or-mcp-access\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/11\/flux-voll-21524-21524.png","articleSection":["SaaS &amp; Internet Earning"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.lukaswojcik.com\/blog\/en\/saas-internet-earning\/saas-for-ai-agents-web-interface-api-or-mcp-access\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/saas-internet-earning\/saas-for-ai-agents-web-interface-api-or-mcp-access\/","url":"https:\/\/www.lukaswojcik.com\/blog\/en\/saas-internet-earning\/saas-for-ai-agents-web-interface-api-or-mcp-access\/","name":"SaaS for AI agents: web interface, API or MCP access? | Lukas Wojcik","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/saas-internet-earning\/saas-for-ai-agents-web-interface-api-or-mcp-access\/#primaryimage"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/saas-internet-earning\/saas-for-ai-agents-web-interface-api-or-mcp-access\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/11\/flux-voll-21524-21524.png","datePublished":"2026-11-10T12:43:00+00:00","description":"Compare three entry points to the same product through usability, permissions, repeatability and billing.","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/saas-internet-earning\/saas-for-ai-agents-web-interface-api-or-mcp-access\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/en\/saas-internet-earning\/saas-for-ai-agents-web-interface-api-or-mcp-access\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/saas-internet-earning\/saas-for-ai-agents-web-interface-api-or-mcp-access\/#primaryimage","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/11\/flux-voll-21524-21524.png","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/11\/flux-voll-21524-21524.png","width":1200,"height":630,"caption":"SaaS for AI agents: web interface, API or MCP access?"},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/saas-internet-earning\/saas-for-ai-agents-web-interface-api-or-mcp-access\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"SaaS for AI agents: web interface, API or MCP access?"}]},{"@type":"WebSite","@id":"https:\/\/www.lukaswojcik.com\/blog\/#website","url":"https:\/\/www.lukaswojcik.com\/blog\/","name":"Lukas Wojcik - Blog","description":"","publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.lukaswojcik.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9","name":"Lukas Wojcik","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","width":424,"height":636,"caption":"Lukas Wojcik"},"logo":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg"},"sameAs":["https:\/\/www.lukaswojcik.com\/blog"]}]}},"_links":{"self":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/21524","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/comments?post=21524"}],"version-history":[{"count":3,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/21524\/revisions"}],"predecessor-version":[{"id":25917,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/21524\/revisions\/25917"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media\/30058"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=21524"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/categories?post=21524"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=21524"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}