<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Auden</title>
    <description>The latest articles on Forem by Auden (@auden).</description>
    <link>https://forem.com/auden</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1410047%2Fe5c7109b-1424-4025-8170-7b59ad08f6f3.png</url>
      <title>Forem: Auden</title>
      <link>https://forem.com/auden</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/auden"/>
    <language>en</language>
    <item>
      <title>How to Install OpenClaw: A Guide to Your Open-Source AI Assistant</title>
      <dc:creator>Auden</dc:creator>
      <pubDate>Tue, 03 Mar 2026 09:56:54 +0000</pubDate>
      <link>https://forem.com/auden/how-to-install-and-run-openclaw-an-open-source-personal-ai-assistant-ddd</link>
      <guid>https://forem.com/auden/how-to-install-and-run-openclaw-an-open-source-personal-ai-assistant-ddd</guid>
      <description>&lt;p&gt;&lt;strong&gt;OpenClaw&lt;/strong&gt; (formerly ClawdBot / Moltbot) is an open-source personal AI agent that runs entirely on your own machine.&lt;/p&gt;

&lt;p&gt;Unlike cloud-based AI assistants, OpenClaw is &lt;strong&gt;fully local&lt;/strong&gt;. You control your data, your workflows, and how the agent behaves.&lt;/p&gt;

&lt;p&gt;It's not just a chatbot — it's an &lt;strong&gt;action-oriented agent&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6yo8aetedhlcp5k5ah2o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6yo8aetedhlcp5k5ah2o.png" alt="How to Install and Run OpenClaw" width="800" height="342"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What Makes OpenClaw Different?
&lt;/h2&gt;

&lt;p&gt;OpenClaw can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Maintain &lt;strong&gt;persistent memory&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Access your &lt;strong&gt;local file system&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Call external services and APIs&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Execute real tasks instead of just replying with text&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can interact with it through tools like Telegram or WhatsApp, or directly via a web UI or terminal.&lt;/p&gt;

&lt;p&gt;This makes it suitable for developers who want a real AI assistant, not just a demo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fof9r8tyvcquxewzslwbw.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fof9r8tyvcquxewzslwbw.gif" alt="How to Install and Run OpenClaw" width="760" height="504"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  System Requirements
&lt;/h2&gt;

&lt;p&gt;Before getting started, make sure you have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Node.js ≥ 22&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;macOS, Linux, or Windows (via WSL2)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;npm (comes with Node.js)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Check your Node version:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;node &lt;span class="nt"&gt;-v&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuh9k862eecjxibfprnm9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuh9k862eecjxibfprnm9.png" alt="How to Install and Run OpenClaw" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick Installation (Recommended)
&lt;/h2&gt;

&lt;p&gt;The easiest way to install OpenClaw is the official one-line installer.&lt;/p&gt;

&lt;p&gt;On macOS or Linux:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://openclaw.sh/install | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw1czdm03qrmideutv4op.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw1czdm03qrmideutv4op.png" alt="How to Install and Run OpenClaw" width="800" height="521"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On Windows (PowerShell):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;irm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;https://openclaw.sh/install.ps1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;iex&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After installation, OpenClaw automatically launches an interactive onboarding wizard.&lt;/p&gt;

&lt;p&gt;You can rerun it anytime with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;openclaw onboard &lt;span class="nt"&gt;--install-daemon&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6rfm7isbmvaa29j8yg7j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6rfm7isbmvaa29j8yg7j.png" alt="How to Install and Run OpenClaw" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvl20t39c76afi3tcgdc9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvl20t39c76afi3tcgdc9.png" alt="How to Install and Run OpenClaw" width="800" height="518"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Initial Configuration
&lt;/h2&gt;

&lt;p&gt;During onboarding, you'll configure:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;AI Model&lt;/strong&gt;
Provide an API key for a supported LLM (OpenAI, Claude, Gemini, etc.). In this guide, I use the Google Gemini CLI service.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm2i9kcburnohbnjqysrb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm2i9kcburnohbnjqysrb.png" alt="How to Install and Run OpenClaw" width="800" height="517"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frq5oauw9bmz8btc683tz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frq5oauw9bmz8btc683tz.png" alt="How to Install and Run OpenClaw" width="800" height="521"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Communication Channels&lt;/strong&gt;
Choose how you want to talk to the agent (Telegram, WhatsApp, or skip for now).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frp1oy8dg60w4grgre9r9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frp1oy8dg60w4grgre9r9.png" alt="How to Install and Run OpenClaw" width="800" height="521"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Skills &amp;amp; Hooks&lt;/strong&gt;
Recommended: enable them. They unlock most of OpenClaw's power.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwp8fy2f3l97rcsacfewf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwp8fy2f3l97rcsacfewf.png" alt="How to Install and Run OpenClaw" width="800" height="521"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once finished, a local web UI will start automatically.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0agj4ate195c6hdfoafp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0agj4ate195c6hdfoafp.png" alt="How to Install and Run OpenClaw" width="800" height="548"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnv8l7p72kou5se2thc8f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnv8l7p72kou5se2thc8f.png" alt="How to Install and Run OpenClaw" width="800" height="464"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Gateway: The Core Service
&lt;/h2&gt;

&lt;p&gt;At the heart of OpenClaw is the &lt;strong&gt;Gateway&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The Gateway runs in the background and:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Manages LLM connections&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Handles chat sessions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dispatches commands and actions&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every message flows through the Gateway.&lt;/p&gt;

&lt;p&gt;If it's running, your assistant is"alive".&lt;/p&gt;

&lt;p&gt;Check system health:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;openclaw doctor
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check runtime status:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;openclaw status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Gateway Management Commands:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;openclaw gateway &lt;span class="nb"&gt;install
&lt;/span&gt;openclaw gateway start
openclaw gateway stop
openclaw gateway restart
openclaw gateway uninstall
openclaw gateway status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Using the Web Dashboard
&lt;/h2&gt;

&lt;p&gt;To open the dashboard in your browser:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;openclaw dashboard
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This command opens the dashboard at a local address similar to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;http://127.0.0.1:18789/?token&lt;span class="o"&gt;=&lt;/span&gt;&amp;lt;temporary-token&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;From there, you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Chat with the agent&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Manage skills&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Schedule tasks&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;View logs&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Edit configurations&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is the most intuitive way to control OpenClaw.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl9hza5uc81revrqdjcpc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl9hza5uc81revrqdjcpc.png" alt="How to Install and Run OpenClaw" width="800" height="464"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Terminal UI (TUI)
&lt;/h2&gt;

&lt;p&gt;If you prefer the terminal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;openclaw tui
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You'll get a full-screen text interface with slash commands like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;/status&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;/model&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;/session&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;/help&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Clean, focused, and developer-friendly.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1k3lr3hjcgvj7azwlcni.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1k3lr3hjcgvj7azwlcni.png" alt="How to Install and Run OpenClaw" width="800" height="483"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Useful CLI Commands
&lt;/h2&gt;

&lt;p&gt;Some commands you'll use often:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;openclaw models status
openclaw channels list
openclaw memory search
openclaw docs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;They cover model health, integrations, memory search, and documentation lookup.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;OpenClaw is more than a local chatbot.&lt;/p&gt;

&lt;p&gt;It's a foundation for building &lt;strong&gt;your own AI agent&lt;/strong&gt; — one that can grow, learn, and act on your behalf.&lt;/p&gt;

&lt;p&gt;If you care about privacy, control, and extensibility, it's absolutely worth exploring.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bonus: A Must-Have Tool for API Development – Apidog
&lt;/h2&gt;

&lt;p&gt;Alongside OpenClaw, there's another powerful productivity tool for developers: &lt;a href="https://apidog.com/?utm_source=dev_to&amp;amp;utm_medium=Auden&amp;amp;utm_content=OpenClaw" rel="noopener noreferrer"&gt;&lt;strong&gt;Apidog&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Apidog is an all-in-one platform for &lt;strong&gt;API documentation&lt;/strong&gt;, &lt;strong&gt;API debugging&lt;/strong&gt;, &lt;strong&gt;API design&lt;/strong&gt;, &lt;strong&gt;API testing&lt;/strong&gt;, &lt;strong&gt;mocking&lt;/strong&gt;, and &lt;strong&gt;automation&lt;/strong&gt;. It streamlines your entire API workflow — making it one of the best tools to boost development efficiency.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsbs3fzo61wpe9e9i42z3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsbs3fzo61wpe9e9i42z3.png" alt="How to Install and Run OpenClaw" width="800" height="505"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you're actively building and testing APIs, give Apidog a try. Signing up is easy — just &lt;a href="https://apidog.com/?utm_source=dev_to&amp;amp;utm_medium=Auden&amp;amp;utm_content=OpenClaw" rel="noopener noreferrer"&gt;register&lt;/a&gt; here.&lt;/p&gt;

&lt;p&gt;After registering, explore the official demo projects. They're carefully crafted to help you get up to speed with Apidog's core features.&lt;/p&gt;

&lt;p&gt;A major benefit of Apidog is its full compatibility with &lt;strong&gt;Postman&lt;/strong&gt; and &lt;strong&gt;Swagger&lt;/strong&gt; formats. If you've used those tools before, importing your existing data will be effortless. The intuitive interface also makes it beginner-friendly — even first-time users can get started quickly.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>tutorial</category>
      <category>opensource</category>
      <category>openclaw</category>
    </item>
    <item>
      <title>Postman Limits Free Plan to 1 User: Here's the Best Alternative</title>
      <dc:creator>Auden</dc:creator>
      <pubDate>Tue, 03 Mar 2026 07:02:56 +0000</pubDate>
      <link>https://forem.com/auden/postmans-free-plan-is-now-limited-to-1-user-heres-the-alternative-250c</link>
      <guid>https://forem.com/auden/postmans-free-plan-is-now-limited-to-1-user-heres-the-alternative-250c</guid>
      <description>&lt;p&gt;After March 1, many developers suddenly realized they were standing at the paywall.&lt;/p&gt;

&lt;p&gt;On March 3, 2026, I opened Postman like I always do, just to test an API.&lt;/p&gt;

&lt;p&gt;Instead, I was greeted by a popup:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Your Free plan has been updated&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Your workspace has been moved to the new Free plan, designed for individual use (1 user).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhcb2o8o8zzopynbl4uxs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhcb2o8o8zzopynbl4uxs.png" alt="Postman's Free Plan Is Now Limited to 1 User" width="800" height="435"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At first glance, the message feels reassuring.&lt;/p&gt;

&lt;p&gt;No action required.&lt;/p&gt;

&lt;p&gt;Still free.&lt;/p&gt;

&lt;p&gt;Mocks, specs, even performance testing are included.&lt;/p&gt;

&lt;p&gt;Nothing looks alarming — until you slow down and read this line carefully:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;designed for individual use (1 user)&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And that's the moment it clicks.&lt;/p&gt;

&lt;p&gt;Yes — &lt;strong&gt;starting March 1, 2026, Postman officially closed the door on free team workspaces.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Postman didn't remove "free" — it redefined it
&lt;/h2&gt;

&lt;p&gt;Let's be clear about one thing first.&lt;/p&gt;

&lt;p&gt;Postman didn't suddenly become paid-only.&lt;/p&gt;

&lt;p&gt;What it did instead was redefine what "free" actually means.&lt;/p&gt;

&lt;p&gt;Free now means: one person.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8t4hhxv46cqojezeewmd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8t4hhxv46cqojezeewmd.png" alt="Postman's Free Plan Is Now Limited to 1 User" width="800" height="474"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The moment collaboration enters the picture, you're no longer in the free world.&lt;/p&gt;

&lt;p&gt;If you're just testing APIs on your own, everything still works fine.&lt;/p&gt;

&lt;p&gt;But as soon as you want to share a workspace, maintain API docs together, or run mocks and tests as a team, you've crossed into a paid scenario.&lt;/p&gt;

&lt;p&gt;That shift is subtle, but fundamental.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why did this change trigger such a strong reaction?
&lt;/h2&gt;

&lt;p&gt;Because in the real world, &lt;strong&gt;API tools are almost never used by just one person&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The real value of Postman was never about sending requests.&lt;/p&gt;

&lt;p&gt;It was about shared API understanding: documentation, mock servers, team debugging, and keeping frontend and backend aligned.&lt;/p&gt;

&lt;p&gt;Now, that entire collaboration layer has been clearly placed behind a paywall.&lt;/p&gt;

&lt;p&gt;So this isn't really a price increase.&lt;/p&gt;

&lt;p&gt;It's something more structural:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The most common usage pattern has become a paid feature.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  That's exactly when I started taking Apidog seriously
&lt;/h2&gt;

&lt;p&gt;Once you realize that Postman's free plan has effectively become a single-user tool, a question naturally comes up:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Is there an API tool that treats collaboration as a default, not an upgrade?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The answer is yes — and more developers are talking about it lately.&lt;/p&gt;

&lt;p&gt;That tool is &lt;a href="https://apidog.com/?utm_source=dev_to&amp;amp;utm_medium=Auden&amp;amp;utm_content=Postman" rel="noopener noreferrer"&gt;&lt;strong&gt;Apidog&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdyithk4gqvntgze745fe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdyithk4gqvntgze745fe.png" alt="Postman's Free Plan Is Now Limited to 1 User" width="800" height="505"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why is Apidog suddenly mentioned everywhere?
&lt;/h2&gt;

&lt;p&gt;In one sentence:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Apidog turns what Postman charges for — collaboration — into a free, default capability.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F69x6kmqtzj72w7lfr5ba.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F69x6kmqtzj72w7lfr5ba.png" alt="Postman's Free Plan Is Now Limited to 1 User" width="800" height="408"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Using &lt;a href="https://apidog.com/?utm_source=dev_to&amp;amp;utm_medium=Auden&amp;amp;utm_content=Postman" rel="noopener noreferrer"&gt;Apidog&lt;/a&gt; feels different in a very practical way.&lt;/p&gt;

&lt;p&gt;You don't start by counting seats.&lt;/p&gt;

&lt;p&gt;You don't hesitate before inviting teammates.&lt;/p&gt;

&lt;p&gt;You don't worry that a future popup will tell you collaboration now requires an upgrade.&lt;/p&gt;

&lt;p&gt;The free plan supports up to four people, which is more than enough for many small teams — but that number isn't really the point.&lt;/p&gt;

&lt;p&gt;The point is that &lt;strong&gt;collaboration isn't treated as a restricted privilege&lt;/strong&gt;, it's treated as the baseline.&lt;/p&gt;

&lt;h2&gt;
  
  
  Two products, two very different philosophies
&lt;/h2&gt;

&lt;p&gt;Postman's direction is clear:&lt;/p&gt;

&lt;p&gt;Free for individuals, paid for collaboration, higher tiers for automation and AI.&lt;/p&gt;

&lt;p&gt;Apidog's direction is also clear:&lt;/p&gt;

&lt;p&gt;Support real team workflows first, and reserve paid plans for more complex or enterprise-level needs.&lt;/p&gt;

&lt;p&gt;Neither approach is inherently wrong.&lt;/p&gt;

&lt;p&gt;But they lead to very different experiences depending on where you are as a developer or a team.&lt;/p&gt;

&lt;p&gt;And that difference isn't about features — it's about mental overhead.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final thoughts
&lt;/h2&gt;

&lt;p&gt;If you're a solo developer, Postman is still a mature and reliable tool.&lt;/p&gt;

&lt;p&gt;That hasn't changed.&lt;/p&gt;

&lt;p&gt;But if you're working on a team project, maintaining APIs together, and don't want your workflow interrupted by seat limits and pricing prompts, then this moment is worth paying attention to.&lt;/p&gt;

&lt;p&gt;That's why so many developers are starting to seriously look at Apidog — not just "trying it out," but actually switching.&lt;/p&gt;

&lt;p&gt;Not because it shouts louder, but because &lt;strong&gt;when one door quietly closed, another one stayed open.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you want to read a detailed, real-world migration story, this article is worth checking out:&lt;br&gt;&lt;br&gt;
&lt;a href="https://dev.to/auden/postman-ends-free-team-plans-in-march-2026-here-is-the-free-alternative-i-switched-to-118p"&gt;https://dev.to/auden/postman-ends-free-team-plans-in-march-2026-here-is-the-free-alternative-i-switched-to-118p&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tools change. Strategies change.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;But team collaboration shouldn't turn into an extra line item.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>postman</category>
      <category>programming</category>
      <category>learning</category>
      <category>api</category>
    </item>
    <item>
      <title>AI Won't Replace APIs—It Will Only Make Them More Important</title>
      <dc:creator>Auden</dc:creator>
      <pubDate>Sat, 28 Feb 2026 08:13:09 +0000</pubDate>
      <link>https://forem.com/auden/ai-wont-replace-apis-it-will-only-make-them-more-important-1j6p</link>
      <guid>https://forem.com/auden/ai-wont-replace-apis-it-will-only-make-them-more-important-1j6p</guid>
      <description>&lt;p&gt;While everyone is busy discussing what AI might replace, few have noticed that AI is making one specific technology more critical than ever before: APIs.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Counterintuitive Fact
&lt;/h2&gt;

&lt;p&gt;The users calling your APIs are no longer just programmers sitting in front of their computers; they are increasingly &lt;strong&gt;AI Agents&lt;/strong&gt; working 24/7 without rest.&lt;/p&gt;

&lt;p&gt;OpenAI's GPT, Anthropic's Claude, Google's Gemini, as well as Meta's Llama, Mistral, and Grok--they are all incredibly intelligent. They can write code, analyze data, and engage in human-like dialogue.&lt;/p&gt;

&lt;p&gt;But if you think about it carefully, they share one common and fatal limitation: &lt;strong&gt;They know everything, but they can't do anything.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;An AI model cannot help you place an order, transfer funds, or modify a single record in a database. It is merely a brain. For a brain to control the world, it needs hands and feet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;APIs are the hands and feet of AI.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the Stronger the AI, the More Important the API?
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt; ### AI Doesn't Create Value; APIs Do&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This statement might seem absurd, but it is the truth.&lt;/p&gt;

&lt;p&gt;When you ask ChatGPT to "book a flight to London for tomorrow," is it the Large Language Model (LLM) itself that completes the booking? Certainly not. The actual execution chain consists of the airline's API, payment APIs, user authentication APIs, and other Tools called behind the scenes. The LLM merely understands your intent and translates it into a series of API calls.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8rjk5wxxdolss4q4ndif.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8rjk5wxxdolss4q4ndif.png" alt="AI Won't Replace APIs—It Will Only Make Them More Important" width="800" height="473"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In other words: &lt;strong&gt;AI is the translator; the API is the executor.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Without APIs, AI is like a brilliant strategist who only knows how to fight on paper--full of profound analysis, but unable to get a single thing done.&lt;/p&gt;

&lt;p&gt;This explains why OpenAI launched Function Calling, Anthropic introduced the Model Context Protocol (MCP) and Skills, and Google rolled out Vertex AI Extensions. Despite the fancy names, they are all essentially doing the same thing: standardizing the way AI invokes APIs.&lt;/p&gt;

&lt;p&gt;The smartest people in the entire AI industry are working desperately to solve a core problem that isn't "making AI smarter," but rather "&lt;strong&gt;making AI call APIs better.&lt;/strong&gt;"&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; ### Every AI Agent is a Super-Consumer of APIs&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;How many times a day can a human developer call an API? Dozens? Hundreds?&lt;/p&gt;

&lt;p&gt;What about an AI Agent? It can invoke dozens of APIs in a single second, 365 days a year. The API consumption of a single Agent could easily match that of an entire development team.&lt;/p&gt;

&lt;p&gt;And this is just the beginning.&lt;/p&gt;

&lt;p&gt;When AI Agents begin to collaborate--Agent A calls Agent B, Agent B calls Agent C, and each Agent calls a bunch of external APIs--it creates a chain reaction of API calls. Behind a single user request, there might be dozens or even hundreds of API calls.&lt;/p&gt;

&lt;p&gt;When billions of Agents are running simultaneously around the world, each calling APIs every minute, what does that mean?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It means API traffic is about to see the most violent explosion in the history of the internet.&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; ### API Quality Defines the Ceiling of AI Capability&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This is the most critical point, and also the most overlooked.&lt;/p&gt;

&lt;p&gt;We often see benchmarks like: "GPT-5 is 30% stronger than GPT-4" or "Claude exceeds Gemini in reasoning capabilities." But rarely does anyone ask: If the quality of the APIs being called by the AI is poor, what use is even the strongest model?&lt;/p&gt;

&lt;p&gt;For example: You ask an AI Agent to check inventory, and it calls an inventory API. But this API:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Returns an error message &lt;code&gt;{"error": "fail"}&lt;/code&gt; without an error code or a reason.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Has a field named &lt;code&gt;qty&lt;/code&gt; without a description explaining whether this is "available stock" or "total inventory."&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Lacks &lt;strong&gt;idempotency&lt;/strong&gt; design; the Agent retries once, and the inventory is deducted twice.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In this scenario, even if you are using the world's most powerful AI model, the result will be catastrophic.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The ceiling of an AI's capability does not depend on the number of model parameters; it depends on the quality of the APIs it can call.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It's like being given a genius brain but having limbs that are dysfunctional--you simply cannot achieve what you intend to do.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Paradigm of API Management is Changing
&lt;/h2&gt;

&lt;p&gt;For the past 20 years, the core mission of API management has been: How to make it more efficient for human developers to design, debug, test, and use APIs.&lt;/p&gt;

&lt;p&gt;Swagger solved the problem of documentation standardization. Postman solved the problem of debugging efficiency. &lt;a href="https://apidog.com/?utm_source=dev_to&amp;amp;utm_medium=Auden&amp;amp;utm_content=Auden" rel="noopener noreferrer"&gt;Apidog&lt;/a&gt; attempted to bridge the gap between fragmented toolchains by integrating documentation, debugging, mocking, and testing into a single toolset.&lt;/p&gt;

&lt;p&gt;These tools have done a great job. But they all share a common implicit assumption: &lt;strong&gt;The consumer of the API is a human developer.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;That assumption is now being shattered.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  From "Human-Reading Docs" to "AI-Parsing Schemas"
&lt;/h3&gt;

&lt;p&gt;Human developers read API documentation based on intuition and experience. When you see a field named &lt;code&gt;userId&lt;/code&gt;, you don't need an explanation to know it's a user ID. When you see a 404 return code, you naturally understand the resource doesn't exist.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI Agents have no such intuition.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;They rely on the precision of the Schema and the completeness of the descriptions. If an OpenAPI definition lacks a description for a field, it might not matter to a human, but for an AI, it's a "black hole"--it doesn't know what the field is, so it can only guess, and the probability of guessing wrong is extremely high.&lt;/p&gt;

&lt;p&gt;This means: API documentation standards need an upgrade--from "&lt;strong&gt;human-readable&lt;/strong&gt;" to "&lt;strong&gt;AI-consumable with precision.&lt;/strong&gt;"&lt;/p&gt;

&lt;h3&gt;
  
  
  From "Manual Testing" to "Agent Behavior Simulation"
&lt;/h3&gt;

&lt;p&gt;Traditional API testing focuses on functional correctness: Input A, return B, test passed.&lt;/p&gt;

&lt;p&gt;But an Agent's calling pattern is completely different:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Retries:&lt;/strong&gt; If the network times out, the Agent will retry automatically. If your interface is not idempotent, your data could be corrupted.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Concurrency:&lt;/strong&gt; Multiple Agents might call the same interface simultaneously. Can your interface handle the load?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Orchestration:&lt;/strong&gt; Agents will string multiple APIs together to complete a complex task. If a step in the middle fails, is there a rollback mechanism?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Exploration:&lt;/strong&gt; Agents might try calling combinations of fields not explicitly written in the docs. Will your interface reject them gracefully or just crash?&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Traditional testing tools hardly cover these scenarios. API testing needs to add a new dimension: &lt;strong&gt;Agent Behavior Simulation.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  From "API Markets" to "AI Tool Stores"
&lt;/h3&gt;

&lt;p&gt;Current API marketplaces (like RapidAPI or the Apidog API Hub) are for human developers to browse--you search, read the docs, and integrate manually.&lt;/p&gt;

&lt;p&gt;The API marketplace of the future is for AI Agents. An Agent needs to complete a task, so it automatically searches for available APIs, automatically understands the Schema, and automatically completes the call. No human intervention is required.&lt;/p&gt;

&lt;p&gt;This isn't science fiction. The MCP protocol is already doing this--it defines how AI discovers and invokes external tools (which are, in essence, APIs).&lt;/p&gt;

&lt;p&gt;Whoever turns their API ecosystem into an AI-friendly "Tool Store" first will secure the traffic entry point of the AI era. (Just as the recent explosion of GPTs integration into platforms like Slack or Zapier has demonstrated, this is the value brought by open API platforms.)&lt;/p&gt;

&lt;h2&gt;
  
  
  The Evolution of Traditional Tools
&lt;/h2&gt;

&lt;p&gt;This brings us to a natural question: Are existing API management tools ready?&lt;/p&gt;

&lt;p&gt;The answer is: &lt;strong&gt;Most are not.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;But change has begun. Taking &lt;a href="https://apidog.com/?utm_source=dev_to&amp;amp;utm_medium=Auden&amp;amp;utm_content=Auden" rel="noopener noreferrer"&gt;Apidog&lt;/a&gt; as an example, its product architecture--visual Schema design, smart Mocking, automated testing, and API Hub--naturally possesses the foundation to evolve for the AI era:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Visual Schema Design&lt;/strong&gt; -&amp;gt; Naturally transitions to "AI-readable precise definitions."&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Smart Mocking&lt;/strong&gt; -&amp;gt; Evolves into an "AI Agent Development Environment," where Agents can debug without waiting for the backend.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Automated Testing&lt;/strong&gt; -&amp;gt; Adds "Agent Behavior Pattern Testing," covering retries, concurrency, and orchestrated calls.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;API Hub&lt;/strong&gt; -&amp;gt; Evolves into an "AI Tool Discovery Platform," where Agents automatically search and integrate APIs.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This isn't just an opportunity for a single tool; it's an upgrade window for the entire API management category.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Undervalued Infrastructure
&lt;/h2&gt;

&lt;p&gt;Returning to the title of this article: &lt;strong&gt;AI won't replace APIs; it will only make them more important.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This isn't a phrase of consolation. It is a sober observation of the technical architecture in the AI era.&lt;/p&gt;

&lt;p&gt;While everyone is chasing larger models, stronger reasoning capabilities, and cooler Agent frameworks, a simple fact is being ignored:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The ceiling of AI is determined by computing power, by data, and even more so by the breadth and quality of the APIs it can call.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No matter how smart an AI Agent is, without high-quality APIs available, it is just a genius trapped in a glass box--able to see the world outside, but unable to touch it.&lt;/p&gt;

&lt;p&gt;So, if you are a designer, developer, or manager of APIs, congratulations--the work you are doing will not only remain valuable in the AI era, but it will become the most critical infrastructure.&lt;/p&gt;

&lt;p&gt;APIs are the bridge between AI and the real world. The more bridges there are, and the sturdier they are, the further AI can go.&lt;/p&gt;

&lt;p&gt;And the tools that help you build those bridges--whether it's Apidog, Postman, or anything else--their mission is also quietly upgrading: from helping humans manage APIs to helping this world pave the way for AI.&lt;/p&gt;

&lt;p&gt;This, perhaps, is the greatest space for imagination in the field of API management.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>api</category>
      <category>learning</category>
      <category>agents</category>
    </item>
    <item>
      <title>How to Use the Claude Opus 4.6 API: A Step-by-Step Tutorial</title>
      <dc:creator>Auden</dc:creator>
      <pubDate>Fri, 06 Feb 2026 07:39:57 +0000</pubDate>
      <link>https://forem.com/auden/how-to-use-the-claude-opus-46-api-a-step-by-step-tutorial-29pa</link>
      <guid>https://forem.com/auden/how-to-use-the-claude-opus-46-api-a-step-by-step-tutorial-29pa</guid>
      <description>&lt;p&gt;Recently, Anthropic launched its most powerful model to date — &lt;strong&gt;Claude Opus 4.6&lt;/strong&gt;. It sets new benchmarks in coding, AI Agents, and enterprise workflows, boasting a massive 1M context window and powerful hybrid reasoning capabilities. For developers, this means the ability to build smarter, more reliable AI applications.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvwuyqtpc78gt66btllku.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvwuyqtpc78gt66btllku.png" alt="How to Use the Claude Opus 4.6 API"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To unleash the full potential of Claude Opus 4.6, the first step is to learn how to call its API. Writing code directly for debugging can be both time-consuming and tedious, especially for developers who are new to APIs. A more efficient way is to use a professional API tool that allows you to intuitively build and test API requests in a graphical interface. &lt;a href="https://apidog.com/?utm_source=dev_to&amp;amp;utm_medium=Auden&amp;amp;utm_content=Auden" rel="noopener noreferrer"&gt;Apidog&lt;/a&gt; is such a powerful tool that integrates API design, debugging, and testing, making it perfect for exploring and debugging the Claude API.&lt;/p&gt;

&lt;p&gt;This article will detail how to use Apidog to call the Claude Opus 4.6 API step-by-step from scratch, allowing you to interact intuitively with this top-tier AI model without writing any code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Preparation: Get Your API Key
&lt;/h2&gt;

&lt;p&gt;Before communicating with any API, you need a credential to prove you have access rights, typically called an API Key. It is a unique string that needs to be attached to every request so the server can verify your identity.&lt;/p&gt;

&lt;p&gt;To get a Claude API Key, you need to visit Anthropic's official Claude Developer Platform. After logging into your account, you can usually find the option to create a new key in your account settings or on a dedicated "API Keys" page.&lt;/p&gt;

&lt;p&gt;Once generated, the system will provide a string starting with &lt;code&gt;sk-&lt;/code&gt;. This is your API Key, please keep it secure. It acts as the password for accessing Claude services, and anyone with this Key can use your account quota. We will use this Key in subsequent steps.&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding Claude Messages Endpoint
&lt;/h2&gt;

&lt;p&gt;Claude provides an API called the &lt;strong&gt;Messages Endpoint&lt;/strong&gt;, specifically designed to handle conversations with the model. When calling this API, we need to clarify several core elements:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Endpoint URL&lt;/strong&gt;: This is the "mailing address" of the API. For the Claude Messages API, the address is &lt;code&gt;https://api.anthropic.com/v1/messages&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;HTTP Method&lt;/strong&gt;: This is the "sending method". To send instructions to Claude and get a response, we need to use the &lt;code&gt;POST&lt;/code&gt; method because it involves submitting data (our question) to the server.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Headers&lt;/strong&gt;: These are the "envelope headers" containing important metadata, such as our identity credential (API Key) and content format specifications.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Request Body&lt;/strong&gt;: This is the "letter content" containing the specific task we want the model to perform, such as the question to ask or the specified model.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For the Claude API, several key Headers are crucial, as shown in the table below:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Header&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Example Value&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Description&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;code&gt;x-api-key&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;code&gt;sk-xxxxxxxxxxxxxxxxx&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;The API Key for authentication. Replace with your own Key.&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;code&gt;anthropic-version&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;code&gt;2023-06-01&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Specifies the API version you wish to use, ensuring your request isn't broken by API updates.&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;code&gt;Content-Type&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;code&gt;application/json&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Tells the server that the request body we are sending is in JSON format.&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;With these basic concepts understood, we can start building our first request in Apidog.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sending Your First Request with Apidog
&lt;/h2&gt;

&lt;p&gt;Apidog provides a clean graphical interface that allows us to configure API requests just like filling out a form, which is very intuitive.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: Create a New Project and Request
&lt;/h3&gt;

&lt;p&gt;Open the Apidog client, where you can create a new project to manage your Claude API. In the project, click the "+" button on the left, select "HTTP Endpoint", and create a new HTTP request. You can name this request "Claude Chat" for easy lookup later.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev_to&amp;amp;utm_medium=Auden&amp;amp;utm_content=Auden" class="crayons-btn crayons-btn--primary" rel="noopener noreferrer"&gt;Try it&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fekwtazex7t61ddzytk7q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fekwtazex7t61ddzytk7q.png" alt="How to Use the Claude Opus 4.6 API"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Quick Import using cURL Command
&lt;/h3&gt;

&lt;p&gt;In actual work, we often see &lt;code&gt;cURL&lt;/code&gt; commands in API documentation or examples. &lt;code&gt;cURL&lt;/code&gt; is a powerful command-line tool for sending network requests. Apidog provides a very convenient feature: directly parsing &lt;code&gt;cURL&lt;/code&gt; commands.&lt;/p&gt;

&lt;p&gt;A complete &lt;code&gt;cURL&lt;/code&gt; command to call the Claude API might look like this. Note that you need to replace &lt;code&gt;YOUR_API_KEY&lt;/code&gt; with your actual API Key.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl https://api.anthropic.com/v1/messages &lt;span class="se"&gt;\&lt;/span&gt;
     &lt;span class="nt"&gt;--header&lt;/span&gt; &lt;span class="s2"&gt;"x-api-key: YOUR_API_KEY"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
     &lt;span class="nt"&gt;--header&lt;/span&gt; &lt;span class="s2"&gt;"anthropic-version: 2023-06-01"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
     &lt;span class="nt"&gt;--header&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
     &lt;span class="nt"&gt;--data&lt;/span&gt; &lt;span class="s1"&gt;'{
         "model": "claude-opus-4-6",
         "max_tokens": 1024,
         "messages": [
             {"role": "user", "content": "Hello, please introduce yourself."}
         ]
     }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In Apidog, there is no need to manually dismantle this command. Simply copy the entire &lt;code&gt;cURL&lt;/code&gt; command above and paste it directly into Apidog's url bar.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqjpwpx6ft82bua2zee03.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqjpwpx6ft82bua2zee03.png" alt="How to Use the Claude Opus 4.6 API"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Apidog will intelligently identify it as a &lt;code&gt;cURL&lt;/code&gt; command and automatically fill in the request method, URL, Headers, and Body for you. This feature greatly improves debugging efficiency, especially when dealing with APIs containing many parameters and complex request bodies.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3: Manually Construct the Request (Optional)
&lt;/h3&gt;

&lt;p&gt;If you don't want to use cURL for quick import, you can also manually construct a request.&lt;/p&gt;

&lt;p&gt;First, configure the request method and URL. According to Anthropic's API specifications, creating a conversation typically uses the &lt;code&gt;POST&lt;/code&gt; method. Its official API base URL is &lt;code&gt;https://api.anthropic.com&lt;/code&gt;, and the specific conversation endpoint path is &lt;code&gt;/v1/messages&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;So, in Apidog's url bar, select the &lt;code&gt;POST&lt;/code&gt; method and enter the complete URL: &lt;code&gt;https://api.anthropic.com/v1/messages&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Next, configure the request headers (Headers). The API server uses headers to obtain metadata, such as authentication info and content format. Calling the Claude API requires the following Headers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;x-api-key&lt;/code&gt;: Used to store your API Key.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;anthropic-version&lt;/code&gt;: Specifies the API version number; this is a required field. According to official docs, you can enter a date here, e.g., &lt;code&gt;2023-06-01&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;Content-Type&lt;/code&gt;: Declares the data format of the request body. Since we are sending JSON data, the value should be &lt;code&gt;application/json&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In Apidog's "Headers" tab, add these three items one by one.&lt;/p&gt;

&lt;p&gt;After configuring headers, the most important part is building the request body (Body). The body carries the specific task we want Claude to perform. Switch to the "Body" tab, select &lt;code&gt;JSON&lt;/code&gt; format, and enter the following content:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"model"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"claude-opus-4-6"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"max_tokens"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1024&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"messages"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"role"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"user"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"content"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Hello, please introduce yourself."&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This JSON data contains three key fields:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;model&lt;/code&gt;: Specifies the model name to call; here we use &lt;code&gt;claude-opus-4-6&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;max_tokens&lt;/code&gt;: Sets the maximum length of content generated by the model (in Tokens).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;messages&lt;/code&gt;: An array containing conversation history. Each object represents a message, where &lt;code&gt;role&lt;/code&gt; indicates the role (&lt;code&gt;user&lt;/code&gt; for the user) and &lt;code&gt;content&lt;/code&gt; is the specific message content.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 4: Send Request and View Response
&lt;/h3&gt;

&lt;p&gt;After completing any of the above steps, save the interface and go to the "Request" debugging page. If the API Key hasn't been replaced, you need to replace &lt;code&gt;YOUR_API_KEY&lt;/code&gt; in the Headers with your actual API Key.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe037ny5kcxzbyyss4kzv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe037ny5kcxzbyyss4kzv.png" alt="How to Use the Claude Opus 4.6 API"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then, click the "Send" button on the Apidog interface. If everything is normal, you will see the result returned by Claude Opus 4.6 in the "Response" area below after a short wait.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk0c58u3vbg2ezizwx32c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk0c58u3vbg2ezizwx32c.png" alt="How to Use the Claude Opus 4.6 API"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Apidog will send our constructed request to Anthropic's servers. Moments later, we can see the result returned by Claude in the "Response" area. A successful response is usually also in JSON format, containing the answer generated by the model.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"model"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"claude-opus-4-6"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"msg_01..."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"message"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"role"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"assistant"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"content"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"text"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"text"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Hello! I am Claude ..........."&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;...&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As you can see, the &lt;code&gt;text&lt;/code&gt; field within the returned &lt;code&gt;content&lt;/code&gt; array contains the answer from Claude Opus 4.6. This marks the successful completion of our first API call.&lt;/p&gt;

&lt;h2&gt;
  
  
  Exploring More Rich API Parameters
&lt;/h2&gt;

&lt;p&gt;After mastering the basic calling method, we can further explore other parameters provided by the Messages API to achieve more complex interactions and finer control.&lt;/p&gt;

&lt;h3&gt;
  
  
  Streaming
&lt;/h3&gt;

&lt;p&gt;By default, the API returns the complete response at once after the model finishes generating all content. For longer answers, users might have to wait a while. Streaming solves this problem by allowing the server to return content character by character or word by word, creating a typewriter-like real-time effect.&lt;/p&gt;

&lt;p&gt;To enable streaming, simply add a field &lt;code&gt;"stream": true&lt;/code&gt; to the JSON request body.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"model"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"claude-opus-4-6"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"max_tokens"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1024&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"messages"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"role"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"user"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"content"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Hello, please introduce yourself."&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"stream"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When this request is sent, &lt;strong&gt;Apidog's response area will continuously receive the data stream in the form of Server-Sent Events (SSE), displaying the content generated by the model in real-time&lt;/strong&gt;, which is very useful for building interactive chat applications.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh799b7tllmxk7qak9vki.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh799b7tllmxk7qak9vki.png" alt="How to Use the Claude Opus 4.6 API"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Controlling Creativity and Randomness
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;temperature&lt;/code&gt; is a very interesting parameter that controls the randomness of the model's output. Its value typically ranges between 0.0 and 1.0.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;A lower &lt;code&gt;temperature&lt;/code&gt; (e.g., 0.2) makes the model's answers more deterministic and consistent, suitable for scenarios requiring precise, objective answers like factual Q&amp;amp;A or code generation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A higher &lt;code&gt;temperature&lt;/code&gt; (e.g., 0.8) makes the model's answers more creative and diverse, suitable for scenarios like brainstorming and creative writing.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Add the &lt;code&gt;temperature&lt;/code&gt; field in the JSON to adjust it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"model"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"claude-opus-4-6"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"max_tokens"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1024&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"temperature"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.7&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"messages"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"role"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"user"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"content"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Give me an idea for a sci-fi novel."&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Multi-turn Conversation
&lt;/h3&gt;

&lt;p&gt;Real conversation is not a one-off Q&amp;amp;A but a continuous exchange with context. The design of the Messages API naturally supports multi-turn conversations. The implementation is very simple: just include the entire previous conversation history in the &lt;code&gt;messages&lt;/code&gt; array.&lt;/p&gt;

&lt;p&gt;For example, after asking the first question and getting an answer, we can build a second request that includes the Q&amp;amp;A from the first round:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"model"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"claude-opus-4-6"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"max_tokens"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1024&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"messages"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"role"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"user"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"content"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"What is the capital of France?"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"role"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"assistant"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"content"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"The capital of France is Paris."&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"role"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"user"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"content"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"What are the famous attractions there?"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this request, we included the user's first question, the model's first answer, and the user's second question. This way, when answering "What are the famous attractions there?", the model can understand that "there" refers to "Paris" and provide relevant answers.&lt;/p&gt;

&lt;p&gt;To facilitate review, the following table summarizes the functions of several common API parameters:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Parameter&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Type&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Description&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;code&gt;model&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;string&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Specifies the model to use, e.g., &lt;code&gt;claude-opus-4-6&lt;/code&gt;.&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;code&gt;messages&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;array&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Conversation history, containing alternating messages from user and assistant.&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;code&gt;max_tokens&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;integer&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Limit on the maximum length of generated content.&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;code&gt;temperature&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;float&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Controls output randomness; higher values are more creative.&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;code&gt;stream&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;boolean&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Whether to enable streaming; &lt;code&gt;true&lt;/code&gt; means enabled.&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Using Apidog to Boost Debugging Efficiency
&lt;/h2&gt;

&lt;p&gt;Apidog is not just a request sending tool; it also provides many advanced features that can significantly improve the efficiency of API debugging and development.&lt;/p&gt;

&lt;h3&gt;
  
  
  Manage API Keys with Environment Variables
&lt;/h3&gt;

&lt;p&gt;Hardcoding API Keys directly in request headers poses security risks and makes it inconvenient to switch between different environments (like development and production). Apidog's environment variable feature can solve this problem perfectly.&lt;/p&gt;

&lt;p&gt;We can create a variable named &lt;code&gt;claude_api_key&lt;/code&gt; in Apidog's environment management and set its value to your API Key.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F400jrqb1ck9vyf9682em.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F400jrqb1ck9vyf9682em.png" alt="How to Use the Claude Opus 4.6 API"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then, in the Headers settings of the request, modify the value of &lt;code&gt;x-api-key&lt;/code&gt; to &lt;code&gt;{{claude_api_key}}&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F291zf4e06a1txho9yqp1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F291zf4e06a1txho9yqp1.png" alt="How to Use the Claude Opus 4.6 API"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This way, Apidog will automatically replace it with the real value when sending the request. When you need to change the Key, just modify the environment variable, and all endpoints using this variable will automatically update—safe and efficient.&lt;/p&gt;

&lt;h3&gt;
  
  
  Save and Reuse Endpoints
&lt;/h3&gt;

&lt;p&gt;Endpoint debugging in Apidog can be saved. This means your constructed Claude API requests, including URL, Headers, Body, and various parameter configurations, can be reused with one click. This is not only convenient for your own repeated testing but also facilitates sharing with team members to ensure everyone uses a unified API definition for collaborative development.&lt;/p&gt;

&lt;h3&gt;
  
  
  Auto-generate Code
&lt;/h3&gt;

&lt;p&gt;One of the most exciting features after successfully debugging an API in Apidog is "Code Generation". You can find a "Generate Code" option on the right side of the endpoint documentation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4pv1hpug3xzx6w7orv2a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4pv1hpug3xzx6w7orv2a.png" alt="How to Use the Claude Opus 4.6 API"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After clicking, Apidog can automatically generate code in multiple programming languages and frameworks based on your current request configuration, such as Python (&lt;code&gt;requests&lt;/code&gt; library), JavaScript (&lt;code&gt;axios&lt;/code&gt; or &lt;code&gt;fetch&lt;/code&gt;), Java, Go, Curl, etc.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fks87dyep6gfsrybjjerp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fks87dyep6gfsrybjjerp.png" alt="How to Use the Claude Opus 4.6 API"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This means seamless integration from API debugging to the project. You don't need to manually write tedious HTTP request code; just copy the code snippet generated by Apidog into your project to quickly implement the call to the Claude API, allowing you to focus entirely on developing business logic.&lt;/p&gt;

&lt;p&gt;Through the above steps, we have not only learned how to use &lt;a href="https://apidog.com/?utm_source=dev_to&amp;amp;utm_medium=Auden&amp;amp;utm_content=Auden" rel="noopener noreferrer"&gt;Apidog&lt;/a&gt; to call and debug the Claude Opus 4.6 API but also mastered methods to use advanced features to improve development efficiency. From sending the first "Hello" to implementing multi-turn conversations with context, and then to one-click project code generation, the entire process is completed in an intuitive, unified platform. This paves the way for you to further explore Claude's powerful capabilities and build innovative AI applications.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>ai</category>
      <category>tutorial</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Postman Ends Free Team Plans in March 2026. Here Is The Free Alternative I Switched To</title>
      <dc:creator>Auden</dc:creator>
      <pubDate>Thu, 05 Feb 2026 06:18:04 +0000</pubDate>
      <link>https://forem.com/auden/postman-ends-free-team-plans-in-march-2026-here-is-the-free-alternative-i-switched-to-118p</link>
      <guid>https://forem.com/auden/postman-ends-free-team-plans-in-march-2026-here-is-the-free-alternative-i-switched-to-118p</guid>
      <description>&lt;p&gt;Recently, news from Postman has caused quite a stir in the developer community. According to their official blog and emails sent to users, Postman's pricing and product plans are undergoing a major overhaul effective &lt;strong&gt;March 1, 2026&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fepu96642hv29ctcr0mxg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fepu96642hv29ctcr0mxg.png" alt="Postman Ends Free Team Plans in March 2026. Here Is The Free Alternative I Switched To"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The most critical change is to the &lt;strong&gt;Free plan&lt;/strong&gt;, which currently supports team collaboration. It will be adjusted to &lt;strong&gt;single-user only&lt;/strong&gt;. This means that if your team relies on the free version of Postman for collaborative API development and testing, you will soon be forced to upgrade to a paid Team plan.&lt;/p&gt;

&lt;p&gt;For many small teams with limited budgets, open-source contributors, and learners, this is an issue that cannot be ignored. When a familiar tool no longer offers free collaboration, finding a suitable alternative becomes urgent.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Do the Changes to Postman Mean?
&lt;/h2&gt;

&lt;p&gt;Before discussing alternatives, it's necessary to clearly understand the specific impact of Postman's adjustments. This change isn't just a simple feature reduction; it's a strategic shift in product positioning that directly affects how free users operate.&lt;/p&gt;

&lt;h3&gt;
  
  
  Core Restrictions of the Free Plan
&lt;/h3&gt;

&lt;p&gt;According to Postman, starting March 1, 2026, the new Free plan will be strictly limited to a single user.&lt;/p&gt;

&lt;p&gt;This means the workflow of inviting multiple members to a Workspace, sharing API Collections, and synchronizing development progress—features we've taken for granted—will no longer exist in the free version. Any scenario requiring collaboration between two or more people will require migration to a paid plan.&lt;/p&gt;

&lt;p&gt;For users accustomed to collaborating within Postman, this presents a direct challenge. Either the entire team pays for collaboration features, or you regress to a primitive state where everyone manages APIs locally on their own machines—a move that undoubtedly kills development efficiency and consistency.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why You Need an Alternative
&lt;/h3&gt;

&lt;p&gt;Postman's new plans introduce many powerful features, such as native AI capabilities, deeper integration with Git workflows, and a brand-new API Catalog. These are indeed attractive for large enterprises or teams pursuing extreme efficiency.&lt;/p&gt;

&lt;p&gt;However, for many developers and smaller teams, the most basic and core requirement is simply &lt;strong&gt;stable and free team collaboration&lt;/strong&gt;. When this fundamental need becomes a paid feature, cost becomes an unavoidable factor.&lt;/p&gt;

&lt;p&gt;Therefore, finding a tool that satisfies core functions like API design, debugging, and testing, while also providing complete team collaboration capabilities on a free tier, is the most practical choice.&lt;/p&gt;

&lt;p&gt;Enter &lt;a href="https://apidog.com/?utm_source=dev_to&amp;amp;utm_medium=Auden&amp;amp;utm_content=Auden" rel="noopener noreferrer"&gt;&lt;strong&gt;Apidog&lt;/strong&gt;&lt;/a&gt;, an all-in-one API collaboration platform that combines API design, development, and testing. With its robust free team collaboration capabilities, it has become a top contender for developers looking to migrate.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev_to&amp;amp;utm_medium=Auden&amp;amp;utm_content=Auden" class="crayons-btn crayons-btn--primary" rel="noopener noreferrer"&gt;Try it&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhgzycfz30p8kprwg7fzr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhgzycfz30p8kprwg7fzr.png" alt="Postman Ends Free Team Plans in March 2026. Here Is The Free Alternative I Switched To"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Choose Apidog?
&lt;/h2&gt;

&lt;p&gt;Among the myriad of API tools available, &lt;a href="https://apidog.com/?utm_source=dev_to&amp;amp;utm_medium=Auden&amp;amp;utm_content=Auden" rel="noopener noreferrer"&gt;&lt;strong&gt;Apidog&lt;/strong&gt;&lt;/a&gt; has a very clear positioning: an all-in-one API platform built for team collaboration. It is not just an API request tool; it spans the entire API lifecycle from design and documentation to development, testing, and release.&lt;/p&gt;

&lt;p&gt;Most importantly, Apidog's core team collaboration features are generous for free users, making it the ideal choice to counter Postman's policy changes.&lt;/p&gt;

&lt;p&gt;Here is a simple comparison to visualize Apidog's advantages in team collaboration:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Feature&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Postman (Free Plan after March 2026)&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Apidog (Free Plan)&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;strong&gt;Team Size&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Limited to &lt;strong&gt;1 User&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;strong&gt;Up to 4 Users&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;strong&gt;Collaboration&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Not supported (Upgrade required)&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Real-time data sync, interface comments, permission management&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;strong&gt;API Design &amp;amp; Docs&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Manual writing supported&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Visual design support with auto-generated, shareable documentation&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;strong&gt;Mock Server&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Supported, with limits&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Powerful advanced Mock features with custom rules&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;strong&gt;Auto Testing&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Supported, with limits&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Support for test case orchestration, assertions, and test reports&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;strong&gt;Core Positioning&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Individual Developer Tool&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Team Collaborative API Platform&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;As shown in the table, while Postman's free version retreats to being a personal tool, Apidog continues to champion team collaboration as a core value. It doesn't just solve the problem of "can we collaborate?"; it offers richer functionality in the depth and breadth of that collaboration.&lt;/p&gt;

&lt;h2&gt;
  
  
  Migrating from Postman to Apidog
&lt;/h2&gt;

&lt;p&gt;Moving from a familiar tool to a new one often brings anxiety about data loss and learning curves. Fortunately, Apidog provides a seamless &lt;strong&gt;Postman data import&lt;/strong&gt; feature, making the entire migration process smooth and painless.&lt;/p&gt;

&lt;p&gt;The process consists of two main steps: exporting data from Postman and importing it into &lt;a href="https://apidog.com/?utm_source=dev_to&amp;amp;utm_medium=Auden&amp;amp;utm_content=Auden" rel="noopener noreferrer"&gt;&lt;strong&gt;Apidog&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Exporting Postman Data
&lt;/h3&gt;

&lt;p&gt;In Postman, your core assets are usually &lt;strong&gt;Collections&lt;/strong&gt; and &lt;strong&gt;Environments&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A &lt;code&gt;Collection&lt;/code&gt; is a set of all your saved API requests, including URLs, methods, headers, bodies, etc. An &lt;code&gt;Environment&lt;/code&gt; stores variables for different contexts, such as &lt;code&gt;API_HOST&lt;/code&gt; for development versus production.&lt;/p&gt;

&lt;p&gt;First, you need to export this data to files.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the Postman client and find the &lt;code&gt;Collection&lt;/code&gt; you want to export in the left navigation bar.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn4w40crp206kpl4v5xm1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn4w40crp206kpl4v5xm1.png" alt="Postman Ends Free Team Plans in March 2026. Here Is The Free Alternative I Switched To"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Click the three dots (&lt;code&gt;...&lt;/code&gt;) icon next to the Collection and select &lt;strong&gt;Export&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In the popup window, choose the recommended &lt;strong&gt;Collection v2.1&lt;/strong&gt; format and save the JSON file to your local machine.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F80ufs12yp4uy24uve7hy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F80ufs12yp4uy24uve7hy.png" alt="Postman Ends Free Team Plans in March 2026. Here Is The Free Alternative I Switched To"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next, export your environments in the same way. Click the &lt;strong&gt;Environments&lt;/strong&gt; tab on the left, find the environment you need, click the three dots (&lt;code&gt;...&lt;/code&gt;), select &lt;strong&gt;Export&lt;/strong&gt;, and save it as a JSON file.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F75rn9k57ih1asci0t62w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F75rn9k57ih1asci0t62w.png" alt="Postman Ends Free Team Plans in March 2026. Here Is The Free Alternative I Switched To"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Importing Data into Apidog
&lt;/h3&gt;

&lt;p&gt;Once you have your JSON files, you can import them into Apidog.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Open Apidog and enter your project.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click "Settings" (usually a gear icon) in the left sidebar.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select &lt;strong&gt;"Import Data"&lt;/strong&gt; and choose the &lt;strong&gt;"Postman"&lt;/strong&gt; option.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmcata5zxkuqj330edvgv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmcata5zxkuqj330edvgv.png" alt="Postman Ends Free Team Plans in March 2026. Here Is The Free Alternative I Switched To"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Apidog will present an upload interface. You can drag and drop your exported &lt;code&gt;Collection&lt;/code&gt; and &lt;code&gt;Environment&lt;/code&gt; JSON files directly into the upload area. Apidog supports uploading multiple files at once and will automatically recognize and process them.&lt;/p&gt;

&lt;p&gt;After uploading, Apidog parses the file content, seamlessly converting Postman requests, directory structures, and environment variables into Apidog's interfaces and environments. Once the import is successful, you'll see all your familiar API requests ready to go in the Apidog interface.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fofxbapqoj5rwvdocxzi2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fofxbapqoj5rwvdocxzi2.png" alt="Postman Ends Free Team Plans in March 2026. Here Is The Free Alternative I Switched To"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Start Collaborating in Apidog
&lt;/h2&gt;

&lt;p&gt;With data migration complete, you can now truly experience the collaborative benefits of Apidog.&lt;/p&gt;

&lt;h3&gt;
  
  
  Invite Team Members
&lt;/h3&gt;

&lt;p&gt;The first step in collaboration is building your team. In Apidog, inviting colleagues is straightforward.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Click on &lt;strong&gt;"Settings"&lt;/strong&gt; or &lt;strong&gt;"Members/Permissions"&lt;/strong&gt; in your project or team dashboard.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Invite new members via a shareable link or email invitation.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4liujlrf9mxk73cd6boh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4liujlrf9mxk73cd6boh.png" alt="Postman Ends Free Team Plans in March 2026. Here Is The Free Alternative I Switched To"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Unlike Postman's upcoming single-user limit, Apidog allows you to add up to &lt;strong&gt;4 team members&lt;/strong&gt; for free. It also offers a flexible permission management system, allowing you to assign different roles (Admin, Editor, Read-only, etc.) to ensure project data security.&lt;/p&gt;

&lt;h3&gt;
  
  
  Experience the All-in-One Workflow
&lt;/h3&gt;

&lt;p&gt;Apidog's strength lies in its "All-in-One" design philosophy. It's not just a Postman replacement; it's a platform that covers the full API lifecycle.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Design First:&lt;/strong&gt; Collaboration often starts with API design. You can define paths, parameters, request bodies, and response structures visually directly on the platform.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Auto-Generated Docs:&lt;/strong&gt; Once the API is designed, professional and beautiful API documentation is generated automatically. You can share this online with frontend colleagues or third-party partners, who can view and debug directly in their browser without installing software.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Smart Mocks:&lt;/strong&gt; For frontend developers, Apidog's Mock function is a game-changer. Based on your API design, Apidog automatically generates realistic Mock data. This means frontend work doesn't need to wait for the backend interface to be finished—you can develop and integrate based on Mock data immediately, significantly boosting parallel development efficiency.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Automated Testing:&lt;/strong&gt; When the backend interface is ready, team members can perform debugging and automated testing within Apidog. You can combine multiple requests into a test case, set assertions to verify results, and run all tests with one click to generate detailed reports.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Facing Postman's free tier adjustments, there's no need to panic. The tech ecosystem is constantly evolving. While Postman's choice is part of their business strategy, for the vast majority of developers and teams, this is an opportunity to discover and embrace tools like &lt;a href="https://apidog.com/?utm_source=dev_to&amp;amp;utm_medium=Auden&amp;amp;utm_content=Auden" rel="noopener noreferrer"&gt;&lt;strong&gt;Apidog&lt;/strong&gt;&lt;/a&gt;—tools designed for modern team collaboration that are more integrated, efficient, and generous with their free tiers.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/auden/how-to-use-the-claude-opus-46-api-a-step-by-step-tutorial-29pa"&gt;How to Use the Claude Opus 4.6 API: A Step-by-Step Tutorial&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>postman</category>
      <category>webdev</category>
      <category>programming</category>
      <category>api</category>
    </item>
    <item>
      <title>Google Gemini CLI Tutorial: How to Install and Use It (With Images)</title>
      <dc:creator>Auden</dc:creator>
      <pubDate>Thu, 26 Jun 2025 09:58:10 +0000</pubDate>
      <link>https://forem.com/auden/google-gemini-cli-tutorial-how-to-install-and-use-it-with-images-4phb</link>
      <guid>https://forem.com/auden/google-gemini-cli-tutorial-how-to-install-and-use-it-with-images-4phb</guid>
      <description>&lt;h2&gt;
  
  
  What is Gemini CLI?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Gemini CLI&lt;/strong&gt; is an open-source command-line AI tool developed by the &lt;strong&gt;Google Gemini&lt;/strong&gt; team, specifically designed for developers. It can understand code, execute complex queries, automate tasks, and leverage Gemini’s multimodal capabilities (like image recognition) to generate creative content.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/google-gemini/gemini-cli" rel="noopener noreferrer"&gt;https://github.com/google-gemini/gemini-cli&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Features:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Large codebase support&lt;/strong&gt;: Handles over 1 million tokens in context, making it easy to analyze large projects.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Multimodal app prototyping&lt;/strong&gt;: Quickly generate app prototypes from PDFs or sketches.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Automated DevOps tasks&lt;/strong&gt;: Perform Git operations, fetch PRs, create migration plans, and more.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Tool integration&lt;/strong&gt;: Connect to media generation models like Imagen, Veo, and Lyria via an MCP server.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Web search ready&lt;/strong&gt;: Built-in Google Search ensures up-to-date, reliable responses.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe5pjf6uu4ggefqudmk47.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe5pjf6uu4ggefqudmk47.png" alt="Install and Use Google Gemini CLI" width="800" height="440"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Install Gemini CLI
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Prerequisites
&lt;/h3&gt;

&lt;p&gt;Make sure you have &lt;a href="https://nodejs.org/en/download" rel="noopener noreferrer"&gt;&lt;strong&gt;Node.js 18 or later&lt;/strong&gt;&lt;/a&gt; installed. You can check by running:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;node &lt;span class="nt"&gt;-v&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg9seb1tu512mhlyu73ku.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg9seb1tu512mhlyu73ku.png" alt="Install and Use Google Gemini CLI" width="800" height="257"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This guide uses &lt;strong&gt;macOS&lt;/strong&gt; as an example, but the steps are similar on Windows — everything happens in the terminal.&lt;/p&gt;

&lt;h3&gt;
  
  
  Option 1: Run Directly (No Installation)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx https://github.com/google-gemini/gemini-cli
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Option 2: Global Installation (Recommended)
&lt;/h3&gt;

&lt;p&gt;Run the following command in your terminal (you may be prompted to enter your system password if using &lt;code&gt;sudo&lt;/code&gt;):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; @google/gemini-cli
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once installed, just type &lt;code&gt;gemini&lt;/code&gt; in your terminal to launch the interactive CLI. On the first run, it may request some permissions — simply confirm to proceed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjig2y3213qz0kg3ta2ub.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjig2y3213qz0kg3ta2ub.png" alt="Install and Use Google Gemini CLI" width="800" height="526"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  First-Time Setup
&lt;/h2&gt;

&lt;p&gt;Upon launch, the CLI will guide you through the following steps:&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: Choose a Theme
&lt;/h3&gt;

&lt;p&gt;Select a preferred theme style from the options provided. Hit &lt;strong&gt;Enter&lt;/strong&gt; to confirm.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg3uj8ji9at5anyevn5io.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg3uj8ji9at5anyevn5io.png" alt="Install and Use Google Gemini CLI" width="800" height="526"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Sign-In Method
&lt;/h3&gt;

&lt;p&gt;Choose a login method. We recommend &lt;strong&gt;"Login with Google"&lt;/strong&gt;, which allows up to &lt;strong&gt;60 requests/minute&lt;/strong&gt; and &lt;strong&gt;1,000 requests/day&lt;/strong&gt; for free. Select it and hit &lt;strong&gt;Enter&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs72n6hws7qx43jost9pf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs72n6hws7qx43jost9pf.png" alt="Install and Use Google Gemini CLI" width="800" height="526"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you need higher rate limits or enterprise access, you can use an API key:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Obtain your API key from &lt;a href="https://aistudio.google.com/apikey" rel="noopener noreferrer"&gt;&lt;strong&gt;Google AI Studio&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Set it as an environment variable:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;GEMINI_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"YOUR_API_KEY"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Note: Using an API key is typically for direct API calls — this guide focuses on the CLI experience. You can learn more about Gemini API in this guide: &lt;em&gt;Guide:&lt;/em&gt; &lt;a href="https://apidog.com/blog/google-gemini-api/" rel="noopener noreferrer"&gt;&lt;em&gt;What is Google Gemini API and How to Use It?&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Step 3: Browser Authentication
&lt;/h3&gt;

&lt;p&gt;After selecting your sign-in method, a browser window will open. Simply log in with your Google account.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fko95uavhhuqnsus3vqsb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fko95uavhhuqnsus3vqsb.png" alt="Install and Use Google Gemini CLI" width="800" height="358"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  After Login
&lt;/h3&gt;

&lt;p&gt;Once authenticated, you’ll see a confirmation message like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmt4s9mi69ncjtgqitszl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmt4s9mi69ncjtgqitszl.png" alt="Install and Use Google Gemini CLI" width="800" height="346"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;

&lt;p&gt;You can now enter prompts directly in the CLI. For example:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7l0g3jv3pay99zequzi6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7l0g3jv3pay99zequzi6.png" alt="Install and Use Google Gemini CLI" width="800" height="483"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To upload and reference local files, use &lt;code&gt;@&lt;/code&gt; in the CLI to trigger file selection:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fal7ahg35wnqnqfqobka7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fal7ahg35wnqnqfqobka7.png" alt="Install and Use Google Gemini CLI" width="800" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Using Gemini CLI in VSCode
&lt;/h2&gt;

&lt;p&gt;Try running &lt;code&gt;gemini&lt;/code&gt; directly in VSCode’s integrated terminal. After that, use the &lt;code&gt;@&lt;/code&gt; command to select a file and begin a conversation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frl73muzrzmez1ipe1d8l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frl73muzrzmez1ipe1d8l.png" alt="Install and Use Google Gemini CLI" width="800" height="467"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Help me write a simple calculator&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbmv8vw0art0l6i7ap6md.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbmv8vw0art0l6i7ap6md.png" alt="Install and Use Google Gemini CLI" width="800" height="467"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The CLI might request "write access" during the process — just confirm. Here's the (slightly ugly) result:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffoffh7nuw69paemhgooy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffoffh7nuw69paemhgooy.png" alt="Install and Use Google Gemini CLI" width="800" height="476"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Tips &amp;amp; Tricks
&lt;/h2&gt;

&lt;p&gt;If your connection is unstable, Gemini CLI may automatically fall back from the &lt;code&gt;gemini-2.5-pro&lt;/code&gt; model to the faster &lt;code&gt;gemini-2.5-flash&lt;/code&gt; model.&lt;/p&gt;

&lt;p&gt;To discover available commands and usage tips, type &lt;code&gt;/&lt;/code&gt; in the CLI.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa9vc8g30vwylwxq7yf7h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa9vc8g30vwylwxq7yf7h.png" alt="Install and Use Google Gemini CLI" width="800" height="417"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gemini CLI&lt;/strong&gt; is a powerful AI companion for developers, DevOps engineers, and data analysts. It simplifies code analysis, automates workflows, and supports creative generation — all via natural language instructions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bonus: A Must-Have Tool for API Development – Apidog
&lt;/h2&gt;

&lt;p&gt;Alongside Gemini CLI, there’s another powerful productivity tool for developers: &lt;a href="https://apidog.com/?utm_source=dev_to&amp;amp;utm_medium=Auden&amp;amp;utm_content=Auden" rel="noopener noreferrer"&gt;&lt;strong&gt;Apidog&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Apidog is an all-in-one platform for &lt;strong&gt;API documentation&lt;/strong&gt;, &lt;strong&gt;API debugging&lt;/strong&gt;, &lt;strong&gt;API design&lt;/strong&gt;, &lt;strong&gt;API testing&lt;/strong&gt;, &lt;strong&gt;mocking&lt;/strong&gt;, and &lt;strong&gt;automation&lt;/strong&gt;. It streamlines your entire API workflow — making it one of the best tools to boost development efficiency.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftx7b1g14v63qvn07qvpq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftx7b1g14v63qvn07qvpq.png" alt="Install and Use Google Gemini CLI" width="800" height="505"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you’re actively building and testing APIs, give Apidog a try. Signing up is easy — just &lt;a href="https://apidog.com/?utm_source=dev_to&amp;amp;utm_medium=Auden&amp;amp;utm_content=Auden" rel="noopener noreferrer"&gt;register&lt;/a&gt; [here].&lt;/p&gt;

&lt;p&gt;After registering, explore the official demo projects. They’re carefully crafted to help you get up to speed with Apidog’s core features.&lt;/p&gt;

&lt;p&gt;A major benefit of Apidog is its full compatibility with &lt;strong&gt;Postman&lt;/strong&gt; and &lt;strong&gt;Swagger&lt;/strong&gt; formats. If you’ve used those tools before, importing your existing data will be effortless. The intuitive interface also makes it beginner-friendly — even first-time users can &lt;a href="https://apidog.com/?utm_source=dev_to&amp;amp;utm_medium=Auden&amp;amp;utm_content=Auden" rel="noopener noreferrer"&gt;get started&lt;/a&gt; quickly.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>gemini</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>What is FastAPI MCP? Effortless AI Integration for Your FastAPI APIs</title>
      <dc:creator>Auden</dc:creator>
      <pubDate>Thu, 24 Apr 2025 10:27:58 +0000</pubDate>
      <link>https://forem.com/auden/introducing-fastapi-mcp-effortless-ai-integration-for-your-fastapi-apis-2c8c</link>
      <guid>https://forem.com/auden/introducing-fastapi-mcp-effortless-ai-integration-for-your-fastapi-apis-2c8c</guid>
      <description>&lt;p&gt;Today, let's dive into an exceptionally practical tool—&lt;a href="https://github.com/tadata-org/fastapi_mcp" rel="noopener noreferrer"&gt;FastAPI MCP&lt;/a&gt;. If you're building APIs with FastAPI and want your endpoints to be directly accessible to AI models (like GPT, Claude, etc.), this guide is for you.&lt;/p&gt;

&lt;h2&gt;
  
  
  📚 Table of Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;What Is FastAPI MCP?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Why Use FastAPI MCP?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Step-by-Step: Getting Started with FastAPI MCP Locally&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Step 1: Prepare Your Python Environment&lt;/li&gt;
&lt;li&gt;Step 2: Install Required Packages&lt;/li&gt;
&lt;li&gt;Step 3: Create a Simple FastAPI Application&lt;/li&gt;
&lt;li&gt;Step 4: Run and Test Your Application&lt;/li&gt;
&lt;li&gt;Step 5: Explore the MCP Endpoint&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;Connecting FastAPI MCP to an AI Client&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Method 1: SSE (Server-Sent Events) Connection&lt;/li&gt;
&lt;li&gt;Method 2: Using mcp-remote as a Bridge&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;In Practice: FastAPI MCP in Action&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;Advanced Usage Tips&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Selectively Expose Endpoints&lt;/li&gt;
&lt;li&gt;Add Authentication&lt;/li&gt;
&lt;li&gt;Custom Response Processing&lt;/li&gt;
&lt;li&gt;Separate Deployment&lt;/li&gt;
&lt;li&gt;Security Best Practices&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Conclusion&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Other Recommended MCP Servers&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  What Is FastAPI MCP?
&lt;/h2&gt;

&lt;p&gt;Put simply, &lt;strong&gt;FastAPI MCP&lt;/strong&gt; is a zero-configuration solution that automatically exposes your FastAPI endpoints as &lt;a href="https://modelcontextprotocol.io/" rel="noopener noreferrer"&gt;Model Context Protocol (MCP)&lt;/a&gt; tools. With MCP compatibility, AI models can directly interact with your APIs in a seamless, standardized way.&lt;/p&gt;

&lt;p&gt;In essence, FastAPI MCP acts as a bridge: it makes your APIs discoverable and callable by various AI models. Imagine enabling Claude or GPT—through tools like Cursor or Claude Desktop—to fetch data, process information, or trigger business logic by simply calling your API endpoints. That's not just powerful, it's fun!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frlghsfiovxt1x2zy3907.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frlghsfiovxt1x2zy3907.png" alt="Introducing FastAPI MCP"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Use FastAPI MCP?
&lt;/h2&gt;

&lt;p&gt;When developing AI-powered applications, it's increasingly common to have scenarios where LLMs need to interact with external services, for example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Querying your database&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Invoking computational services&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Accessing internal tools&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;... and much more&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Traditionally, this required building custom endpoints or writing dedicated adapters for each AI integration. With FastAPI MCP, just a few lines of code can make your existing API directly available to AI models—saving significant development time and effort.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step-by-Step: Getting Started with FastAPI MCP Locally
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Step 1: Prepare Your Python Environment
&lt;/h3&gt;

&lt;p&gt;First, ensure you have Python installed (version 3.10 or above is recommended). You can check your Python version by running:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;span class="c"&gt;# or&lt;/span&gt;
python3 &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you see a proper version number (like Python 3.10.x), your environment is ready.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgt4a16meh3jzyeq58pgf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgt4a16meh3jzyeq58pgf.png" alt="Introducing FastAPI MCP"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Install Required Packages
&lt;/h3&gt;

&lt;p&gt;Install FastAPI, Uvicorn, and FastAPI MCP:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;fastapi uvicorn fastapi-mcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 3: Create a Simple FastAPI Application
&lt;/h3&gt;

&lt;p&gt;To ensure compatibility and minimize configuration, start with a basic example. In a new file called &lt;code&gt;main.py&lt;/code&gt;, add the following:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;fastapi&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;FastAPI&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;fastapi_mcp&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;FastApiMCP&lt;/span&gt;

&lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;FastAPI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;title&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Simple API&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nd"&gt;@app.get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;/hello&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;operation_id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;say_hello&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;hello&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;A simple greeting endpoint&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;message&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Hello World&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;# Expose MCP server
&lt;/span&gt;&lt;span class="n"&gt;mcp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;FastApiMCP&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Simple MCP Service&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;mcp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;mount&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;__name__&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;__main__&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;uvicorn&lt;/span&gt;
    &lt;span class="n"&gt;uvicorn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;host&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;127.0.0.1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;port&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;8000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This example includes a single &lt;code&gt;/hello&lt;/code&gt; endpoint that returns a greeting.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 4: Run and Test Your Application
&lt;/h3&gt;

&lt;p&gt;Now start your server:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python main.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;or&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;uvicorn main:app &lt;span class="nt"&gt;--reload&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You should see your FastAPI app running at &lt;code&gt;http://127.0.0.1:8000&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyy5k226rcmsoxy4qgeoh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyy5k226rcmsoxy4qgeoh.png" alt="Introducing FastAPI MCP"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 5: Explore the MCP Endpoint
&lt;/h3&gt;

&lt;p&gt;Open your browser at &lt;code&gt;http://127.0.0.1:8000/mcp&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Unlike standard REST APIs, the MCP endpoint utilizes Server-Sent Events (SSE), so you'll see output such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;event: endpoint
data: /mcp/messages/?session_id=a543519a5f3848febfd4f40b5ad3b5c7
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This means the MCP server is up and ready to accept connections from AI clients.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F146fmseg4wod4w467h99.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F146fmseg4wod4w467h99.png" alt="What is FastAPI MCP"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Connecting FastAPI MCP to an AI Client
&lt;/h2&gt;

&lt;p&gt;Suppose you want to connect FastAPI MCP to a client like Cursor. Here’s how:&lt;/p&gt;

&lt;h3&gt;
  
  
  Method 1: SSE (Server-Sent Events) Connection
&lt;/h3&gt;

&lt;p&gt;Most modern MCP clients (Claude Desktop, Cursor, Windsurf, etc.) support SSE. In the client settings, use a configuration like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"fastapi-mcp"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"http://localhost:8000/mcp"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For example, in Cursor, go to Settings → "MCP" → "Add new global MCP server", and add the above config in your &lt;code&gt;mcp.json&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F04n69rrdt9nm6gk2bpbc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F04n69rrdt9nm6gk2bpbc.png" alt="What is FastAPI MCP"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once your FastAPI MCP server is running, the AI IDE will automatically detect it and enable new functionality.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkcba85cshe5i8aorxhjo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkcba85cshe5i8aorxhjo.png" alt="What is FastAPI MCP"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Method 2: Using mcp-remote as a Bridge
&lt;/h3&gt;

&lt;p&gt;If you need authentication support or your MCP client does not support SSE, you can use &lt;a href="https://www.npmjs.com/package/mcp-remote" rel="noopener noreferrer"&gt;mcp-remote&lt;/a&gt; as a bridge:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"fastapi-mcp"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"command"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"npx"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"args"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="s2"&gt;"mcp-remote"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="s2"&gt;"http://localhost:8000/mcp"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="s2"&gt;"8080"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  In Practice: FastAPI MCP in Action
&lt;/h2&gt;

&lt;p&gt;Once you’ve configured your AI client to talk to your FastAPI MCP server, you can simply ask—for example in Cursor’s Agent tab:&lt;/p&gt;

&lt;p&gt;“Call the /hello endpoint for me”.&lt;/p&gt;

&lt;p&gt;The AI will run the MCP tool and return the endpoint result, just as any human developer might.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F93t5iw305dqgfcamatfj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F93t5iw305dqgfcamatfj.png" alt="How to use FastAPI MCP"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Advanced Usage Tips
&lt;/h2&gt;

&lt;p&gt;Once you’ve mastered the basics, FastAPI MCP offers powerful features for production scenarios:&lt;/p&gt;

&lt;h3&gt;
  
  
  Selectively Expose Endpoints
&lt;/h3&gt;

&lt;p&gt;You likely won’t want every endpoint exposed to AI. FastAPI MCP lets you fine-tune which are accessible:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Only expose specific operations
&lt;/span&gt;&lt;span class="n"&gt;mcp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;FastApiMCP&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;include_operations&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;say_hello&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;get_user_info&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;

&lt;span class="c1"&gt;# Exclude certain operations
&lt;/span&gt;&lt;span class="n"&gt;mcp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;FastApiMCP&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;exclude_operations&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;delete_user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;update_settings&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;

&lt;span class="c1"&gt;# Expose only endpoints with specific tags
&lt;/span&gt;&lt;span class="n"&gt;mcp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;FastApiMCP&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;include_tags&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;public&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;read_only&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;

&lt;span class="c1"&gt;# Exclude endpoints with specific tags
&lt;/span&gt;&lt;span class="n"&gt;mcp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;FastApiMCP&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;exclude_tags&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;admin&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;sensitive&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Add Authentication
&lt;/h3&gt;

&lt;p&gt;To secure your MCP endpoints, leverage FastAPI dependencies:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;fastapi&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;FastAPI&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Depends&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Security&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;fastapi.security&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;APIKeyHeader&lt;/span&gt;

&lt;span class="n"&gt;api_key_header&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;APIKeyHeader&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;X-API-Key&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;verify_api_key&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Security&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_key_header&lt;/span&gt;&lt;span class="p"&gt;)):&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;api_key&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;your-secret-key&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;raise&lt;/span&gt; &lt;span class="nc"&gt;HTTPException&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;status_code&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;403&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;detail&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Invalid API key&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;api_key&lt;/span&gt;

&lt;span class="n"&gt;mcp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;FastApiMCP&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;mcp_dependencies&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nc"&gt;Depends&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;verify_api_key&lt;/span&gt;&lt;span class="p"&gt;)])&lt;/span&gt;
&lt;span class="n"&gt;mcp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;mount&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, every MCP call requires a valid API key in the request headers.&lt;/p&gt;

&lt;h3&gt;
  
  
  Custom Response Processing
&lt;/h3&gt;

&lt;p&gt;You may wish to include metadata or customize responses sent to AI:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;response_processor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;response_data&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;response_data&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;processed_by&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;custom_processor&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
    &lt;span class="n"&gt;response_data&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;timestamp&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;now&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;isoformat&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;response_data&lt;/span&gt;

&lt;span class="n"&gt;mcp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;FastApiMCP&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;response_processor&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;response_processor&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;mcp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;mount&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Separate Deployment
&lt;/h3&gt;

&lt;p&gt;For complex setups, you may want to host your MCP server separately from your main API:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# api_app.py
&lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;fastapi&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;FastAPI&lt;/span&gt;
&lt;span class="n"&gt;api_app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;FastAPI&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="c1"&gt;# mcp_app.py
&lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;fastapi&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;FastAPI&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;fastapi_mcp&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;FastApiMCP&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;api_app&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;api_app&lt;/span&gt;

&lt;span class="n"&gt;mcp_app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;FastAPI&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;mcp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;FastApiMCP&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_app&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;mcp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;mount&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mcp_app&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Deploy &lt;code&gt;api_app&lt;/code&gt; and &lt;code&gt;mcp_app&lt;/code&gt; independently as needed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Security Best Practices
&lt;/h2&gt;

&lt;p&gt;When using FastAPI MCP:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Only expose safe, read-only endpoints—avoid dangerous operations like DELETE and PUT.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Require authentication where appropriate.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use Pydantic models for strict parameter validation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Consider filtering or masking sensitive data in responses.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Getting started with FastAPI MCP is remarkably straightforward. With minimal effort, you can turn your API into an AI-accessible interface without rewriting existing code or spending time on custom adapters.&lt;/p&gt;

&lt;p&gt;In summary, the core steps are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Set up Python&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Install dependencies (&lt;code&gt;fastapi&lt;/code&gt;, &lt;code&gt;uvicorn&lt;/code&gt;, and &lt;code&gt;fastapi-mcp&lt;/code&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create a FastAPI app&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Add MCP support with just a few lines of code&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Connect and test from your favorite AI IDE or tool&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For further capabilities and the latest features, see the &lt;a href="https://github.com/tadata-org/fastapi_mcp" rel="noopener noreferrer"&gt;official FastAPI MCP documentation on GitHub&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Other Recommended MCP Servers
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://docs.apidog.com/apidog-mcp-server/?utm_source=dev_to&amp;amp;utm_medium=Auden&amp;amp;utm_content=mcp" rel="noopener noreferrer"&gt;&lt;strong&gt;Apidog MCP Server&lt;/strong&gt;&lt;/a&gt; allows you to provide your &lt;a href="https://apidog.com/?utm_source=dev_to&amp;amp;utm_medium=Auden&amp;amp;utm_content=mcp" rel="noopener noreferrer"&gt;Apidog&lt;/a&gt; API documentation to AI-powered IDEs like Cursor, as well as other tools that support MCP. It covers multiple use cases: you can connect it to APIs documented within your Apidog projects, access publicly published API documentation, or even use OpenAPI/Swagger files.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/lw046MO5POY"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Setup is extremely straightforward—just make sure you have Node.js (version 18 or newer) installed. Choose the appropriate configuration method based on your scenario. For private deployments, you can also add custom API base URLs. With Apidog MCP Server, developers can leverage AI assistants to generate code from API docs, modify code, search API documentation, and more—all dramatically enhancing development efficiency.&lt;/p&gt;

&lt;p&gt;In practice, you simply instruct the AI assistant what you want to do with the API documentation (for example: "Generate all MVC code for the /users endpoint based on the API docs"), and the AI will understand and complete the task. This is especially valuable in collaborative team settings, ensuring all developers work from a unified, standardized API documentation source.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9jtsquxqf9ad3p1khox7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9jtsquxqf9ad3p1khox7.png" alt="How to use FastAPI MCP"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>fastapi</category>
      <category>mcp</category>
      <category>tutorial</category>
      <category>python</category>
    </item>
    <item>
      <title>10 Markdown Tips for Creating Beautiful Product Documentation in 2025</title>
      <dc:creator>Auden</dc:creator>
      <pubDate>Fri, 14 Mar 2025 10:39:51 +0000</pubDate>
      <link>https://forem.com/auden/10-markdown-tips-for-creating-beautiful-product-documentation-in-2025-5ek4</link>
      <guid>https://forem.com/auden/10-markdown-tips-for-creating-beautiful-product-documentation-in-2025-5ek4</guid>
      <description>&lt;p&gt;In product development, excellent documentation not only clearly conveys information but also enhances team collaboration efficiency and product image. Markdown, with its concise and efficient characteristics, has become the preferred format for technical documentation. This article shares 10 practical tips to help you create professional and beautiful product documentation using Markdown.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Leverage Heading Hierarchy to Build Clear Document Structure
&lt;/h2&gt;

&lt;p&gt;Markdown supports six levels of headings, using the &lt;code&gt;#&lt;/code&gt; symbol to represent different heading levels. A well-structured heading hierarchy makes document organization immediately apparent:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# Level 1 Heading: Product Overview&lt;/span&gt;
&lt;span class="gu"&gt;## Level 2 Heading: Core Features&lt;/span&gt;
&lt;span class="gu"&gt;### Level 3 Heading: Feature Details&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Through proper heading hierarchy, readers can quickly locate needed information, making your document well-structured and organized.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Use Emphasis Syntax to Highlight Important Information
&lt;/h2&gt;

&lt;p&gt;Markdown's emphasis syntax can effectively improve document readability when applied to key information:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Use &lt;code&gt;**text**&lt;/code&gt; or &lt;code&gt;__text__&lt;/code&gt; to &lt;strong&gt;bold&lt;/strong&gt; important information&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use &lt;code&gt;*text*&lt;/code&gt; or &lt;code&gt;_text_&lt;/code&gt; to &lt;em&gt;italicize&lt;/em&gt; supplementary notes&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use &lt;code&gt;~~text~~&lt;/code&gt; to indicate deprecated features&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Appropriate use of these emphasis symbols can make key content visually stand out.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Insert Beautiful Tables to Display Data
&lt;/h2&gt;

&lt;p&gt;Markdown's table functionality allows for neat presentation of data comparisons or feature lists:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;| Feature | Basic | Professional | Enterprise |
| --- | :---: | :---: | :---: |
| Multi-user Collaboration | ✅ | ✅ | ✅ |
| API Testing | ❌ | ✅ | ✅ |
| Advanced Analytics | ❌ | ❌ | ✅ |
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This table format is both clear and standardized, suitable for displaying various comparison information and parameter lists.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Use Code Blocks to Present Technical Content
&lt;/h2&gt;

&lt;p&gt;For code or commands related to your product, Markdown code blocks provide syntax highlighting, improving readability:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;getProductInfo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;api&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;request&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="na"&gt;url&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;`/products/&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;method&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;GET&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj86f2m3ne2nlva73em1i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj86f2m3ne2nlva73em1i.png" alt="Markdown Tips" width="800" height="198"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Code blocks not only preserve code formatting but also enable syntax highlighting by specifying the language, making code examples easier to understand.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Add Blockquotes to Enhance Document Layering
&lt;/h2&gt;

&lt;p&gt;Using the &lt;code&gt;&amp;gt;&lt;/code&gt; symbol creates blockquotes, ideal for highlighting notes, tips, or warning information:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gt"&gt;&amp;gt; 📌 **Tip**: This feature is only available in Professional and higher editions.&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; &lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; ⚠️ **Note**: Updating this setting will cause the system to be temporarily unavailable.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Blockquotes create visual distinction, making them perfect for emphasizing important notices or comments.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Flexibly Use Lists to Organize Information
&lt;/h2&gt;

&lt;p&gt;Markdown supports ordered and unordered lists, which can even be nested:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="p"&gt;1.&lt;/span&gt; System Settings
&lt;span class="p"&gt;   *&lt;/span&gt; Basic Settings
&lt;span class="p"&gt;   *&lt;/span&gt; Advanced Settings
&lt;span class="p"&gt;     1.&lt;/span&gt; Permission Management
&lt;span class="p"&gt;     2.&lt;/span&gt; Data Synchronization
&lt;span class="p"&gt;2.&lt;/span&gt; User Management
&lt;span class="p"&gt;   *&lt;/span&gt; User Roles
&lt;span class="p"&gt;   *&lt;/span&gt; Access Control
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Lists are an excellent method for organizing structured information, particularly suitable for presenting steps, feature points, or hierarchical relationships.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Use Horizontal Rules and Spacing to Optimize Long Documents
&lt;/h2&gt;

&lt;p&gt;For longer documents, horizontal rules (&lt;code&gt;---&lt;/code&gt;) can enhance document clarity:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="p"&gt;---
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Additionally, appropriate line breaks and paragraph indentation can make your document more readable, preventing information from being overly dense.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Use Links and Anchors to Improve Document Navigation
&lt;/h2&gt;

&lt;p&gt;Adding internal links and anchors helps readers quickly navigate between different sections:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;Table of Contents:
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;Product Introduction&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;#intro&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;Core Features&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;#features&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;Frequently Asked Questions&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;#faq&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"intro"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class="gu"&gt;## Product Introduction&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"features"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class="gu"&gt;## Core Features&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"faq"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;span class="gu"&gt;## Frequently Asked Questions&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This approach significantly improves navigation efficiency in long documents, allowing readers to find information without excessive scrolling.&lt;/p&gt;

&lt;h2&gt;
  
  
  9. Image Presentation and Layout Techniques
&lt;/h2&gt;

&lt;p&gt;Inserting images in Markdown is simple, but creating beautiful documentation requires attention to image quality and layout:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="p"&gt;![&lt;/span&gt;&lt;span class="nv"&gt;Product Dashboard Screenshot&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;./images/dashboard.png&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"./images/dashboard.png"&lt;/span&gt; &lt;span class="na"&gt;width=&lt;/span&gt;&lt;span class="s"&gt;"720px"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For images requiring explanation, add descriptive text below the image or use small headings as image captions to maintain overall document aesthetics and consistency.&lt;/p&gt;

&lt;h2&gt;
  
  
  10. Utilize Task Lists to Display Progress
&lt;/h2&gt;

&lt;p&gt;Task lists are a particularly useful Markdown feature for clearly showing project progress or feature development status:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="p"&gt;-&lt;/span&gt; [x] User Registration Module
&lt;span class="p"&gt;-&lt;/span&gt; [x] Login Authentication System
&lt;span class="p"&gt;-&lt;/span&gt; [ ] Data Analytics Dashboard
&lt;span class="p"&gt;-&lt;/span&gt; [ ] Multilingual Support
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This format visually represents completed and pending tasks, making it perfect for product roadmaps or feature release plans.&lt;/p&gt;

&lt;h2&gt;
  
  
  Beyond Native Markdown: Apidog Professional Documentation Features
&lt;/h2&gt;

&lt;p&gt;The tips above are based on native Markdown syntax, sufficient for most documentation needs. However, if you're writing API documentation or need more professional technical documentation, &lt;a href="https://apidog.com/?utm_source=dev_to&amp;amp;utm_medium=Auden&amp;amp;utm_content=Auden" rel="noopener noreferrer"&gt;Apidog&lt;/a&gt; Markdown offers powerful components that go beyond native Markdown:&lt;/p&gt;

&lt;h3&gt;
  
  
  Container and List Combinations for Side-by-Side Comparison
&lt;/h3&gt;

&lt;p&gt;For scenarios like comparing old and new versions, &lt;a href="https://apidog.com/?utm_source=dev_to&amp;amp;utm_medium=Auden&amp;amp;utm_content=Auden" rel="noopener noreferrer"&gt;Apidog&lt;/a&gt;'s container components allow side-by-side column displays, intuitively showing differences.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;Container&amp;gt;&lt;/span&gt;

    &lt;span class="nt"&gt;&amp;lt;Columns&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;Column&amp;gt;&lt;/span&gt;
        **Old Version**
      &lt;span class="nt"&gt;&amp;lt;/Column&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;Column&amp;gt;&lt;/span&gt;
        **New Version**
      &lt;span class="nt"&gt;&amp;lt;/Column&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/Columns&amp;gt;&lt;/span&gt;

    ---

    &lt;span class="nt"&gt;&amp;lt;Columns&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;Column&amp;gt;&lt;/span&gt;
        This is the old version content  
        &lt;span class="nt"&gt;&amp;lt;DataSchema&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"5663355"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/Column&amp;gt;&lt;/span&gt;


      &lt;span class="nt"&gt;&amp;lt;Column&amp;gt;&lt;/span&gt;
        This is the new version content  

        &lt;span class="nt"&gt;&amp;lt;DataSchema&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"5663353"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/Column&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/Columns&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;/Container&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcjphtm1owkyb28sjtyoy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcjphtm1owkyb28sjtyoy.png" alt="Markdown Tips" width="800" height="368"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Visual Process Flows with Step Components
&lt;/h3&gt;

&lt;p&gt;For operation guidance content, Apidog's step components create eye-catching visual guides, leading users through operations step by step.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Steps&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Step&lt;/span&gt; &lt;span class="nx"&gt;title&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Configuration Entry&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
     &lt;span class="nx"&gt;Go&lt;/span&gt; &lt;span class="nx"&gt;to&lt;/span&gt;&lt;span class="s2"&gt;`Settings`&lt;/span&gt;&lt;span class="nx"&gt;under&lt;/span&gt;&lt;span class="s2"&gt;`Request`&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Background&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;handshake&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;path&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;configuration&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;png&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="nx"&gt;https&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="c1"&gt;//api.apidog.com/api/v1/projects/544525/resources/351721/image-preview)&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/Background&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;  &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/Step&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;
  &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Step&lt;/span&gt; &lt;span class="nx"&gt;title&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Client Version&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
     &lt;span class="nx"&gt;The&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nx"&gt;is&lt;/span&gt;&lt;span class="s2"&gt;`v4`&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt; &lt;span class="nx"&gt;If&lt;/span&gt; &lt;span class="nx"&gt;the&lt;/span&gt; &lt;span class="nx"&gt;server&lt;/span&gt; &lt;span class="nx"&gt;uses&lt;/span&gt; &lt;span class="nx"&gt;an&lt;/span&gt; &lt;span class="nx"&gt;older&lt;/span&gt; &lt;span class="nf"&gt;version &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;g&lt;/span&gt;&lt;span class="p"&gt;.,&lt;/span&gt; &lt;span class="nx"&gt;v2&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;v3&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="nx"&gt;manually&lt;/span&gt; &lt;span class="k"&gt;switch&lt;/span&gt; &lt;span class="nx"&gt;the&lt;/span&gt; &lt;span class="nx"&gt;client&lt;/span&gt; &lt;span class="nx"&gt;version&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
  &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/Step&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;
  &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Step&lt;/span&gt; &lt;span class="nx"&gt;title&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Handshake Path&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
     &lt;span class="nx"&gt;The&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nx"&gt;is&lt;/span&gt;&lt;span class="s2"&gt;`/socket.io`&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt; &lt;span class="nx"&gt;If&lt;/span&gt; &lt;span class="nx"&gt;the&lt;/span&gt; &lt;span class="nx"&gt;server&lt;/span&gt; &lt;span class="nx"&gt;uses&lt;/span&gt; &lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="nx"&gt;custom&lt;/span&gt; &lt;span class="nf"&gt;path &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;g&lt;/span&gt;&lt;span class="p"&gt;.,&lt;/span&gt; &lt;span class="s2"&gt;`/custom`&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="nx"&gt;update&lt;/span&gt; &lt;span class="nx"&gt;the&lt;/span&gt; &lt;span class="nx"&gt;path&lt;/span&gt; &lt;span class="nx"&gt;accordingly&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
  &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/Step&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/Steps&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fldoojsoi135jws8fn4c2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fldoojsoi135jws8fn4c2.png" alt="Markdown Tips" width="800" height="543"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Data Schemas Reuse
&lt;/h3&gt;

&lt;p&gt;One of Apidog's most powerful features is the "define once, reference everywhere" approach to data schemas. Schemas defined in the system can be directly embedded in documentation, ensuring documentation and endpoints remain synchronized, preventing inconsistencies.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feh58so34uqnnm5mh2muk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feh58so34uqnnm5mh2muk.png" alt="Markdown Tips" width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  FAQ Collapsible Sections
&lt;/h3&gt;

&lt;p&gt;Apidog's collapsible section functionality elegantly handles frequently asked questions, hiding details while retaining key information, significantly improving document cleanliness and reading experience.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;AccordionGroup&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Accordion&lt;/span&gt; &lt;span class="nx"&gt;title&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Block 1&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nx"&gt;Content&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="nx"&gt;Block&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/Accordion&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Accordion&lt;/span&gt; &lt;span class="nx"&gt;title&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Block 2&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nx"&gt;Content&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="nx"&gt;Block&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/Accordion&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Accordion&lt;/span&gt; &lt;span class="nx"&gt;title&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Block 3&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nx"&gt;Content&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="nx"&gt;Block&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/Accordion&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/AccordionGroup&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqtjr1y42292bnheq42ha.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqtjr1y42292bnheq42ha.png" alt="Markdown Tips" width="800" height="208"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Using these native Markdown techniques, we can create well-structured documents with emphasized key points. For teams requiring more professional documentation experiences, especially API development teams, &lt;a href="https://apidog.com/?utm_source=dev_to&amp;amp;utm_medium=Auden&amp;amp;utm_content=Auden" rel="noopener noreferrer"&gt;Apidog&lt;/a&gt; Markdown's enhanced functionality brings additional value, making your documentation both beautiful and practical.&lt;/p&gt;

&lt;p&gt;Regardless of which tool you use, remember that documentation ultimately serves users, helping them efficiently access and understand information. The combination of technical excellence and aesthetics is the winning formula for creating outstanding product documentation.&lt;/p&gt;

&lt;p&gt;To experience these advanced feature components, visit the &lt;a href="https://markdown.apidog.io/?utm_source=dev_to&amp;amp;utm_medium=Auden&amp;amp;utm_content=Auden" rel="noopener noreferrer"&gt;Apidog Markdown official documentation&lt;/a&gt; for more information and begin your professional documentation journey.&lt;/p&gt;

</description>
      <category>markdown</category>
      <category>tutorial</category>
      <category>learning</category>
      <category>webdev</category>
    </item>
    <item>
      <title>How to Debug the Ollama API: A Step-by-Step Guide</title>
      <dc:creator>Auden</dc:creator>
      <pubDate>Wed, 12 Mar 2025 10:14:16 +0000</pubDate>
      <link>https://forem.com/auden/how-to-debug-the-ollama-api-a-step-by-step-guide-1feh</link>
      <guid>https://forem.com/auden/how-to-debug-the-ollama-api-a-step-by-step-guide-1feh</guid>
      <description>&lt;p&gt;This article explains how to download Ollama and deploy AI large language models (such as DeepSeek-R1, Llama 3.2, etc.) locally. Using Ollama—an open-source large language model service tool—you can run powerful open-source AI models on your own computer. We'll provide comprehensive instructions for installation, setup, and most importantly, debugging the API endpoint to enable seamless interaction with your AI models.&lt;/p&gt;

&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Step 1: Download and Install Ollama&lt;/li&gt;
&lt;li&gt;Step 2: Install AI Models&lt;/li&gt;
&lt;li&gt;Step 3: Interact with AI Models&lt;/li&gt;
&lt;li&gt;Step 4: Optional - Simplify Workflows with GUI/Web Tools&lt;/li&gt;
&lt;li&gt;Step 5: Debug the Ollama API&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Step 1: Download and Install Ollama
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Visit Ollama's official GitHub repository: &lt;a href="https://github.com/ollama/ollama" rel="noopener noreferrer"&gt;https://github.com/ollama/ollama&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Download the version corresponding to your operating system (this tutorial uses macOS as an example; Windows follows similar steps).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4h9ynk730usqmc63tfvq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4h9ynk730usqmc63tfvq.png" alt="Ollama Download Page" width="800" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Complete the installation.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffeicq9q36atpyoc0u0l1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffeicq9q36atpyoc0u0l1.png" alt="Ollama Installation" width="800" height="412"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After installation, open the &lt;strong&gt;Terminal&lt;/strong&gt; (on macOS, press &lt;code&gt;F4&lt;/code&gt; and search for "Terminal"). Enter &lt;code&gt;ollama&lt;/code&gt; - if the following prompt appears, installation was successful.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsbvcyh0aejahf29oznmp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsbvcyh0aejahf29oznmp.png" alt="Ollama Terminal Verification" width="800" height="507"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Install AI Models
&lt;/h2&gt;

&lt;p&gt;After installing Ollama, download the desired AI model using these commands:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama run llama3.2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Available models (replace &lt;code&gt;llama3.2&lt;/code&gt; with your preferred model):&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Model&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Parameters&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Size&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Download&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;DeepSeek-R1&lt;/td&gt;
&lt;td&gt;7B&lt;/td&gt;
&lt;td&gt;4.7GB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ollama run deepseek-r1&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DeepSeek-R1&lt;/td&gt;
&lt;td&gt;671B&lt;/td&gt;
&lt;td&gt;404GB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ollama run deepseek-r1:671b&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Llama 3.3&lt;/td&gt;
&lt;td&gt;70B&lt;/td&gt;
&lt;td&gt;43GB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ollama run llama3.3&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Llama 3.2&lt;/td&gt;
&lt;td&gt;3B&lt;/td&gt;
&lt;td&gt;2.0GB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ollama run llama3.2&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Llama 3.2&lt;/td&gt;
&lt;td&gt;1B&lt;/td&gt;
&lt;td&gt;1.3GB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ollama run llama3.2:1b&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Llama 3.2 Vision&lt;/td&gt;
&lt;td&gt;11B&lt;/td&gt;
&lt;td&gt;7.9GB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ollama run llama3.2-vision&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Llama 3.2 Vision&lt;/td&gt;
&lt;td&gt;90B&lt;/td&gt;
&lt;td&gt;55GB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ollama run llama3.2-vision:90b&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Llama 3.1&lt;/td&gt;
&lt;td&gt;8B&lt;/td&gt;
&lt;td&gt;4.7GB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ollama run llama3.1&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Llama 3.1&lt;/td&gt;
&lt;td&gt;405B&lt;/td&gt;
&lt;td&gt;231GB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ollama run llama3.1:405b&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Phi 4&lt;/td&gt;
&lt;td&gt;14B&lt;/td&gt;
&lt;td&gt;9.1GB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ollama run phi4&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Phi 4 Mini&lt;/td&gt;
&lt;td&gt;3.8B&lt;/td&gt;
&lt;td&gt;2.5GB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ollama run phi4-mini&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gemma 2&lt;/td&gt;
&lt;td&gt;2B&lt;/td&gt;
&lt;td&gt;1.6GB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ollama run gemma2:2b&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gemma 2&lt;/td&gt;
&lt;td&gt;9B&lt;/td&gt;
&lt;td&gt;5.5GB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ollama run gemma2&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gemma 2&lt;/td&gt;
&lt;td&gt;27B&lt;/td&gt;
&lt;td&gt;16GB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ollama run gemma2:27b&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mistral&lt;/td&gt;
&lt;td&gt;7B&lt;/td&gt;
&lt;td&gt;4.1GB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ollama run mistral&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Moondream 2&lt;/td&gt;
&lt;td&gt;1.4B&lt;/td&gt;
&lt;td&gt;829MB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ollama run moondream&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Neural Chat&lt;/td&gt;
&lt;td&gt;7B&lt;/td&gt;
&lt;td&gt;4.1GB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ollama run neural-chat&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Starling&lt;/td&gt;
&lt;td&gt;7B&lt;/td&gt;
&lt;td&gt;4.1GB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ollama run starling-lm&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Code Llama&lt;/td&gt;
&lt;td&gt;7B&lt;/td&gt;
&lt;td&gt;3.8GB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ollama run codellama&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Llama 2 Uncensored&lt;/td&gt;
&lt;td&gt;7B&lt;/td&gt;
&lt;td&gt;3.8GB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ollama run llama2-uncensored&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LLaVA&lt;/td&gt;
&lt;td&gt;7B&lt;/td&gt;
&lt;td&gt;4.5GB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ollama run llava&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Granite-3.2&lt;/td&gt;
&lt;td&gt;8B&lt;/td&gt;
&lt;td&gt;4.9GB&lt;/td&gt;
&lt;td&gt;&lt;code&gt;ollama run granite3.2&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A progress indicator will appear during download (duration depends on internet speed):&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnsgwoz4ui0vmfmmxcw8a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnsgwoz4ui0vmfmmxcw8a.png" alt="Download Progress" width="800" height="507"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When prompted with "Send a message", you're ready to interact with the model:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzj553wemuhjex543y72n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzj553wemuhjex543y72n.png" alt="Ready to Chat" width="800" height="507"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Interact with Llama3.2
&lt;/h2&gt;

&lt;p&gt;Example interaction (asking "Who are you?"):&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fai9pgnw6pxyi4h46aayz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fai9pgnw6pxyi4h46aayz.png" alt="Example Chat Interaction" width="800" height="274"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use &lt;code&gt;Control + D&lt;/code&gt; to end the current session.&lt;/li&gt;
&lt;li&gt;To restart later, simply rerun &lt;code&gt;ollama run llama3.2&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 4: Optional GUI/Web Interface Support
&lt;/h2&gt;

&lt;p&gt;Using a terminal for daily interactions can be inconvenient. For a more user-friendly experience, Ollama's GitHub repository lists multiple community-driven GUI and web-based tools. You can explore these options independently, as each project provides its own setup instructions. Here's a brief overview:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;GUI Tools&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ollama Desktop&lt;/strong&gt;: Native app for macOS/Windows (supports model management and chat).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LM Studio&lt;/strong&gt;: Cross-platform interface with model library integration.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Web Interfaces&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ollama WebUI&lt;/strong&gt;: Browser-based chat interface (run locally).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OpenWebUI&lt;/strong&gt;: Customizable web dashboard for model interaction.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;For details, visit the &lt;a href="https://github.com/ollama/ollama?spm=2b75ac3d.2ef5001f.0.0.3d4d5171nJ9MY3#community-projects" rel="noopener noreferrer"&gt;Ollama GitHub README&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5: Debug the Ollama API
&lt;/h2&gt;

&lt;p&gt;Ollama exposes a local API by default. Refer to the &lt;a href="https://github.com/ollama/ollama/blob/main/docs/api.md" rel="noopener noreferrer"&gt;Ollama API Docs&lt;/a&gt; for details.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F12iex9aelrh6szv7ci4b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F12iex9aelrh6szv7ci4b.png" alt="Ollama API Documentation" width="800" height="348"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Below, we will use &lt;a href="https://apidog.com/?utm_source=dev_to&amp;amp;utm_medium=Auden&amp;amp;utm_content=ollama" rel="noopener noreferrer"&gt;Apidog&lt;/a&gt; to debug the local API generated by Ollama. If you haven't installed &lt;a href="https://apidog.com/?utm_source=dev_to&amp;amp;utm_medium=Auden&amp;amp;utm_content=ollama" rel="noopener noreferrer"&gt;Apidog&lt;/a&gt; yet, you can download and install it—it's an excellent tool for API debugging, API documentation, API mocking, and automated API testing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ffoi0rdzmu7nsl9d74b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ffoi0rdzmu7nsl9d74b.png" alt="How to Debug the Ollama API" width="800" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Create a New Request
&lt;/h3&gt;

&lt;p&gt;Copy this cURL command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;--location&lt;/span&gt; &lt;span class="nt"&gt;--request&lt;/span&gt; POST &lt;span class="s1"&gt;'http://localhost:11434/api/generate'&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="nt"&gt;--header&lt;/span&gt; &lt;span class="s1"&gt;'Content-Type: application/json'&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="nt"&gt;--data-raw&lt;/span&gt; &lt;span class="s1"&gt;'{
    "model": "llama3.2",
    "prompt": "Why is the sky blue?",
    "stream": false
}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In &lt;a href="https://apidog.com/?utm_source=dev_to&amp;amp;utm_medium=Auden&amp;amp;utm_content=ollama" rel="noopener noreferrer"&gt;Apidog&lt;/a&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a new HTTP project.&lt;/li&gt;
&lt;li&gt;Paste the cURL into the request builder.&lt;/li&gt;
&lt;li&gt;Save the configuration.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzzbvkkdynisjexl5oxpl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzzbvkkdynisjexl5oxpl.png" alt="Apidog Setup" width="800" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Send the Request
&lt;/h3&gt;

&lt;p&gt;Navigate to the &lt;strong&gt;"Run"&lt;/strong&gt; tab and click "Send". The AI response will appear.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgp8ucje74x3esmnmr8ft.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgp8ucje74x3esmnmr8ft.png" alt="API Response" width="800" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For streaming output, set &lt;code&gt;"stream": true&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4drxa6190styshm9fdlu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4drxa6190styshm9fdlu.png" alt="Streaming Response" width="800" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ffoi0rdzmu7nsl9d74b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0ffoi0rdzmu7nsl9d74b.png" alt="How to Debug the Ollama API" width="800" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Advanced API Debugging Tips
&lt;/h3&gt;

&lt;p&gt;Here are some additional tips for debugging the Ollama API effectively:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Check API Status&lt;/strong&gt;: Verify the Ollama service is running with:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   curl http://localhost:11434/api/version
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Troubleshoot Common Issues&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ensure Ollama is running before making API calls&lt;/li&gt;
&lt;li&gt;Check that your model is correctly downloaded (&lt;code&gt;ollama list&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Verify the port isn't blocked by a firewall&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Customize API Parameters&lt;/strong&gt;: Experiment with these parameters in your requests:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
     &lt;/span&gt;&lt;span class="nl"&gt;"model"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"llama3.2"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
     &lt;/span&gt;&lt;span class="nl"&gt;"prompt"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Write a short poem about coding"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
     &lt;/span&gt;&lt;span class="nl"&gt;"system"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"You are a helpful assistant that writes poetry"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
     &lt;/span&gt;&lt;span class="nl"&gt;"temperature"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.7&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
     &lt;/span&gt;&lt;span class="nl"&gt;"top_p"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mf"&gt;0.9&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
     &lt;/span&gt;&lt;span class="nl"&gt;"top_k"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;40&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
     &lt;/span&gt;&lt;span class="nl"&gt;"max_tokens"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;500&lt;/span&gt;&lt;span class="w"&gt;
   &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Implement Error Handling&lt;/strong&gt;: Always check for error responses from the API and handle them gracefully in your applications.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;This guide covered:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Ollama installation&lt;/li&gt;
&lt;li&gt;Model deployment&lt;/li&gt;
&lt;li&gt;Command-line interaction&lt;/li&gt;
&lt;li&gt;API testing and debugging with &lt;a href="https://apidog.com/?utm_source=dev_to&amp;amp;utm_medium=Auden&amp;amp;utm_content=ollama" rel="noopener noreferrer"&gt;Apidog&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You now have a complete workflow for local AI model experimentation, application development, and API debugging. By mastering the Ollama API, you can build sophisticated applications that leverage powerful AI models running entirely on your local machine.&lt;/p&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://github.com/ollama/ollama" rel="noopener noreferrer"&gt;Ollama GitHub Repository&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ollama/ollama/blob/main/docs/api.md" rel="noopener noreferrer"&gt;Ollama API Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.apidog.com/" rel="noopener noreferrer"&gt;Apidog Documentation&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/auden/10-markdown-tips-for-creating-beautiful-product-documentation-in-2025-5ek4"&gt;10 Markdown Tips for Creating Beautiful Product Documentation in 2025&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>programming</category>
      <category>api</category>
      <category>tutorial</category>
      <category>opensource</category>
    </item>
    <item>
      <title>5 Must-Have Socket.IO Debugging Tools for Modern Web Developers in 2025</title>
      <dc:creator>Auden</dc:creator>
      <pubDate>Tue, 11 Mar 2025 10:14:32 +0000</pubDate>
      <link>https://forem.com/auden/5-must-have-socketio-debugging-tools-for-modern-web-developers-in-2025-1l46</link>
      <guid>https://forem.com/auden/5-must-have-socketio-debugging-tools-for-modern-web-developers-in-2025-1l46</guid>
      <description>&lt;p&gt;In real-time communication application development, Socket.IO stands as a highly popular framework, offering developers convenient bidirectional communication capabilities. However, debugging Socket.IO applications can be challenging, as traditional HTTP debugging tools often fall short. Today, I'll introduce 5 excellent Socket.IO debugging tools to help you develop and test real-time communication applications more efficiently.&lt;/p&gt;

&lt;h2&gt;
  
  
  Apidog
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Tool Name&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Apidog&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Free?&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Yes&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;URL&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;a rel="noopener noreferrer nofollow" href="https://apidog.com/?utm_source=dev_to&amp;amp;utm_medium=Auden&amp;amp;utm_content=socketio"&gt;https://apidog.com&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev_to&amp;amp;utm_medium=Auden&amp;amp;utm_content=socketio" rel="noopener noreferrer"&gt;Apidog&lt;/a&gt; is an all-in-one API development tool that integrates design, debugging, testing, and documentation generation. Recent versions have added comprehensive support for Socket.IO. If you're looking for a complete API development solution, Apidog is definitely the top choice.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmpv7hyeaw3qyinc1tfxw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmpv7hyeaw3qyinc1tfxw.png" alt="Socket.IO Debugging Tools" width="800" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Using Apidog to debug Socket.IO is remarkably intuitive. Simply click the "+" button on the left, select "New Socket.IO" enter the server address (supporting both &lt;code&gt;ws://&lt;/code&gt; and &lt;code&gt;wss://&lt;/code&gt; protocols), and you can quickly establish a connection. Apidog supports various versions of Socket.IO clients, using &lt;code&gt;v4&lt;/code&gt; by default, and for older server versions (like &lt;code&gt;v2/v3&lt;/code&gt;), you can easily switch manually in the settings.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbwagp2zjzlqoy0bn7djh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbwagp2zjzlqoy0bn7djh.png" alt="Socket.IO Debugging Tools" width="800" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Apidog offers powerful Socket.IO debugging features, allowing you to listen to multiple events, send different message types (including JSON, text, and binary formats), and wait for server ACK callbacks. When sending messages, you can add multiple argument, which is particularly useful in complex Socket.IO debugging scenarios.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6bfpicwo80w2c2fzpr9j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6bfpicwo80w2c2fzpr9j.png" alt="Socket.IO Debugging Tools" width="800" height="281"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Even more impressive is Apidog's ability to use variables in connection arguments, enabling easy environment switching and dynamic parameter injection. After debugging, you can save Socket.IO endpoints to your project directory tree, making them accessible for team members. Apidog also supports generating endpoint documentation that can be shared with team members via URL.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgnenetuuksrie916qq84.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgnenetuuksrie916qq84.png" alt="Socket.IO Debugging Tools" width="800" height="481"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For team collaboration, these &lt;a href="https://apidog.com/?utm_source=dev_to&amp;amp;utm_medium=Auden&amp;amp;utm_content=socketio" rel="noopener noreferrer"&gt;Apidog&lt;/a&gt; features make Socket.IO endpoint development, debugging, and documentation management exceptionally convenient. Especially in large projects, being able to systematically manage Socket.IO endpoints is an important tool for improving development efficiency – give it a try!&lt;/p&gt;

&lt;h2&gt;
  
  
  WebSocket King
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Tool Name&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;WebSocket King&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Free?&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Yes&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;URL&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;https://websocketking.com&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;WebSocket King is a lightweight yet powerful tool for testing WebSocket and Socket.IO. Its endpoint is clean and intuitive, making it easy to use even for developers new to WebSocket or Socket.IO.&lt;/p&gt;

&lt;p&gt;The tool's greatest advantage lies in its usability and quick-start feature. You can simply open the website, input your Socket.IO server address, and immediately begin testing. WebSocket King supports custom event names and arguments, allowing you to easily simulate various client behaviors.&lt;/p&gt;

&lt;p&gt;Besides basic connection and message sending functions, WebSocket King provides message history and formatted display features, making the debugging process clearer. You can view all sent and received messages, including their timestamps and content, facilitating communication flow tracking and troubleshooting.&lt;/p&gt;

&lt;p&gt;For beginners, WebSocket King has a gentle learning curve, requiring minimal configuration to start testing, making it a good entry-level choice. While its endpoint is simple, it offers sufficient functionality for most Socket.IO debugging needs.&lt;/p&gt;

&lt;p&gt;However, compared to professional tools like Apidog, WebSocket King is somewhat limited in team collaboration, endpoint management, and advanced features.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F151gnrqxjec6iaoa9z49.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F151gnrqxjec6iaoa9z49.png" alt="Socket.IO Debugging Tools" width="800" height="390"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Socket.IO Test Client
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Tool Name&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Socket.IO Test Client&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Free?&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Yes&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;URL&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;https://chromewebstore.google.com/detail/socketio-test-client/ophmdkgfcjapomjdpfobjfbihojchbko&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Socket.IO Test Client is a Chrome browser extension specifically designed for Socket.IO developers. As a browser extension, its main advantage is convenience – it's always available without needing to launch additional applications.&lt;/p&gt;

&lt;p&gt;This plugin provides a clean endpoint for quickly connecting to Socket.IO servers, sending events, and receiving responses. It supports multiple Socket.IO versions and allows customization of event names and arguments. For routine Socket.IO development and debugging work, this tool adequately meets most needs.&lt;/p&gt;

&lt;p&gt;Another highlight of Socket.IO Test Client is its logging capability, which records all sent and received events and provides a clear timeline view. This makes tracking communication processes and identifying issues much simpler. The plugin also supports request history features, allowing you to save previous test sessions for repeated testing.&lt;/p&gt;

&lt;p&gt;For frontend developers, this tool's integration is a major advantage. You can test Socket.IO while developing web applications in the same browser without switching to other tools. Additionally, as a browser plugin, it better simulates real frontend environments, helping to identify issues that might occur in actual applications.&lt;/p&gt;

&lt;p&gt;However, as a browser plugin, Socket.IO Test Client has limitations in feature richness and extensibility, such as inability to perform complex automated testing or deep integration with team collaboration tools. But for individual developers or small teams, it's a highly practical tool.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F80zkh63pz2ld6rqzctym.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F80zkh63pz2ld6rqzctym.png" alt="Socket.IO Debugging Tools" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Socket.IO Inspector
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Tool Name&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Socket.IO Inspector&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Free?&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Yes&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;URL&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;https://piehost.com/socketio-tester&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Socket.IO Inspector is an online Socket.IO testing tool that allows you to debug and test Socket.IO servers directly in your browser without installing any software. A key feature is its support for all versions of Socket.IO, particularly useful when dealing with older projects using different versions.&lt;/p&gt;

&lt;p&gt;Using Socket.IO Inspector is straightforward – just visit the website, enter your Socket.IO server address (ensuring the server has CORS enabled), and begin connecting and testing. The tool's endpoint is clear, with connection and event controls on the left and communication logs on the right, giving you a comprehensive view of all event interactions.&lt;/p&gt;

&lt;p&gt;The tool supports custom events and arguments, and can format JSON data for easy viewing of complex data structures. It also provides real-time connection status indicators, keeping you informed about server connectivity. When connection issues arise, Socket.IO Inspector displays detailed error messages to help quickly identify problems.&lt;/p&gt;

&lt;p&gt;For temporary testing needs, Socket.IO Inspector is an excellent choice. You don't need to install any software – just open a browser to start testing. This is particularly useful for multi-device testing or quick server function verification in different environments.&lt;/p&gt;

&lt;p&gt;However, as an online tool, Socket.IO Inspector may not match some professional desktop tools in workflow integration and advanced features. Nevertheless, its immediate availability and support for all Socket.IO versions make it highly practical, especially for quick testing or environments where installation permissions are limited.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2lccmliqyhbnwq3avpvv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2lccmliqyhbnwq3avpvv.png" alt="Socket.IO Debugging Tools" width="800" height="503"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Postman
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Tool Name&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Postman&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Free?&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Yes&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;URL&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;https://www.postman.com/&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Postman is a widely popular API development tool that supports not only conventional HTTP request testing but also WebSocket and Socket.IO. As a mature API development platform, Postman offers professional-grade functionality for Socket.IO testing.&lt;/p&gt;

&lt;p&gt;However, compared to tools specifically designed for Socket.IO, Postman may not be as intuitive in supporting certain Socket.IO-specific features. But for teams already using Postman for API development, its uniformity and integration capabilities represent a tremendous advantage, allowing all API-related testing to be completed within a single tool.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz5vsonzpo40677m3qb3w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz5vsonzpo40677m3qb3w.png" alt="Socket.IO Debugging Tools" width="800" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;Socket.IO, as a powerful real-time communication library, requires appropriate tools to assist with development and debugging. Among the 5 recommended tools, &lt;a href="https://apidog.com/?utm_source=dev_to&amp;amp;utm_medium=Auden&amp;amp;utm_content=socketio" rel="noopener noreferrer"&gt;Apidog&lt;/a&gt; undoubtedly stands as the most versatile and professional choice. It not only provides complete Socket.IO debugging functionality but also seamlessly integrates with other API development work, truly delivering an "All in One" development experience.&lt;/p&gt;

&lt;p&gt;While the other tools each have their own characteristics, most only solve part of the problem: WebSocket King is simple to operate but limited in functionality; Socket.IO Test Client is convenient as a browser plugin but doesn't support team collaboration; Socket.IO Inspector requires no installation but is difficult to manage systematically; Postman is feature-rich but not as intuitive or comprehensive in Socket.IO-specific support as Apidog.&lt;/p&gt;

&lt;p&gt;For project teams looking to enhance development efficiency and strengthen team collaboration, Apidog's advantages are particularly evident. It not only meets daily Socket.IO debugging needs but also provides endpoint saving, team sharing, documentation generation, and other features that make the entire development process more standardized and efficient. Especially in large projects, being able to uniformly manage HTTP, WebSocket, and Socket.IO endpoints eliminates the hassle of switching between multiple tools.&lt;/p&gt;

&lt;p&gt;If you're looking for a Socket.IO debugging tool that satisfies both personal development needs and supports team collaboration, Apidog is definitely your first choice. With its continuously improving features and active community support, &lt;a href="https://apidog.com/?utm_source=dev_to&amp;amp;utm_medium=Auden&amp;amp;utm_content=socketio" rel="noopener noreferrer"&gt;Apidog&lt;/a&gt; is becoming a new standard in the API development field.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/auden/10-markdown-tips-for-creating-beautiful-product-documentation-in-2025-5ek4"&gt;10 Markdown Tips for Creating Beautiful Product Documentation in 2025&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>socketio</category>
      <category>testing</category>
      <category>api</category>
      <category>tooling</category>
    </item>
    <item>
      <title>How to Run AI Models Locally with Ollama: Deploy LLMs and Debug APIs in Minutes</title>
      <dc:creator>Auden</dc:creator>
      <pubDate>Fri, 07 Mar 2025 10:25:35 +0000</pubDate>
      <link>https://forem.com/auden/how-to-run-ai-models-locally-with-ollama-deploy-llms-and-debug-apis-in-minutes-59pc</link>
      <guid>https://forem.com/auden/how-to-run-ai-models-locally-with-ollama-deploy-llms-and-debug-apis-in-minutes-59pc</guid>
      <description>&lt;p&gt;This article introduces how to download Ollama and deploy AI large language models (such as DeepSeek-R1, Llama 3.2, etc.). Using Ollama - an open-source large language model service tool - you can run other open-source AI models locally on your computer. We'll provide step-by-step instructions for installation and setup to enable seamless interaction with AI models.&lt;/p&gt;

&lt;blockquote&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;Table of Contents&lt;/strong&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Step 1: Download and Install Ollama&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Step 2: Install AI Models&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Step 3: Interact with AI Models&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Step 4: Optional - Simplify Workflows with GUI/Web Tools&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Step 5: Debug the Local AI API&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Step 1: Download and Install Ollama&lt;/strong&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Visit Ollama's official GitHub repository: &lt;a href="https://github.com/ollama/ollama" rel="noopener noreferrer"&gt;https://github.com/ollama/ollama&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Download the version corresponding to your operating system (this tutorial uses macOS as an example; Windows follows similar steps).&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4h9ynk730usqmc63tfvq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4h9ynk730usqmc63tfvq.png" alt="Run AI Models Locally with Ollama: A Step-by-Step Guide to Installation, Deployment &amp;amp; API Integration" width="800" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3.Complete the installation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffeicq9q36atpyoc0u0l1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffeicq9q36atpyoc0u0l1.png" alt="Run AI Models Locally with Ollama: A Step-by-Step Guide to Installation, Deployment &amp;amp; API Integration" width="800" height="412"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After installation, open the &lt;strong&gt;Terminal&lt;/strong&gt; (on macOS, press &lt;code&gt;F4&lt;/code&gt; and search for "Terminal"). Enter &lt;code&gt;ollama&lt;/code&gt; - if the following prompt appears, installation was successful.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsbvcyh0aejahf29oznmp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsbvcyh0aejahf29oznmp.png" alt="Run AI Models Locally with Ollama: A Step-by-Step Guide to Installation, Deployment &amp;amp; API Integration" width="800" height="507"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Step 2: Install AI Models&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;After installing Ollama, download the desired AI model using these commands:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama run Llama3.2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Available models (replace &lt;code&gt;Llama3.2&lt;/code&gt; with your preferred model):&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;strong&gt;Model&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;strong&gt;Parameters&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;strong&gt;Size&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;strong&gt;Download&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;DeepSeek-R1&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;7B&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;4.7GB&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;code&gt;ollama run deepseek-r1&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;DeepSeek-R1&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;671B&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;404GB&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;code&gt;ollama run deepseek-r1:671b&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Llama 3.3&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;70B&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;43GB&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;code&gt;ollama run llama3.3&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Llama 3.2&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;3B&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;2.0GB&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;code&gt;ollama run llama3.2&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Llama 3.2&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;1B&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;1.3GB&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;code&gt;ollama run llama3.2:1b&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Llama 3.2 Vision&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;11B&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;7.9GB&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;code&gt;ollama run llama3.2-vision&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Llama 3.2 Vision&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;90B&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;55GB&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;code&gt;ollama run llama3.2-vision:90b&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Llama 3.1&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;8B&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;4.7GB&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;code&gt;ollama run llama3.1&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Llama 3.1&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;405B&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;231GB&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;code&gt;ollama run llama3.1:405b&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Phi 4&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;14B&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;9.1GB&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;code&gt;ollama run phi4&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Phi 4 Mini&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;3.8B&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;2.5GB&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;code&gt;ollama run phi4-mini&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Gemma 2&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;2B&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;1.6GB&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;code&gt;ollama run gemma2:2b&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Gemma 2&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;9B&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;5.5GB&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;code&gt;ollama run gemma2&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Gemma 2&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;27B&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;16GB&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;code&gt;ollama run gemma2:27b&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Mistral&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;7B&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;4.1GB&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;code&gt;ollama run mistral&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Moondream 2&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;1.4B&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;829MB&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;code&gt;ollama run moondream&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Neural Chat&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;7B&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;4.1GB&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;code&gt;ollama run neural-chat&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Starling&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;7B&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;4.1GB&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;code&gt;ollama run starling-lm&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Code Llama&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;7B&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;3.8GB&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;code&gt;ollama run codellama&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Llama 2 Uncensored&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;7B&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;3.8GB&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;code&gt;ollama run llama2-uncensored&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;LLaVA&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;7B&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;4.5GB&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;code&gt;ollama run llava&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;Granite-3.2&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;8B&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;4.9GB&lt;/p&gt;&lt;/td&gt;
&lt;td colspan="1" rowspan="1"&gt;&lt;p&gt;&lt;code&gt;ollama run granite3.2&lt;/code&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A progress indicator will appear during download (duration depends on internet speed):&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnsgwoz4ui0vmfmmxcw8a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnsgwoz4ui0vmfmmxcw8a.png" alt="Run AI Models Locally with Ollama: A Step-by-Step Guide to Installation, Deployment &amp;amp; API Integration" width="800" height="507"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When prompted with "Send a message", you're ready to interact with the model:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzj553wemuhjex543y72n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzj553wemuhjex543y72n.png" alt="Run AI Models Locally with Ollama: A Step-by-Step Guide to Installation, Deployment &amp;amp; API Integration" width="800" height="507"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Step 3: Interact with Llama3.2&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Example interaction (asking "Who are you?"):&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fai9pgnw6pxyi4h46aayz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fai9pgnw6pxyi4h46aayz.png" alt="Run AI Models Locally with Ollama: A Step-by-Step Guide to Installation, Deployment &amp;amp; API Integration" width="800" height="274"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Use &lt;code&gt;Control + D&lt;/code&gt; to end the current session.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;To restart later, simply rerun &lt;code&gt;ollama run Llama3.2&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Step 4: Optional GUI/Web Interface Support&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Using a terminal for daily interactions can be inconvenient. For a more user-friendly experience, Ollama’s GitHub repository lists multiple community-driven GUI and web-based tools (e.g., Ollama WebUI, LM Studio). You can explore these options independently, as each project provides its own setup instructions. Here’s a brief overview:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;GUI Tools&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ollama Desktop : Native app for macOS/Windows (supports model management and chat).&lt;/li&gt;
&lt;li&gt;LM Studio : Cross-platform interface with model library integration.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;Web Interfaces&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ollama WebUI : Browser-based chat interface (run locally).&lt;/li&gt;
&lt;li&gt;OpenWebUI : Customizable web dashboard for model interaction.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;For details, visit the &lt;a href="https://github.com/ollama/ollama?spm=2b75ac3d.2ef5001f.0.0.3d4d5171nJ9MY3#community-projects" rel="noopener noreferrer"&gt;Ollama GitHub README&lt;/a&gt; .&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Step 5: Debug the AI API&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Ollama exposes a local API by default. Refer to the &lt;a href="https://github.com/ollama/ollama/blob/main/docs/api.md" rel="noopener noreferrer"&gt;Ollama API Docs&lt;/a&gt; for details.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F12iex9aelrh6szv7ci4b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F12iex9aelrh6szv7ci4b.png" alt="Run AI Models Locally with Ollama: A Step-by-Step Guide to Installation, Deployment &amp;amp; API Integration" width="800" height="348"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Below, we will use &lt;a href="https://apidog.com/?utm_source=dev_to&amp;amp;utm_medium=Auden&amp;amp;utm_content=ollama" rel="noopener noreferrer"&gt;Apidog&lt;/a&gt; to debug the local API generated by Ollama. If you haven't installed &lt;a href="https://apidog.com/?utm_source=dev_to&amp;amp;utm_medium=Auden&amp;amp;utm_content=ollama" rel="noopener noreferrer"&gt;Apidog&lt;/a&gt; yet, you can download and install it—it's an excellent tool for API debugging, API documentation, API mocking, and automated API testing.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Create a New Request&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Copy this cURL command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;--location&lt;/span&gt; &lt;span class="nt"&gt;--request&lt;/span&gt; POST &lt;span class="s1"&gt;'http://localhost:11434/api/generate'&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="nt"&gt;--header&lt;/span&gt; &lt;span class="s1"&gt;'Content-Type: application/json'&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
&lt;span class="nt"&gt;--data-raw&lt;/span&gt; &lt;span class="s1"&gt;'{
    "model": "llama3.2",
    "prompt": "Why is the sky blue?",
    "stream": false
}'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In &lt;a href="https://apidog.com/?utm_source=dev_to&amp;amp;utm_medium=Auden&amp;amp;utm_content=ollama" rel="noopener noreferrer"&gt;Apidog&lt;/a&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Create a new HTTP project.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Paste the cURL into the request builder.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Save the configuration.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzzbvkkdynisjexl5oxpl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzzbvkkdynisjexl5oxpl.png" alt="Run AI Models Locally with Ollama: A Step-by-Step Guide to Installation, Deployment &amp;amp; API Integration" width="800" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Send the Request&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Navigate to the &lt;strong&gt;"Run"&lt;/strong&gt; tab and click "Send". The AI response will appear.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgp8ucje74x3esmnmr8ft.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgp8ucje74x3esmnmr8ft.png" alt="Run AI Models Locally with Ollama: A Step-by-Step Guide to Installation, Deployment &amp;amp; API Integration" width="800" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For streaming output, set &lt;code&gt;"stream": true&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4drxa6190styshm9fdlu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4drxa6190styshm9fdlu.png" alt="Run AI Models Locally with Ollama: A Step-by-Step Guide to Installation, Deployment &amp;amp; API Integration" width="800" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Conclusion&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;This guide covered:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Ollama installation&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Model deployment&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Command-line interaction&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;API testing with &lt;a href="https://apidog.com/?utm_source=dev_to&amp;amp;utm_medium=Auden&amp;amp;utm_content=ollama" rel="noopener noreferrer"&gt;Apidog&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You now have a complete workflow for local AI model experimentation and application development.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;References&lt;/strong&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/ollama/ollama" rel="noopener noreferrer"&gt;Ollama GitHub Repository&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://docs.apidog.com/" rel="noopener noreferrer"&gt;Apidog Documentation&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>api</category>
      <category>tutorial</category>
      <category>learning</category>
      <category>ai</category>
    </item>
    <item>
      <title>No Database? No Problem! Build Local Mock APIs with JSON Server</title>
      <dc:creator>Auden</dc:creator>
      <pubDate>Thu, 27 Feb 2025 09:58:17 +0000</pubDate>
      <link>https://forem.com/auden/no-database-no-problem-build-local-mock-apis-with-json-server-5gci</link>
      <guid>https://forem.com/auden/no-database-no-problem-build-local-mock-apis-with-json-server-5gci</guid>
      <description>&lt;p&gt;A Mock service simulates backend API data, enabling frontend developers to rapidly debug pages or test various data scenarios. This article demonstrates how to build a local Mock service &lt;strong&gt;in three simple steps&lt;/strong&gt; using &lt;strong&gt;JSON Server&lt;/strong&gt;, requiring only a JSON file and no database setup!&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Table of Contents&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Prerequisites&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Install Node.js&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Install JSON Server&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. Building the Mock Service&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Step 1: Create a Mock Data File (&lt;code&gt;db.json&lt;/code&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Step 2: Start the JSON Server&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Step 3: Verify API Endpoints&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. Debugging and Extensions&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Auto-Update Data&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Debugging with Apidog&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4. FAQ&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Port Conflicts&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Data Not Updating&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;5. Conclusion&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  I. Prerequisites
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Install Node.js
&lt;/h3&gt;

&lt;p&gt;Ensure Node.js is installed (download from &lt;a href="https://nodejs.org" rel="noopener noreferrer"&gt;https://nodejs.org&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Verify by running in terminal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;node &lt;span class="nt"&gt;-v&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; npm &lt;span class="nt"&gt;-v&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If version numbers are displayed, installation is complete.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqaau18jz8raatjlbmfl5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqaau18jz8raatjlbmfl5.png" alt="How to Set Up a Local Mock Service" width="800" height="413"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Install JSON Server
&lt;/h3&gt;

&lt;p&gt;Open the terminal in your IDE (e.g., VS Code) and execute:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; json-server
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If permission errors occur, try:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; json-server
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  II. Building the Mock Service in 3 Steps
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Step 1: Create a Mock Data File
&lt;/h3&gt;

&lt;p&gt;Create a folder (e.g., &lt;code&gt;mock-demo&lt;/code&gt;) and add a &lt;code&gt;db.json&lt;/code&gt; file with the following content:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"users"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"John Doe"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"age"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Jane Smith"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"age"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"posts"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"title"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"First Post"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"author"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"John Doe"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;📝 &lt;strong&gt;Explanation:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;users&lt;/code&gt; and &lt;code&gt;posts&lt;/code&gt; represent two API endpoints.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Each endpoint returns an array of data; fields can be freely added/removed.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffo8c378bx5sw41h3ikk6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffo8c378bx5sw41h3ikk6.png" alt="How to Set Up a Local Mock Service" width="800" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Start the Service
&lt;/h3&gt;

&lt;p&gt;Navigate to the project folder in terminal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ~/Desktop/mock-demo
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Start the server with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;json-server &lt;span class="nt"&gt;--watch&lt;/span&gt; db.json &lt;span class="nt"&gt;--port&lt;/span&gt; 3000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;🔍 &lt;strong&gt;Parameter Details:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;--watch&lt;/code&gt;: Auto-reloads when &lt;code&gt;db.json&lt;/code&gt; changes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;--port 3000&lt;/code&gt;: Runs the service on port 3000 (customizable).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Successful startup will display:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Endpoints:
http://localhost:3000/users
http://localhost:3000/posts
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm6ba0nez3kceqqkhr4hw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm6ba0nez3kceqqkhr4hw.png" alt="How to Set Up a Local Mock Service" width="800" height="221"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3: Verify Endpoints
&lt;/h3&gt;

&lt;p&gt;Open a browser and visit:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;User list: &lt;a href="http://localhost:3000/users" rel="noopener noreferrer"&gt;http://localhost:3000/users&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Post list: &lt;a href="http://localhost:3000/posts" rel="noopener noreferrer"&gt;http://localhost:3000/posts&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpvsdvedlv1z4ccw6cvlk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpvsdvedlv1z4ccw6cvlk.png" alt="How to Set Up a Local Mock Service" width="800" height="261"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  III. Debugging and Extensions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Auto-Update Data
&lt;/h3&gt;

&lt;p&gt;Edit &lt;code&gt;db.json&lt;/code&gt; and save—the changes will reflect immediately upon refreshing the page.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Debugging with Apidog
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev_to&amp;amp;utm_medium=Auden&amp;amp;utm_content=mock-server" rel="noopener noreferrer"&gt;&lt;strong&gt;Apidog&lt;/strong&gt;&lt;/a&gt; is a modern API collaboration tool supporting debugging, mocking, and documentation. Follow these steps to test your Mock service:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzgbpfimtvjlr6c8ez4ju.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzgbpfimtvjlr6c8ez4ju.png" alt="How to Set Up a Local Mock Service" width="800" height="571"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 1: Install Apidog
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Download&lt;/strong&gt;: Install the desktop app from &lt;a href="https://apidog.com/?utm_source=dev_to&amp;amp;utm_medium=Auden&amp;amp;utm_content=mock-server" rel="noopener noreferrer"&gt;Apidog Official Site&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Sign Up&lt;/strong&gt;: Use email for quick registration.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  Step 2: Create a Debugging Project
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;New Project&lt;/strong&gt;: Click "Create Project" → Name it (e.g., "Mock Service Test") → Select "Blank Template".&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Add Request&lt;/strong&gt;: Go to "APIs" → "New Endpoint" → Name it (e.g., "Fetch User List").&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9e092hh1p4ofx1k8tyxm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9e092hh1p4ofx1k8tyxm.png" alt="How to Set Up a Local Mock Service" width="800" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 3: Send a GET Request
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Configure&lt;/strong&gt;:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Method: &lt;code&gt;GET&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;URL: &lt;code&gt;http://localhost:3000/users&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Send&lt;/strong&gt;: Click "Send" to view the response:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"John Doe"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"age"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Jane Smith"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"age"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fma7l9nqe3d6hp6so3srf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fma7l9nqe3d6hp6so3srf.png" alt="How to Set Up a Local Mock Service" width="800" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Error messages can be ignored.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  Step 4: Send a POST Request (Add Data)
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Configure&lt;/strong&gt;:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Method: &lt;code&gt;POST&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;URL: &lt;code&gt;http://localhost:3000/users&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Body (JSON):&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Alice Johnson"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"age"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;28&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmyt1xmqqkx1on19s2sj3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmyt1xmqqkx1on19s2sj3.png" alt="How to Set Up a Local Mock Service" width="800" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Response&lt;/strong&gt;:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"a69a"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Alice Johnson"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"age"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;28&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fni9jtdyci77q55gy9wkv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fni9jtdyci77q55gy9wkv.png" alt="How to Set Up a Local Mock Service" width="800" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 5: Verify Data Persistence
&lt;/h4&gt;

&lt;p&gt;Resend the GET request to see the new entry:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"John Doe"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"age"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Jane Smith"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"age"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"a69a"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Alice Johnson"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"age"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;28&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbc8ftd7vssre1cp4imwl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbc8ftd7vssre1cp4imwl.png" alt="How to Set Up a Local Mock Service" width="800" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 6: Advanced Operations (Optional)
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;PUT&lt;/strong&gt;: Update data (e.g., &lt;code&gt;http://localhost:3000/users/2&lt;/code&gt;).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;DELETE&lt;/strong&gt;: Remove data (e.g., &lt;code&gt;http://localhost:3000/users/2&lt;/code&gt;).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Why Choose Apidog?
&lt;/h3&gt;

&lt;p&gt;✅ &lt;strong&gt;No Manual Configuration&lt;/strong&gt;: Auto-saves request history.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Visual Data Display&lt;/strong&gt;: Auto-formats JSON responses.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Team Collaboration&lt;/strong&gt;: Share documentation with one click.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Enhanced Mocking&lt;/strong&gt;: Generate dynamic data (e.g., random names, timestamps).&lt;/p&gt;

&lt;p&gt;With &lt;a href="https://apidog.com/?utm_source=dev_to&amp;amp;utm_medium=Auden&amp;amp;utm_content=mock-server" rel="noopener noreferrer"&gt;&lt;strong&gt;Apidog&lt;/strong&gt;&lt;/a&gt;, you can manage all APIs as effortlessly as building blocks and auto-generate documentation with a single click, doubling frontend-backend collaboration efficiency! 🚀&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffke593x4131sfqbklw3y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffke593x4131sfqbklw3y.png" alt="How to Set Up a Local Mock Service" width="800" height="505"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Q1: Port already in use?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Change the port via &lt;code&gt;--port 4000&lt;/code&gt; in the startup command.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Q2: Data not updating?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Validate &lt;code&gt;db.json&lt;/code&gt; syntax using &lt;a href="https://jsonlint.com" rel="noopener noreferrer"&gt;JSONLint&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;With JSON Server, you can create a fully functional Mock service using just a JSON file, supporting RESTful CRUD operations. It’s an ideal zero-cost solution for frontend debugging and demos. You now have a local API service—start integrating it into your projects today! 🚀&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/auden/how-to-run-ai-models-locally-with-ollama-deploy-llms-and-debug-apis-in-minutes-59pc"&gt;How to Run AI Models Locally with Ollama: Deploy LLMs and Debug APIs in Minutes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>programming</category>
      <category>tutorial</category>
      <category>frontend</category>
      <category>learning</category>
    </item>
  </channel>
</rss>
