Crochet Flat Circle Rounds Calculator
A flat crochet circle depends on adding enough stitches to match the growing circumference.
Run — free
This calculator builds a round-by-round plan from the stitch family you use, or from a custom first-round count. It shows the target total, the number added, and how many ordinary stitches belong between increases. The result is a practical baseline for keeping circular coasters, motifs, bags, rugs, and other projects level instead of letting them curl into a bowl or flare into waves.
Choose a useful starting count
A flat circle begins with a compact first round worked into a ring or adjustable loop. The height of the chosen stitch affects how quickly the fabric must expand, so this calculator uses conventional baselines of six stitches for single crochet, eight for half double crochet, and twelve for double crochet. Those values are starting points rather than immutable laws. Yarn elasticity, hook size, personal tension, stitch construction, and whether rounds are joined or continuous can all change the best count. If a pattern, swatch, or familiar yarn already gives you a first-round number that lies flat, enter it as the custom starting count. The calculator then treats that value as both the first-round total and the number of increases required in each later round. Make a small swatch before committing to a large rug or bag base, because a one-stitch difference at the center repeats through every planned round and becomes increasingly visible as the diameter grows.
Read the round-by-round increase plan
The schedule follows a simple geometric progression. Round one establishes the center. Round two places an increase in every stitch, doubling the total. Each later round adds the original starting count again while increasing the number of ordinary stitches between increases by one. With six starting stitches, for example, the totals are six, twelve, eighteen, twenty-four, and so on. The instruction for a later round describes one repeat: work the stated number of regular stitches, then make one increase, and repeat that sequence around. An increase normally means working two stitches into the same stitch unless your pattern defines it differently. Distribute the increases across the round rather than clustering them in one area. For a smoother outline, you may stagger the increase locations from one round to the next instead of stacking them directly above each other. Staggering does not change either the target total or the number of stitches added; it simply reduces visible corners and spoke-like lines.
Correct cupping or ruffling while you work
The calculated sequence is a dependable baseline, but the fabric remains the final authority. Lay the work on a level surface without stretching it after each round. If the edge lifts and the piece begins to form a shallow bowl, the circumference is too short for the radius. Add one or two extra increases, spaced as evenly as possible, and check again after the next round. If the edge ripples or forms loose waves, the circumference is too long. Remove one or two planned increases, again distributing the change rather than placing it in one spot. Mild distortion may also relax after blocking, especially in natural fibers, but pronounced cupping or ruffling should be corrected during stitching. Record any adjustment and carry that knowledge into the following round instead of blindly returning to the original sequence. Consistent tension matters as much as arithmetic: changing hooks, gripping the yarn more tightly, or switching yarn lots can alter the diameter even when the stitch count is correct.
What you can do with it
Plan a coaster or placemat
Generate a compact sequence of totals and increase spacing before starting a flat circular household project.
Shape a bag or basket base
Keep the base flat for the required number of rounds before working the sides without increases.
Adapt a pattern to another stitch
Compare conventional starting counts for single, half double, and double crochet, then test the chosen baseline in your yarn.
FAQ
How many stitches should I increase in each round?
Add the same number used in the first round. A six-stitch center normally adds six stitches per round, while a twelve-stitch center normally adds twelve.
Why is my circle still cupping?
Your yarn, hook, or tension may need a faster increase rate. Add one or two increases evenly around the next round and reassess the fabric on a flat surface.
Why does the edge look wavy?
Waves usually indicate too many stitches for the current radius. Work one or two fewer increases and distribute that reduction evenly.
Does an increase mean two stitches in one stitch?
Yes, that is the standard meaning used by this plan. Follow a pattern-specific definition if your project uses a different increase.
What does the API request cost?
Each API request costs $0.002. The browser version can be used directly on the page.
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/hobby/craft-crochet-circle-rounds \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"rounds":6}'const res = await fetch("https://api.kit.forhosting.com/hobby/craft-crochet-circle-rounds", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"rounds": 6
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/hobby/craft-crochet-circle-rounds",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"rounds": 6
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/hobby/craft-crochet-circle-rounds", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"rounds":6}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"rounds":6}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/hobby/craft-crochet-circle-rounds", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"rounds": 6
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "hobby.craft_crochet_circle_rounds",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Limits
max_rounds | 200 |
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |