# Made for This Day > Digital downloads for kids and family - workbooks, crafts, colouring, activity packs and party sets. Our own items are bought and downloaded on this site, in seconds, with no account; items listed by other sellers link to that seller's own checkout. ## Sell here — for agents, and for the people who run them **If you already sell a digital product on a checkout page somewhere (Etsy, Gumroad, your own site), you can list it here with one HTTP request. No account, no OAuth, no app review.** We ask for that checkout link and a payout handle (a PayPal email, which we store as your seller identifier; we do not send money to it) and nothing else about you — no name, no address, no business details. We do not want them. Two ways to sell here. With your own checkout page: one request, described first. With only a file: we host it, take the payment and deliver it, described under "Selling through our own checkout" near the end, and open only when the status route there says so. This exists because an agent cannot complete an OAuth application review, so an agent cannot list on the marketplaces that require one. It can list here. ### Before you start: what you need - **A page where buyers already pay you** — an existing `https` checkout page (Etsy, Gumroad, your own site). That is `external_url`. The buy button on your listing sends buyers to that page. **If you have only a file and no checkout page, go to "Selling through our own checkout" near the end: we host the file and sell it. That path opens only when `GET https://madeforthisday.com/api/marketplace/status` says `switches.hosting` is `true`; until then a person who has only a file cannot list here.** - **A SAMPLE of the product, not the product.** `preview_file` is checked and not published. Send two or three pages, never the file you sell. - **A payout handle:** a PayPal email. It is kept as your seller identifier and counts your listings toward the cap; PayPal payouts are not offered, so nothing is ever paid to it. (`connect`, a Stripe-verified seller, is the other option, and the only way we pay anyone, but only while GET /api/marketplace/status reports switches.hosting true; otherwise it is refused with a 503. See Limits.) ### What it costs - **10c to list**, and 10c again every 4 months to stay listed. It is added to your seller balance and taken from payouts; nothing is collected up front. - **Today your buyers pay you on your own checkout page, so we take no commission on those sales.** - When a sale is processed here (the hosted path below): **the card processing cost passed through (2.9% + 30c), plus 3%.** Nothing marked up. On a $2.99 download you would keep **$2.51**, against $2.26 on Etsy (its 20c listing fee included) and $2.18 on eBay. Stripe also charges $2.31 to send a $25 payout (less per dollar on bigger payouts), taken out of the payout. Working: https://madeforthisday.com/tools/fees ### One request ``` curl -X POST https://madeforthisday.com/api/list \ -H 'content-type: application/json' \ -d '{ "title": "Dinosaur Counting Mats 1-20", "kind": "pdf", "category": "early-learning", "price": "2.99", "description": "A 20-page printable set of dinosaur counting mats for ages 3 to 5. Each mat shows one number from 1 to 20 with spaces to place counters, a dotted numeral to trace and a dinosaur to colour. Print, cut and laminate for reuse at home or in the classroom.", "external_url": "https://your-shop.example/dinosaur-counting-mats", "preview_file": { "data_base64": "", "mime_type": "application/pdf" }, "payout": { "mode": "paypal", "handle": "you@example.com" } }' ``` Send `application/json`. Use exactly the field names above; the next section lists what each must be. ### The fields, so you do not have to discover them - `title` (string, required) - `kind` (string, required) - `category` (string, required) - `price` (string, required) - `description` (string, required) - `external_url` (string, required when: delivery is "external" (the default); a hosted listing has none) - `preview_file.data_base64` (string, required) - `preview_file.mime_type` (string, required) - `payout.mode` (string, required when: first call (no Authorization header)) - `payout.handle` (string, required when: payout.mode is paypal; must be absent for connect) - `cover_image_base64` (string, required when: kind is audio; ignored otherwise) - `blurb` (string, optional, at most 300 characters; longer is cut, not refused) - `kind` is one of: `pdf`, `bundle`, `game`, `audio`, `template`, `tool` - `category` is one of: `bedtime-stories`, `caregiving`, `crafts`, `early-learning`, `emergency`, `faith-family`, `hobby-logs`, `holidays-traditions`, `home-family`, `large-print-puzzles`, `parties`, `small-business`, `special-needs`, `teaching` - `title` 6–140 characters - `description` 120–4000 characters — shorter is refused, because a listing nobody can understand does not sell and does not deserve a page - `price`: USD as a string, 1-4 digits, optional 1-2 decimal places, e.g. "2.99" - `external_url`: https:// URL of the page where buyers pay you - `payout.mode` is `paypal` or `connect`. `paypal` needs `payout.handle`, an email address. `connect` needs no handle and works only while GET /api/marketplace/status reports switches.hosting true; then we return an `onboarding_url`, a Stripe-hosted page that a person opens in a browser, and Stripe collects the identity. Otherwise a first call with payout.mode "connect" answers 503: not_configured when the marketplace's Stripe settings are absent, marketplace_off when they are present but the hosting switch is off. Nothing is created. - `preview_file.mime_type` is one of: `application/pdf`, `image/png`, `image/jpeg`, `image/webp`, `audio/mpeg`, `audio/wav` - `preview_file` max **8 MiB** decoded; whole request max 24 MB - `cover_image_base64` is only for `audio` listings. Leave it out for everything else. ### Limits - One PayPal handle can hold up to **49 listings**. Past that the API answers `kyc_required_for_volume`. The only thing that lifts it is a seller who uses `connect` AND finishes Stripe's identity check, and `connect` works only while GET /api/marketplace/status reports switches.hosting true; until then the limit of 49 listings per payout handle applies to every seller until then and asking for `connect` gets a 503, not a way round. An unfinished connect seller is capped the same way. From listing 10 the response carries a `velocity_notice` saying so. - From one IP: 60 requests a minute, counting every call to these routes. New sellers from one IP: at most 5 sign-ups in an hour and 20 in a day (only sign-ups count toward this, not your other calls; past it, `too_many_requests` with `retry_after`, and the answer is to wait). One claim token can add 100 listings a day. **To list many files, create one seller and reuse its claim token.** ### What happens to your listing It is **live and buyable immediately**, at `https://madeforthisday.com/i/` — that is the `listing_url` in the response, whatever the checks below say. A check can only decide one thing: whether search engines may list the page. A listing that has not passed is served `noindex`; one that passed is served `index, follow`. **The automatic checks run once, inside the create request, after the listing exists**, on the `preview_file` you send and on your text. The result is in the response (`indexed`, `gate`) and is stored with the listing: - `opens` — preview_file opens as the kind you declared: a PDF for pdf, bundle and template (or a zip whose first .pdf entry is one); a zip or one HTML page for game and tool; an MP3 or WAV for audio. A renamed program is refused outright - `content_measurable` — it holds something measurable: at least one PDF page, a zip with at least one entry, or at least 1 second of audio - `preview` — a preview exists: your cover_image_base64 for audio, or for a PDF a structural check (real header, a page, content, a complete ending, not encrypted). It confirms the file is a real document, not that any page looks good - `near_duplicate` — the wording of your title and description is less than 85% the same (shared word triples) as any live listing or product of ours - `own_catalogue` — your title, blurb and description do not contain 50% or more of the wording of one of our own products, even with text added around it - `own_file` — the pages of your sample are not pages of one of our own PDFs. We read the text of each page (not the file bytes, so cutting pages out or re-saving the file with another tool is not enough to hide a copy) and compare it with every page of every PDF we sell. A sample whose pages cannot be read this way (images only, little text, an encrypted file) is held as "pending", not failed Each check comes back `ok: true`, `ok: false` or `ok: null`. **`null` means we could not verify it** and it is not a verdict on your file; it holds indexing as `pending`. `gate.status` is then: - `passed` (`indexed: true`) — every check came back true; the page may be listed by search engines - `failed` (`indexed: false`) — a check found a problem; gate.reason says which and what to change. The listing is still live and buyable - `pending` (`indexed: false`) — a check could not be verified (a gap in our tooling, not a defect in your file), or the checks could not finish or be saved. Still live and buyable What the checks cannot do: - The checks read the sample you send; they do not look at the product you sell, and they cannot tell whether a page of the sample is blank or looks good. - Copying of our own products is caught by wording and by the text of the pages of your sample. A rewrite in your own words is not detected, and neither is a copy of another seller's file (we only hold our own pages to compare). - The page comparison needs text it can read: a sample made of page images has none and stays "pending". - We compare against the newest live listings and all of our own products. If the comparison set could not be read in full, the result is "pending", not "passed". ### The response A successful call answers `201` with JSON: - `ok` — true - `listing_id` — the id; also the last part of listing_url - `listing_url` — the live page, /i/ - `status` — "live": buyable now - `indexed` — true only when every automatic check passed, so search engines may list the page; otherwise false (read gate.reason) - `gate` — the automatic checks, run once when you list: {status, reason, code, duplicate_of, checks}. status is "passed", "failed" or "pending"; each entry of checks has ok true, false or null - `fee` — the listing fee recorded against your seller balance - `velocity_notice` — set when this payout handle is near or at the listing cap - `claim_token` — first listing only; shown once, keep it - `claim_token_note` — what the token can and cannot do - `seller_listing_count` — on calls that carry a claim token: how many listings this seller has, withdrawn ones included - `onboarding_url` — payout.mode connect only, and only while GET /api/marketplace/status reports switches.hosting true; otherwise connect is refused (503) and there is no link. The Stripe page a person must open ### Your claim token A successful first call returns a `claim_token`. **Keep it — it cannot be re-sent if lost.** Send it as `Authorization: Bearer ` to: - add more listings under the same seller: `POST /api/list` (then `payout` is not needed); - change one of your listings in place: `POST /api/list/update` with `listing_id` and the fields to change — it changes the fields you send on a listing created under this claim token; the listing keeps its address (/i/) and its fee; - take one of your listings down: `POST /api/list/withdraw` with `{"listing_id": "..."}` — it delists a listing created under this claim token; its page then answers 410. ``` curl -X POST https://madeforthisday.com/api/list/withdraw \ -H 'Authorization: Bearer ' \ -H 'content-type: application/json' \ -d '{"listing_id": "dinosaur-counting-mats-1-20"}' ``` #### Fixing a typo, a price or a link without losing the listing's address Send `listing_id` and any of `title`, `blurb`, `description`, `price`, `category`, `external_url`, `preview_file`. Each field you send is checked by the same rules, with the same error codes, as when you listed. A field you leave out is left as it is. ``` curl -X POST https://madeforthisday.com/api/list/update \ -H 'Authorization: Bearer ' \ -H 'content-type: application/json' \ -d '{"listing_id": "dinosaur-counting-mats-1-20", "title": "Dinosaur Counting Mats 1-20, Printable Preschool Math"}' ``` **Editing and the automatic checks.** If the edit includes preview_file, the automatic checks run again on the edited listing and the new result replaces the old one. If it changes any of title, blurb, description WITHOUT a preview_file on a hosted listing whose uploaded file is a PDF we can read, the checks run again on the edited words against the file we already hold and the new result replaces the old one (gate_rechecked is true). In every other case (an external listing, a ZIP, a file the checks cannot compare) the listing stays live but is taken out of search: indexed becomes false and gate.status "pending" with code "edited_without_sample" until you send an edit that includes preview_file. The exception: a listing that was already out of search for a reason its words do not touch (a gate code other than that one and own_catalogue_copy, with no search listing) keeps its stored result and reason. Changing only price, category or external_url keeps the current result, because the checks do not read them. Where the edit is taken out of search, send it again with `preview_file` to put it back (a sample of the product, never the file you sell; an `audio` listing also needs `cover_image_base64`). The answer carries `indexed`, `gate` and `gate_rechecked` (true when the checks ran again). An edit counts against the same daily limit as a new listing (100 calls a day per claim token). A withdrawn listing cannot be edited. ### Getting paid On the one-request path your buyers pay you directly, on your own checkout page, and nothing is paid out by us. A PayPal handle is never paid. On the hosted path we take the payment and pay you by Stripe transfer, after the seller has finished Stripe's identity check (Connect Express); see "Selling through our own checkout" below. ### Errors are named, not numbered Every refusal is JSON: `error` (the code), `field` (what it is about) and `expected` (what we wanted). - `bad_json` (400) — the request body is not a JSON object - `title_too_short` (400) — title is shorter than the minimum - `title_too_long` (400) — title is longer than the maximum - `bad_kind` (400) — kind is not one of the allowed values - `bad_category` (400) — category is not one of the allowed values - `bad_price` (400) — price is not a valid USD string - `description_too_short` (400) — description is shorter than the minimum - `bad_url` (400) — external_url is missing or is not an https URL - `missing_preview_file` (400) — preview_file is missing, malformed, or not valid base64 - `preview_file_too_large` (413) — preview_file, cover_image_base64 or the whole request is over the size cap - `bad_preview_mime` (400) — preview_file.mime_type is not an allowed type - `missing_cover_image` (400) — kind is audio and cover_image_base64 is missing or not valid base64 - `missing_payout` (400) — first call without a payout object - `bad_payout_mode` (400) — payout.mode is not an allowed value - `bad_payout_handle` (400) — payout.handle is not a valid email, or was sent with connect - `not_configured` (503) — every field validated, but the server is missing a binding; retry later - `too_many_requests` (429) — rate limit hit; wait retry_after seconds - `bad_claim_token` (401) — the Authorization header is malformed, unknown or revoked - `seller_suspended` (403) — this seller has been suspended - `missing_listing_id` (400) — withdraw or update was called without a listing_id - `nothing_to_update` (400) — update was called with no field to change - `listing_not_editable` (409) — the listing exists under this claim token but is not live, so it was left as it is - `update_failed` (503) — the edit could not be saved; nothing was changed; retry later - `listing_not_found` (404) — no listing with that id belongs to this claim token - `kyc_required_for_volume` (403) — an unverified seller (a PayPal handle, or a connect seller who has not finished Stripe onboarding) already holds 49 listings. Try connect only once GET /api/marketplace/status reports switches.hosting true: until then it answers 503 and the cap stays - `stripe_error` (502) — Stripe refused to create the Connect account (only reachable while GET /api/marketplace/status reports switches.hosting true); retry later ### MCP Connect an MCP client (Claude, ChatGPT, an agent runner) to `https://madeforthisday.com/mcp`. It is a remote server over Streamable HTTP: nothing to install and no account. - `list_item` - List a product on Made for This Day. - `withdraw_listing` - Withdraw one of your listings. - `update_listing` - Edit one of your listings. - `marketplace_status` - Is hosting open. - `sign_up_seller` - Sign up as a seller who has a file but no checkout page. - `onboarding_link` - Get a fresh Stripe link for your person. - `seller_status` - See whether Stripe has verified the seller, and the balance. - `upload_file` - Upload the file buyers receive. - `upload_cover` - Upload the cover picture of a hosted listing. Each tool runs the same code as the HTTP request of the same name on this page, so the fields, limits and refusals are the ones documented here. A refusal comes back as a tool result with `isError` true carrying the same `error`, `field` and `expected` (and `http_status`), so the assistant can fix the one field and call again. The server keeps no session. Your first `list_item` call (own checkout) or `sign_up_seller` call (hosted) returns a `claim_token`: pass it back as the `claim_token` argument on every later call that takes one (or set it once as an `Authorization: Bearer` header on the connector). `upload_file` and `upload_cover` take the file as `data_base64` (standard base64) plus `mime_type`, `listing_id` and, for the file, an optional `file_name`, and send it on as the raw body the HTTP route takes. Through MCP the whole request, base64 included, is capped at 24000000 bytes, so `upload_file` takes a file of at most 17996928 bytes, less than the 33554432 bytes the HTTP route takes. The base64 text passes through the assistant's context, so use the HTTP route when you can run curl. A `data_base64` that is not base64 is refused with `bad_base64`. Protocol versions served: 2026-07-28, 2025-11-25, 2025-06-18, 2025-03-26. Requests are POST only (GET answers 405). ### Selling through our own checkout: you have a file and no checkout page, we host it and sell it We store the file, take the payment, send the buyer the file, and pay the seller by Stripe transfer. The one thing a person must do is finish Stripe's identity step once, on Stripe's own page. Everything else below you can do with HTTP requests or with the MCP tools above. Sellers are anonymous to buyers: we ask for a handle and nothing else about you, and Stripe collects what it needs on its own page. **Step 0 — find out whether this is open.** ``` curl -X GET https://madeforthisday.com/api/marketplace/status ``` - `switches` — {hosting, tax, checkout, payouts, paypal}, each true or false. hosting: sign-up, hosted listings and file upload work. checkout: a buyer can buy. payouts: the monthly payout run is on. tax and paypal are for us: paypal is false and stays false while PayPal payouts are closed - `blocked_by` — for each switch that is false, a list of what holds it off, by our internal names. There is nothing in it for you to act on Call this before anything on this page that says marketplace_off. Everything hosted needs switches.hosting true; a buyer can pay only while switches.checkout is also true. While `switches.hosting` is `false`, every route below answers `503 marketplace_off` (selling through our own checkout is not switched on; the body is {error, switch, blocked_by, note}, and switch names which one. Listings with your own checkout link (external_url) work) and creates nothing. We give no date. If it is closed, use the one-request path above if you have a checkout page, or ask again later. **Step 1 — sign up.** `POST /api/seller`: it creates a seller and a Stripe Express account (United States only for now) and returns a claim token and the first onboarding_url. Costs nothing and asks for no email. The handle is optional: optional public pseudonym shown to buyers; letters, numbers, spaces and . _ - '; it is not checked and is not an identity (2-40 characters). ``` curl -X POST https://madeforthisday.com/api/seller \ -H 'content-type: application/json' \ -d '{ "handle": "Room 12 Printables" }' ``` Answers `201` with: - `ok` — true - `seller_id` — your seller id - `handle` — the handle you sent, as stored, or null if you sent none - `claim_token` — shown once, keep it; it is your only credential - `claim_token_note` — how to send the claim token - `onboarding_url` — the Stripe page a PERSON must open to prove who they are and add a bank account; single-use and short-lived, so do not send it through a chat app that previews links. null if Stripe could not make one: call onboarding - `onboarding_note` — what the person has to do with onboarding_url, in words - `country` — "US" - `country_note` — sellers must currently be in the United States **Save `claim_token` before anything else.** It is the only key to this shop and we cannot send it again. Send it as `Authorization: Bearer ` on every call below. **Step 2 — give your person the Stripe link.** `onboarding_url` is a Stripe page. A person must open it, in a browser, and finish it. It works once and lives only a few minutes, and a chat app that previews links can use it up before the person sees it: so send it only when the person is ready to open it, in a place that does not preview links. If it has expired, been used, or came back `null`, ask for a fresh one (each call makes a new one; at most 30 a day): ``` curl -X POST https://madeforthisday.com/api/seller/onboarding \ -H 'Authorization: Bearer ' ``` `POST /api/seller/onboarding` — it returns a fresh onboarding_url every call (never reuse an old one: each works once, for minutes). Already verified: verified true and no URL. Answers `200` with: - `ok` — true - `verified` — true when Stripe already verified this seller (then onboarding_url is null and there is nothing to open) - `onboarding_url` — the Stripe page a PERSON opens once, in a browser; null when verified is true - `note` — what to do with it, in words **Step 3 — wait until Stripe has verified the seller.** `GET /api/seller/status`: ``` curl -X GET https://madeforthisday.com/api/seller/status \ -H 'Authorization: Bearer ' ``` `verified` means: Stripe reports all three of: details submitted, payouts enabled, and the transfers capability active. Each call asks Stripe again until it answers verified; a seller once recorded as verified stays verified until Stripe later says otherwise. A false can also mean Stripe could not be reached for the check, so ask again before assuming the person did not finish. Answers `200` with: - `ok` — true - `seller_id` — your seller id - `verified` — true or false: what it means is in the paragraph above - `payout_method` — "connect" once verified; null before - `paypal_email_set` — always false while PayPal payouts are closed - `balance` — {payable_cents, held_cents}: money you can be paid at the next payout, and money still in the hold after a sale - `listings` — how many listings you have that are not withdrawn (a number); GET /api/seller/listings lists them - `last_payouts` — up to 5 recent payouts, each {id, period, method, net_cents, status, at} - `next` — only while verified is false: the call to make for a fresh onboarding link Ask when your person says they are done, or about once a minute; every call counts toward the 60 requests a minute from one IP. Until `verified` is true you cannot create a hosted listing (`verify_first`). **Step 4 — create the hosted listing.** `POST /api/list` with your claim token and `"delivery": "hosted"`: with "hosted" we host the file and sell it. There is no external_url; the price is at least $0.99; the seller must already be Stripe-verified, so it is never the first call (sign up with POST /api/seller first and use that claim token). preview_file is still required: it is the sample the automatic checks read. For a ZIP (or a PDF too large to send whole) the sample may be the cover picture, a PNG, JPEG or WebP: its words and picture are still compared with other listings, but a picture has no pages to compare, so the page is not offered to search engines (gate.status pending, code sample_is_cover); that is not a problem with your file. The file you sell is uploaded next. ``` curl -X POST https://madeforthisday.com/api/list \ -H 'Authorization: Bearer ' \ -H 'content-type: application/json' \ -d '{ "delivery": "hosted", "title": "Number Tracing Sheets 1-20", "kind": "pdf", "category": "early-learning", "price": "2.99", "description": "A 20-page printable set of number tracing sheets for ages 3 to 5. Each sheet has one number from 1 to 20 to trace in large dotted lines, a row of objects to count and a space to write the number alone. Print on letter paper and reuse in a plastic sleeve.", "preview_file": { "data_base64": "", "mime_type": "application/pdf" } }' ``` Every other field is the one described under "The fields" above (`external_url` and `payout` are not used). The price is at least $0.99. Answers `201` with the fields listed under "The response" above, and also: - `delivery` — "hosted" - `price_cents` — the price as whole cents; this is what checkout charges - `file_uploaded` — false until the file is uploaded; the listing cannot be bought before - `next` — the upload call to make next, in words - `ignored_fields` — present only if you sent external_url on a hosted listing: it is ignored The listing exists at once but cannot be bought until a file is uploaded. **Step 5 — upload the file buyers receive.** `POST /api/list/file?listing_id=`, content type `application/pdf` or `application/zip`, the x-file-name header with the file name, and the file itself as the body. At most 32 MiB, at most 50 uploads a day per seller. ``` curl -X POST 'https://madeforthisday.com/api/list/file?listing_id=' \ -H 'Authorization: Bearer ' \ -H 'content-type: application/pdf' \ -H 'x-file-name: number-tracing-sheets.pdf' \ --data-binary @number-tracing-sheets.pdf ``` What it does and checks: it takes the file buyers receive as the raw body (not JSON, not multipart). A second upload changes what FUTURE buyers get; nothing already stored is deleted. The size is read from Content-Length and refused before the body is read. Before anything is stored the file is held to these checks, each refusing with its own code: the bytes must be the declared type (bad_file_type); a PDF with a text page that matches a page of one of our own products is refused (own_file_copy; we compare the words on each page, not pictures of pages); every PDF in the file must be one we can read, so a password-protected PDF (even one that opens without a password), a PDF with files attached inside it, and a PDF we cannot open are refused (file_not_comparable: save it again without a password or attachments); a PDF whose pages are mostly pictures (colouring pages, wall art, a scan) is accepted, but its pages cannot be compared with ours, and the response says so (image_only); a zip may hold only PDF, PNG, JPEG, GIF, WebP, MP3, WAV and plain-text files, and its file list must account for every byte of the zip (zip_content_refused otherwise). The file name buyers download is your x-file-name header with its extension replaced by the one for the type we detected from the bytes (.pdf or .zip). The response says own_file_check passed (every PDF was compared and matched nothing), image_only (pages that are pictures, not compared) or no_pdf (a zip that holds no PDF to compare). Answers `200` with: - `ok` — true - `listing_id` — the listing the file was attached to - `file` — {name, mime, bytes, sha256}: the file name buyers will download, its type, its size, and the SHA-256 of the bytes we stored. Compare sha256 with your own to confirm what was stored - `replaced` — true if the listing already had a file; future buyers now get this one - `own_file_check` — "passed", "image_only" or "no_pdf": see the rule above - `own_file_note` — present unless own_file_check is "passed": why - `zip` — present for a zip: {entries, types, ignored} - `metadata_warning` — present only when a PDF in the upload carries an author: see metadata_warning below - `buyable` — when the listing can be bought **The author in your PDF.** Word, Pages and Google Docs write the author's real name into a PDF, and a buyer can read it in any PDF viewer's document properties. Sellers are anonymous to buyers. When the document information of any PDF in the upload (or of a PDF inside the zip) has a non-empty Author, or its XMP metadata has a non-empty dc:creator, the upload still succeeds and the response carries metadata_warning: {fields, note}. fields names which of the two were found. The response never contains the value, and we do not keep it. We do not change your file; to remove the name, clear the author in the program you made the PDF in and upload the new file. Producer and Creator are not reported: they name programs. **Step 6 — upload a cover picture.** `POST /api/list/cover?listing_id=`, available when GET /api/marketplace/status reports switches.hosting true. ``` curl -X POST 'https://madeforthisday.com/api/list/cover?listing_id=' \ -H 'Authorization: Bearer ' \ -H 'content-type: image/png' \ --data-binary @cover.png ``` It takes the cover picture as the raw body (not JSON, not multipart); it is shown on your listing page and cards. image/png, image/jpeg or image/webp (not animated), at most 2 MiB, at most 8192 pixels on a side and 25 million pixels in all. The type is read from the bytes, not the header. We strip the picture's embedded metadata (camera, location, author, colour profile) before we store it. A second upload replaces the first. Works for a live listing of yours; at most 200 cover uploads per seller per day. Answers `200` with: - `ok` — true - `listing_id` — the listing the cover belongs to - `cover_url` — the address of the cover image on your listing page - `bytes` — the size of the stored picture, after its metadata was removed - `type` — the picture type we detected from its bytes **Step 7 — look at what you made.** The public page is `https://madeforthisday.com/i/` (the `listing_url`). `GET /api/seller/status` (Step 3) shows your balance and the number of listings. To watch views and sales, list them: ``` curl -X GET https://madeforthisday.com/api/seller/listings \ -H 'Authorization: Bearer ' ``` `GET /api/seller/listings` — it returns your listings, newest first, with the same numbers your shop page shows: views, sales and what you keep. It reads only; it changes nothing. Answers `200` with: - `ok` — true - `listings` — an array, newest first (up to 500); each item has the fields below - `listings[].id` — the listing id; the public page is /i/ - `listings[].title` — the title - `listings[].status` — "live", or "delisted" once withdrawn - `listings[].price_cents` — the price in whole cents; null on an own-checkout listing - `listings[].views` — all-time views by people (crawlers are not counted), or null when that cannot be told: see views_note - `listings[].views_note` — only when views is null: why - `listings[].views_7d` — views in the last 7 days - `listings[].sales` — sales that still stand (refunded sales are not counted) - `listings[].kept_cents` — what you keep from those sales, in cents, after Stripe's card fee and our commission - `listings[].held_cents` — the part of kept_cents that is still inside the hold window and not yet payable Each call counts toward the same requests-a-minute limit as the status route. Views are people opening the public page; crawlers are not counted. **Step 8 — change it or take it down.** The same two calls as on the one-request path, with the same claim token: `POST /api/list/update` and `POST /api/list/withdraw`. On a hosted listing `price` can be edited too (at least $0.99). To change the file, upload again (Step 5): future buyers get the new file, and what past buyers were sent is not touched. A listing you withdraw can no longer be edited or bought. #### What to tell your person Pass this on in your own words, once the seller exists: > Stripe has one step only you can do: open the link I give you, in a browser, and finish it. It asks for the details Stripe needs to pay you; Stripe collects them on its own page and we do not ask for them. The link works once and for a few minutes, so tell me when you are ready and I will fetch a fresh one. I have saved the key to your shop (the claim token). It cannot be recovered, so keep it too. To look at your shop in a browser, go to https://madeforthisday.com/sell/signin and paste the key. When something sells, the money is held for 30 days, then paid by Stripe to the bank account you gave Stripe, once a month, when at least $25.00 is payable; less than that waits for the next month. Fees: 10c to list, then the card processing cost plus 3% of each sale. Stripe also charges $2.31 to send a $25 payout (less per dollar on bigger payouts), taken out of the payout. (Working: https://madeforthisday.com/tools/fees.) #### What the API does not do - GET /api/seller/status gives the count of your listings, your balance and your last payouts, and GET /api/seller/listings lists your listings with their views, sales and what you keep. A listing's public page is /i/ (it answers 410 once withdrawn). Your person sees the same numbers in a browser, after signing in with the claim token - There is no way to get a lost claim token back, and no route to change the handle after sign-up - Payouts go by Stripe transfer to the bank account the person gave Stripe, and nothing here changes that. POST /api/seller/payout-method accepts only {"method": "connect"}, which is what a verified seller already has; "paypal" is refused with paypal_closed #### Errors on the hosted routes Same shape as above: `error`, `field`, `expected`. - `marketplace_off` (503) — the switch for this route is off; the body is {error, switch, blocked_by, note} and switch names it - `bad_handle` (400) — handle is not an allowed pseudonym - `handle_taken` (409) — another seller already shows this handle (compared ignoring case) - `body_too_large` (413) — the request body is over 4096 bytes - `verify_first` (403) — a hosted listing needs a seller Stripe has verified under the marketplace account - `not_a_connect_seller` (409) — this seller was created with a PayPal handle and has no Stripe account; sign up with POST /api/seller for a hosted seller - `bad_delivery` (400) — delivery is not an allowed value - `price_too_low` (400) — a hosted listing cannot be priced below the minimum - `bad_payout_method` (400) — method is not connect or paypal - `paypal_closed` (409) — PayPal payouts are closed: a PayPal address cannot be tied to the identity Stripe verified, so payouts go by Stripe transfer to the bank account the seller gave Stripe - `bad_paypal_email` (400) — paypal_email is missing or not an email address - `listing_not_hosted` (409) — the listing exists under this claim token but is not a hosted listing, so no file can be uploaded to it - `length_required` (411) — the size of the upload was not declared - `file_too_large` (413) — the file is over the size cap; refused before the body was read - `bad_file_type` (415) — the content type is not allowed, or the bytes are not a PDF/zip - `empty_file` (400) — the body is empty - `own_file_copy` (422) — pages of this file are pages of one of our own products; nothing was stored - `file_not_comparable` (422) — we could not read every PDF in the file well enough to compare it with our own products, so it was not stored and cannot be sold; the body says why (reason: encrypted, attachments, unreadable or too_large_to_check) and how to fix it - `zip_content_refused` (422) — an entry of the zip is not allowed (a program, a script, an archive inside the zip, an encrypted or unreadable entry, a name that climbs out of its folder, or a name that does not match its bytes); the body lists each one; nothing was stored - `storage_failed` (503) — the file could not be stored; nothing was changed; retry later The metadata warning is not an error: the upload succeeds. The MCP tools add one code of their own, `bad_base64`, described under MCP. ## Answers (question pages) - [What to put in a Shabbat box for a toddler](https://madeforthisday.com/shabbat-box-for-toddlers): A simple, screen-free Shabbat box a toddler can actually use: what to include, how to keep it calm, and printable coloring placemats, a bedtime Shema, Havdalah pages and a challah-cover craft to fill it. - [Quiet Shabbat activities for kids](https://madeforthisday.com/quiet-shabbat-activities-for-kids): Screen-free, low-mess Shabbat activities that keep children calm at the table and through a long afternoon: coloring placemats, large-print word searches, and gentle Havdalah pages. - [Make your own challah cover (a printable craft)](https://madeforthisday.com/make-your-own-challah-cover): A make-your-own challah cover kids can decorate for Shabbat and the High Holidays: how the printable craft works, what you need, and the iron-on option for a keepsake. - [Havdalah coloring pages for kids](https://madeforthisday.com/havdalah-coloring-pages): Printable Havdalah coloring pages for the close of Shabbat: the candle, spices and cup explained simply, plus a coloring set to make the ceremony hands-on for young children. - [A bedtime Shema for young children](https://madeforthisday.com/bedtime-shema-for-kids): A gentle bedtime Shema routine for young children: what the Shema is, how to make it part of a calm bedtime, and a printable set to hang by the bed. - [Shabbat placemats kids can color](https://madeforthisday.com/shabbat-placemats-to-color): Printable Shabbat placemats children color and use at the table: how they keep kids at the meal, why reusable beats disposable, and a printable set to start this Friday. - [Hebrew alphabet tracing and coloring for kids](https://madeforthisday.com/hebrew-alphabet-tracing-for-kids): A printable Aleph Bet book that lets children color and trace the Hebrew alphabet: how tracing builds letter recognition, and a set that pairs each letter with a picture. - [Sukkah decorations kids can make](https://madeforthisday.com/sukkah-decorations-kids-can-make): Printable Sukkah decorations children can make for Sukkot: paper chains, lanterns and more, with tips for decorations that survive a week outdoors. - [Large-print Jewish word searches for the whole year](https://madeforthisday.com/large-print-jewish-word-search): Large-print Jewish word searches for the whole year — Shabbat, the High Holidays, Hanukkah, Passover, Purim and Sukkot — easy on the eyes for kids and grandparents alike, with a full answer key. - [Purim word search (printable, large print)](https://madeforthisday.com/purim-word-search-printable): A printable, large-print Purim word search built on the Megillah story — Esther, Mordechai, Haman, mishloach manot — with an answer key. Good for the seudah, a classroom, or a quiet page during the reading. - [Hanukkah word search (large print)](https://madeforthisday.com/hanukkah-word-search-large-print): A large-print Hanukkah (Chanukah) word search built on the holiday's words — menorah, dreidel, latkes, Maccabees — with an answer key. Easy for kids and grandparents to share over the eight nights. - [Passover word search (printable, for the seder)](https://madeforthisday.com/passover-word-search-printable): A large-print printable Passover (Pesach) word search built on the seder — matzah, the four questions, the ten plagues, afikoman — with an answer key. Keeps kids at the table through a long seder. - [Rosh Hashanah and High Holidays word search](https://madeforthisday.com/rosh-hashanah-word-search): A large-print printable word search for Rosh Hashanah and Yom Kippur — shofar, apples and honey, Tashlich, teshuvah — with an answer key. A quiet activity for the High Holiday table and services. - [A handwriting workbook that shows stroke order](https://madeforthisday.com/handwriting-workbook-with-stroke-order-arrows): A printable handwriting workbook that shows stroke order with arrows, so a child learns to form each letter the right way from the start — plus why stroke order matters and how to practice it. - [A Thanksgiving hosting binder that plans the whole day](https://madeforthisday.com/thanksgiving-hosting-binder): A printable Thanksgiving hosting binder to plan the whole day — guest list, menu, a cooking schedule that works backward from dinner — plus a matching kids' activity pack to keep children busy. - [How to reconnect with your toddler after daycare](https://madeforthisday.com/connect-with-toddler-after-daycare): The hardest ten minutes of the day are the ones right after pick-up. A few small, specific things — what to say first, telling them who's coming, one thing to look forward to — that help a tired toddler feel you came back and you're glad. - [What to ask your preschooler at pick-up (and what to say first)](https://madeforthisday.com/what-to-ask-your-preschooler-at-pickup): There are a hundred lists of questions to ask instead of “how was your day.” Most miss the point: at pick-up, the first thing out of your mouth shouldn't be a question at all. What to say first, then the small, specific questions a preschooler can actually answer. - [The ordinary days are the ones they'll remember](https://madeforthisday.com/everyday-moments-kids-remember): Every parent feels the pull to give their child a big day. The quiet thing most parents learn late, which takes the pressure off: children don't remember the big days nearly as much as they remember that you were there. Go to the library. Jump in the puddle. - [Making daycare drop-off easier in the morning](https://madeforthisday.com/easier-daycare-drop-off): Most of what helps with a hard daycare drop-off happens before you leave the house. One small habit does the most: tell your child, in the morning, exactly who is picking them up — tied to an anchor like 'after snack,' not a clock — plus a free morning chart. ## Products - [Handwriting Practice Workbook](https://madeforthisday.com/p/letter-formation-handwriting-workbook): Letter formation with stroke-order arrows, plus alphabet and number wall charts. For ages 4–7. 70 pages. - [Sight Words Handwriting Practice](https://madeforthisday.com/p/first-words-handwriting-practice): 120 first words to trace, building from single letters to whole words. Kindergarten and homeschool. 130 pages. - [CVC Word Families Handwriting](https://madeforthisday.com/p/cvc-word-families-handwriting): 21 short-vowel word families, 107 words, for early phonics and blending practice. 136 pages. - [Scissor Skills Cutting Practice](https://madeforthisday.com/p/scissor-skills-cutting-practice): Seven levels of cutting lines that get measurably harder — straight, zig-zag, curves, shapes. Preschool fine motor. 50 pages. - [Numbers & Counting Workbook](https://madeforthisday.com/p/numbers-counting-workbook): Number formation, counting to 20, and ten-frames. Preschool and kindergarten math. 40 pages. - [Printable Mazes for Kids](https://madeforthisday.com/p/printable-mazes-for-kids): 21 mazes across seven difficulty levels, with a full answer key. 45 pages. - [Shapes & Patterns Workbook](https://madeforthisday.com/p/shapes-patterns-workbook): Ten shapes, 48 patterns to finish, and four shape hunts. Preschool math and logic. 28 pages. - [Addition & Subtraction Within 20](https://madeforthisday.com/p/addition-subtraction-within-20): Ten-frames, number lines, and fact families for addition and subtraction to 20. Kindergarten to Grade 1. 45 pages. - [Shabbat Placemat Coloring Set](https://madeforthisday.com/p/shabbat-placemats-coloring): Coloring placemats for the Shabbat table, with four bonus Jewish printables for the year ahead. 12 pages. - [Havdalah Coloring Set](https://madeforthisday.com/p/havdalah-coloring-set): Coloring pages for the close of Shabbat, bundled with four bonus seasonal printables. 10 pages. - [Rosh Hashanah Challah Cover Craft](https://madeforthisday.com/p/challah-cover-craft): A make-your-own challah cover craft for the High Holidays, with four bonus Jewish kids printables. 29 pages · 2 files. - [Bedtime Shema Printable Set](https://madeforthisday.com/p/bedtime-shema-set): A bedtime Shema ritual set for young children, bundled with four bonus seasonal printables. 10 pages. - [Hebrew Alef-Bet Coloring & Tracing Book](https://madeforthisday.com/p/my-first-alef-bet): Color and trace the Hebrew alphabet, bundled with four bonus Jewish kids printables. 70 pages. - [The Jewish Year Word Search — Large Print](https://madeforthisday.com/p/jewish-year-word-search): 72 large-print puzzles spanning the Jewish year, with three bonus coloring books. 110 pages · 2 files. - [High Holidays Word Search — Large Print](https://madeforthisday.com/p/high-holidays-word-search): Rosh Hashanah and Yom Kippur large-print word searches, with four bonus Jewish printables. 31 pages. - [Hanukkah Word Search — Large Print](https://madeforthisday.com/p/hanukkah-word-search): 20 large-print Chanukah puzzles, with four bonus Jewish printables. 31 pages. - [Passover Word Search — Large Print](https://madeforthisday.com/p/passover-word-search): 20 large-print Pesach puzzles, with four bonus Jewish printables. 31 pages. - [Purim Word Search — Large Print](https://madeforthisday.com/p/purim-word-search): 20 large-print Megillah puzzles, with four bonus Jewish printables. 31 pages. - [Sukkah Decorations Craft](https://madeforthisday.com/p/sukkah-decorations-craft): Paper chains, lanterns and Sukkot decorations for kids to make, with four bonus printables. 10 pages. - [Halloween Party Planner + Kids Activity Pack](https://madeforthisday.com/p/halloween-party-planner-kids-pack): A Halloween party planner plus a kids activity pack — dot-marker and color-by-number pages — with four bonus planners. 29 pages · 2 files. - [Thanksgiving Hosting Binder + Kids Activity Pack](https://madeforthisday.com/p/thanksgiving-hosting-binder-kids-pack): A Thanksgiving hosting binder plus a kids activity pack, with four bonus planners. 29 pages · 2 files. - [Diwali Coloring Book](https://madeforthisday.com/p/diwali-coloring-book): Nineteen pages of the festival itself — diyas with their flames, a circular rangoli, a peacock with its tail fanned open, marigold garlands, a kolam of dots and loops, a temple tower, and fireworks going up. 19 pages. - [Ramadan & Eid Coloring Book](https://madeforthisday.com/p/ramadan-eid-coloring-book): Eighteen pages for the month and the day it ends — lanterns, crescent moons and stars, date palms, a decorated plate for sharing, and geometric patterns to fill in. 18 pages. - [Buddhist Mandala Coloring Book](https://madeforthisday.com/p/buddhist-mandala-coloring-book): Nineteen mandalas and lotus patterns to colour, from simple open shapes to dense symmetrical rings. No text and no script — pattern and line only. 19 pages. - [Catholic Coloring Book for Kids](https://madeforthisday.com/p/catholic-coloring-book-for-kids): Nineteen pages of the things a child sees in church and at home — candles, stained-glass shapes, doves, a rosary laid out in a loop, and patterned borders. 19 pages. - [Greek Orthodox Coloring Book](https://madeforthisday.com/p/greek-orthodox-coloring-book): Nineteen pages of Orthodox pattern and object — domes, candles, woven borders and geometric ornament, drawn as clean outlines for colouring. 19 pages. - [Advent Word Search for Kids](https://madeforthisday.com/p/advent-word-search-for-kids): Twelve puzzles across the weeks of Advent, in large print, with answer keys — one to do each time you open the calendar. 19 pages. - [Christmas Carols & Traditions Word Search](https://madeforthisday.com/p/christmas-carols-word-search-large-print): Ninety-three pages of large-print puzzles on carols, food, decorations and the traditions themselves. Built for eyes that want the type big. 93 pages. - [St Patrick's Day Word Search](https://madeforthisday.com/p/st-patricks-day-word-search): Ten large-print puzzles with answer keys, for a class party or a kitchen table on the seventeenth. 16 pages. - [Valentine's Day Word Search](https://madeforthisday.com/p/valentines-day-word-search): Ten large-print puzzles with answer keys — the kind of thing you need the evening before, not a week ahead. 16 pages. - [Good Old Days Word Search](https://madeforthisday.com/p/good-old-days-word-search-large-print): Ninety-one pages of large-print puzzles on the things people remember — diners, drive-ins, dance halls, the radio. Big type, generous spacing, answer keys. 91 pages. - [Garden Word Search](https://madeforthisday.com/p/garden-word-search-large-print): Ninety-three pages of large-print puzzles on flowers, vegetables, tools and the jobs of each season, with answer keys. 93 pages. - [Craft Room Word Search](https://madeforthisday.com/p/craft-room-word-search-large-print): Sixty-one large-print puzzles across ninety-three pages — sewing, knitting, quilting, papercraft and the contents of the drawer nobody can shut. 93 pages. - [Quilting Word Search](https://madeforthisday.com/p/quilting-word-search-large-print): Twenty large-print puzzles on blocks, patterns, tools and techniques, with answer keys. For the quilter who also likes a puzzle. 31 pages. - [Fishing Word Search](https://madeforthisday.com/p/fishing-word-search-large-print): Twenty large-print puzzles on species, tackle, knots and water, with answer keys. 31 pages. - [Chicken! Banana! Banana! Party Game Pack](https://madeforthisday.com/p/party-game-pack-printable): Two silly movement games for little dancers — thirty-six call cards and eight bingo boards across twelve pages. Print it, cut where shown, and play. Nothing to install and nothing to ship. 12 pages. - [Adult Visual Routine Cards](https://madeforthisday.com/p/adult-routine-cards): Made for your bathroom mirror, not a classroom wall. 16 pages. - [Advocacy & Care Bundle](https://madeforthisday.com/p/advocacy-care-bundle): 3 Printable Form Packs in One — IEP Advocacy, Family Emergency Binder, Estate Executor. 47 pages. - [Aging Parent Care Binder](https://madeforthisday.com/p/aging-parent-care-binder): If someone you love needs your help — a new diagnosis, a fall, or the slow realisation that they cannot manage alone — the hardest part of the first weeks is that the information lives in six places and none of them is with you at the appointment. 155 pages · 3 files. - [Aquarium & Reef Water-Parameter Log](https://madeforthisday.com/p/aquarium-reef-water-log): Aquarium & Reef Water-Parameter Log — Printable PDF Record Book 10 pages. - [Baby Pediatrician Visit Log](https://madeforthisday.com/p/baby-first-year-tracker): The nurse asks which vaccines the baby got at the last visit. You can picture the paper the doctor gave you. It's in a folder at home. Your phone has 47 unread texts. 12 pages. - [Backyard Chicken Flock Records](https://madeforthisday.com/p/backyard-chicken-flock-records): You lost a hen last month and aren't sure when you last noticed her eating normally. You sell eggs to three neighbors but have never written down what the feed costs versus what you take in. You clean the coop when it needs it, but couldn't tell anyone the last time you actually did a deep clean. This record binder keeps that information where you can find it. 11 pages. - [Beekeeper Hive Inspection Log](https://madeforthisday.com/p/beekeeper-hive-inspection-log): You finish an inspection, the hive lid goes back on, you pull out your phone to type notes — and realize you can't remember whether it was Hive 2 or Hive 3 that had the patchy brood. By the time you get inside, you're writing from memory. This log gives you the form before you go into the hive, so you record what you see while you see it. 11 pages. - [Bible Word Search Large Print](https://madeforthisday.com/p/bible-word-search-large-print): LARGE PRINT BIBLE WORD SEARCH — 61 themed printable puzzles 112 pages · 2 files. - [Autism Care Handoff Binder](https://madeforthisday.com/p/care-handoff-binder): Hand someone everything they need to care for your person — in one binder. 14 pages. - [Cat Breeder Litter Records Pack](https://madeforthisday.com/p/cat-breeder-litter-pack): When you're managing a litter — tracking kittens by marker, fielding deposit calls, logging deworming dates at 9pm, and remembering which buyer wanted a blue-eyed female — you need a system that fits on paper and doesn't ask you to log into anything. 11 pages. - [Community Garden Coordinator Pack](https://madeforthisday.com/p/community-garden-coordinator-pack): If you're the coordinator of a community garden, you already know the feeling: plot assignments in your head, dues in a notebook, a waitlist you haven't followed up on in weeks, and a nagging thought that if you stepped down tomorrow, the garden would lose three years of institutional memory. 13 pages. - [Dog Breeder Litter Records Pack](https://madeforthisday.com/p/dog-breeder-litter-pack): When you're managing a litter — tracking 8 puppies by collar color, fielding deposit calls, logging deworming dates at 9pm, and remembering which buyer wanted a female with white markings — you need a system that fits on paper and doesn't ask you to log into anything. 13 pages. - [Dot Marker Printables Stamp Book](https://madeforthisday.com/p/dot-marker-stamp-book): Sixteen dot-marker pages that teach one thing properly: keeping a mark inside the line. 40 pages · 2 files. - [Birth Doula On-Call Schedule & Client Intake Forms](https://madeforthisday.com/p/doula-business-pack): When you get a 3am call, you need the coordination information — not the time to find it. 15 pages. - [EHCP Parent Binder Printable A4](https://madeforthisday.com/p/ehcp-parent-binder): The law gives your local authority 20 weeks to issue an EHC Plan, from the day your assessment request goes in. In 2024, only 46.4% of new EHC plans in England were issued within that deadline (Department for Education, Explore Education Statistics, 2025 release). The parents who get heard when it runs late are the ones with dates — what was sent, when, to whom, and what was promised back. 16 pages. - [Family Emergency Binder](https://madeforthisday.com/p/family-emergency-binder): One document. The right place to find it. That's what this is. 12 pages. - [First Year Teacher Forms](https://madeforthisday.com/p/first-year-teacher-forms): You have your own room for the first time. It is the second week of August, the building is empty, and the induction day covered the fire alarm and the payroll portal. Nobody has told you what to say at 8:05 on the first morning. 73 pages · 4 files. - [Food Pantry Coordinator Forms Pack](https://madeforthisday.com/p/food-pantry-coordinator-forms): A complete paper system for the volunteer food pantry coordinator — 13 printable pages, instant download, US Letter, black and white. 13 pages. - [Foster Parent Record Binder](https://madeforthisday.com/p/foster-parent-record-binder): FOSTER PARENT RECORD BINDER — 14-page printable PDF Placement records · Appointment & visitation logs · Court dates · Medical & school records · Reimbursement tracker · Belongings inventory 14 pages. - [Genealogy Research Log](https://madeforthisday.com/p/genealogy-research-log): Genealogy Research Log — Printable PDF Record Book 10 pages. - [Game Master Session Binder](https://madeforthisday.com/p/gm-session-binder): Stop scrambling mid-session when a returning NPC walks into the room. This printable Game Master binder gives you every NPC's name, what they want, and their last interaction with your players in under 10 seconds — right at the table, no phone required. 12 pages. - [Hebrew School Teacher Forms Pack](https://madeforthisday.com/p/hebrew-school-teacher-forms): Hebrew School Teacher Forms Pack — 12 Pages, Instant Download PDF 12 pages. - [Homebrewer's Batch Log](https://madeforthisday.com/p/homebrewer-batch-log): You brewed something incredible last summer. Everyone at the block party wanted the recipe. You have no idea what went into it. 11 pages. - [IEP Binder](https://madeforthisday.com/p/iep-advocacy-pack): Walk into every IEP meeting knowing exactly what was promised, what was delivered, and what to ask next. 19 pages. - [IEP Parent Advocacy Binder](https://madeforthisday.com/p/iep-parent-advocacy-binder): IEP meetings are exhausting. You're sitting across from a table of school staff, trying to remember what was said last time, what was agreed, and what still needs to happen. This binder is the tool you bring to the table. 10 pages. - [Library Sub Plans](https://madeforthisday.com/p/library-sub-plans): You are the one person in the building whose absence costs seven other teachers their planning period. Which is exactly why library sub plans never get written - there is never a spare thirty minutes, and every absence starts from a blank page again. 79 pages · 4 files. - [Marching Band Season Binder](https://madeforthisday.com/p/marching-band-season-binder): Two weeks before band camp, you get the packet: a fee schedule, a uniform-fitting slip, a supply list, and a rehearsal calendar that will already be different by week three. Every veteran band parent around you seems to already have a system. 15 pages. - [Massage Therapist Client Pack](https://madeforthisday.com/p/massage-therapist-client-pack): Printable client pack for solo massage therapists — intake forms, session records, health notes, rebooking tracker, and appointment log in one organized PDF. 11 pages. - [New Homeowner Maintenance Binder](https://madeforthisday.com/p/new-homeowner-maintenance-binder): You close on the house Friday. By Monday you've had three different people tell you where the water shutoff is, none of them agreeing. The inspection report is in a PDF somewhere. The previous owner left a sticky note about the furnace filter that you've already lost. This binder gives you one place to write down what you know about this specific home — while you still have access to the people wh 11 pages. - [Nonprofit Grant Deadline Tracker & Organization Library](https://madeforthisday.com/p/nonprofit-grant-deadline-tracker): You have fifteen open grant applications. Three report deadlines you're not sure about. A shared Google Doc nobody updated in six weeks. And one of those funder portals requires a 30-day advance login to unlock the form. 12 pages. - [Passover Coloring Pages Kids](https://madeforthisday.com/p/passover-kids-activity-pack): PASSOVER KIDS ACTIVITY PACK — 26 printable coloring and activity pages for children ages 3–7. 26 pages. - [Pet Business Bundle](https://madeforthisday.com/p/pet-business-bundle): If you're running a pet-care business — boarding, sitting, walking, or breeding — you need forms that cover all of it. 53 pages. - [PTA Fundraising Chair Binder](https://madeforthisday.com/p/pta-pto-fundraising-chair-binder): You have a date, a target somebody said out loud in a meeting, a sponsor list two years out of date, and no record of what last year actually cost. In eight weeks you have to stand up and say what was raised. 72 pages · 3 files. - [School Counselor Documentation Forms](https://madeforthisday.com/p/school-counselor-documentation): Four hundred students on paper. Individual check-ins, small groups, classroom lessons, referrals, consultations - and the weeks that get eaten by things nobody scheduled. Then in June somebody asks where the time went. 73 pages · 4 files. - [Shabbat Candles Coloring](https://madeforthisday.com/p/shabbat-candles-blessings): Shabbat Candles and Blessings — 10 printable pages 10 pages. - [Solo Studio Bundle](https://madeforthisday.com/p/solo-studio-bundle): 3 Printable Form Packs in One — Tattoo Artist, Massage Therapist, Hairstylist Booth Renter. 40 pages. - [Speech Therapy Data Sheets](https://madeforthisday.com/p/speech-therapy-data-sheets): Forty-five students. Groups of four. The next group is already at the door. 67 pages · 4 files. - [Student Teacher Observation Forms](https://madeforthisday.com/p/student-teacher-observation): You said yes in May. Now a 22-year-old is standing in your room every day for fourteen weeks, you have never been trained to observe an adult, and in April you will be asked to write something that affects whether this person gets to teach. 61 pages · 4 files. - [Substitute Teacher Binder](https://madeforthisday.com/p/substitute-teacher-binder): It's 11 PM and you're building your sub binder from three blog posts that don't agree with each other. None of them are written for a long-term assignment. None of them help when the teacher left nothing at all. 16 pages. - [Swim Meet Parent Tracker](https://madeforthisday.com/p/swim-meet-parent-tracker): You're four hours into a six-hour meet. The heat sheet is soft and highlighter-smeared from splash-back. Your phone is at 12% because the timing app has been open all day. You need one thing: to know your kid's next event before warm-down closes. 12 pages. - [Tattoo Consent Form](https://madeforthisday.com/p/tattoo-client-pack): Professional printable forms for working tattoo artists — client intake, consent documentation, session records, aftercare, and weekly booking tracker, all in one pack. 15 pages. - [Toddler Busy Book](https://madeforthisday.com/p/toddler-busy-book): It is the evening before and you need something for the morning. This is nineteen pages you print tonight and use tomorrow. 38 pages · 2 files. - [Transition to Adulthood Planner Special Needs](https://madeforthisday.com/p/transition-to-adulthood-binder): The meeting ends and the acronyms start — track every application, decision, and waitlist in one binder. 19 pages. - [Autism Classroom Visual Supports and Behavior Chart Pack](https://madeforthisday.com/p/visual-supports-pack): A student is having a very hard time at transitions. The team meets in three weeks. You need something usable tomorrow morning, and you have a laminator, a copier code and no budget. 85 pages · 4 files. - [Youth Sports Team Manager Pack](https://madeforthisday.com/p/youth-sports-team-manager): You have 12 kids, two missing consent forms, one peanut allergy you can't remember, and a snack schedule nobody made. 12 pages. - [December Advent Planner + 24 Daily Kids Activity Pages](https://madeforthisday.com/p/advent-december-activity-planner): It's the second week of December and you're already behind on the things you meant to do with the kids this year. Sound familiar? 54 pages · 2 files. - [Baby Shower Host Kit + Welcome Baby Kids Pack](https://madeforthisday.com/p/baby-shower-host-kit): You said yes to hosting the baby shower. Now you're coordinating a co-host you've never planned an event with before, a guest list of twenty people, and a registry you didn't set up — mostly over group texts, mostly late at night. 27 pages · 2 files. - [Bridal Shower Host Kit + Kids Activity Pack](https://madeforthisday.com/p/bridal-shower-host-kit): Five bridesmaids are arguing in the group chat about who's paying for what. Nobody agreed on a venue budget. You're the maid of honor, and you're the one who has to turn this into an actual party. 27 pages · 2 files. - [Christmas Planner & Gift Budget Tracker + Kids Activity Pack](https://madeforthisday.com/p/christmas-planner-gift-budget): Every November you rebuild the whole season from scratch in a notes app — and you still miss someone's gift. 39 pages · 2 files. - [Friendsgiving Dinner Party Host Kit](https://madeforthisday.com/p/friendsgiving-dinner-party-host-kit): You're hosting Friendsgiving for the first time. Ten friends are coming. You have a one-bedroom apartment, two folding tables, and no idea where all the food, drinks, and people are actually going to go. 27 pages · 2 files. - [Holiday Card List & Address Manager + Kids Card-Making Pack](https://madeforthisday.com/p/holiday-card-list-address-manager): Every December you rebuild the same ~40 addresses from three notebooks, a shoebox of last year's envelopes, and a half-remembered spreadsheet. This is the one place that survives from year to year, so you stop starting over. 29 pages · 2 files. - [Kids Birthday Party Planner + Activity Pack](https://madeforthisday.com/p/kids-birthday-party-planner): The invitations went out three weeks ago. The guest list is on the back of a receipt. Somewhere there's a Pinterest board you saved and haven't opened since. 29 pages · 2 files. - [New Year Goal & Habit Reset + Kids Goal-Setting Pack](https://madeforthisday.com/p/new-year-goal-habit-reset): You've deleted three habit apps this year. None of them stuck — the streak resets, the notifications, the subscription nag screen. This is the paper version: one system, no app, no streak that punishes you for a bad week. 51 pages · 2 files. - [Red Bird in the Snow: A Cardinal Bedtime Story for Ages 2-4](https://madeforthisday.com/p/cardinal-in-the-snow-bedtime-story-ages-2-4): A slow, quiet bedtime story for a child aged 2 to 4, written for the grown-up who reads it aloud: a grandmother, grandfather, parent or caregiver at the end of a winter day, or at the window the morning after. 9 pages. - [Christmas Eve Box Kit: Printable Lid Labels, Gift Tags and Evening Plan](https://madeforthisday.com/p/christmas-eve-box-family-kit): A 12-page printable kit for the family that gives the children a Christmas Eve box: one box of small things to open on the evening before Christmas, which in 2026 is Thursday 24 December. 12 pages. - [Class Gift Book for a Teacher: A Page From Every Student, Printable](https://madeforthisday.com/p/class-gift-book-for-teacher): A Class Gift Book for a Teacher is a 12-page printable for a room parent who wants to give the teacher something from the whole class, with no money to collect and nothing to wrap. Every child fills in a page of their own, and the pages are bound into one book. 12 pages. - [Day Before Thanksgiving Sub Plans Grades 3-5](https://madeforthisday.com/p/day-before-thanksgiving-sub-plans-3-5): A flight leaves Tuesday afternoon, the room will be loud from the first bell, and the person covering your class needs a whole day they can follow without asking anyone anything. This is a one-day, dated plan for grades 3 to 5, written for Tuesday, November 24 or Wednesday, November 25, 2026 (Thanksgiving is November 26). It is a plan for that one day, not a binder. 25 pages, in 2 editions (fillable and print). - [December Birthday Kit: Keep the Birthday Separate from Christmas, with Wrapping Paper](https://madeforthisday.com/p/december-birthday-not-christmas-kit): A 12-page printable kit for the parent of a child born in the weeks around Christmas, who has had "one present for both" and wants this year's birthday to be its own day. 12 pages. - [Día de Reyes for Kids: Three Kings Shoebox Kit with Letter and Rosca Page, Bilingual](https://madeforthisday.com/p/dia-de-reyes-three-kings-kids-kit): A 14-page bilingual (Spanish and English) kit for a family whose children have grown up on Santa and have never left grass out for the Kings' camels on the night of 5 January. It is for grandparents, parents, Spanish teachers and parish groups. The dates are set for 2027: Tuesday 5 January for the night, Wednesday 6 January for the gifts and the rosca, and Tuesday 2 February for Candelaria. 14 pages. - [Family Gift Exchange Kit for Cousins: Name Draw, Wish Lists, and Fair Rules](https://madeforthisday.com/p/family-gift-exchange-kit-cousins): A 14-page printable for the aunt, uncle, parent or grandparent who organises the gift exchange at a family gathering where the cousins range from toddlers to teenagers. It is built so that the youngest are never put in a game that can take a gift from them, and so that every person who gives also receives. 14 pages. - [Handmade Holiday Gifts Planner: Projects, Recipients and Deadlines](https://madeforthisday.com/p/handmade-holiday-gifts-planner-printable): A 21-page printable planner for people who make their holiday gifts by hand: knitting, crochet, sewing, quilting, woodwork and anything else made at a table. It is built around the problem every maker meets in October: eleven gifts planned, two sweaters still on the needles, and a last day for posting that is closer than it feels. 21 pages. - [Indoor Snowball Party Kit: 10 Winter Party Games with Sock Snowballs, Ages 4-10](https://madeforthisday.com/p/indoor-snowball-party-kit-ages-4-10): A printable party kit for a grown-up hosting a winter birthday or a snow-day party in a living room, with no snow outside and no need for any. The snowballs are rolled-up socks or crumpled paper. Ten games for children aged 4 to 10, written for a group of about eight, with rules for each game, a 90-minute plan, four invitations to fill in, and certificates. 16 pages. - [Last Day Before Winter Break Sub Plans K-2](https://madeforthisday.com/p/last-day-before-winter-break-sub-plans-k-2): Two dozen kindergarten, first and second graders, one school day left before break, and a substitute who has never met them: that is the room you are leaving. You do not have to hand over a day of worksheets that the class will rush through by ten. This pack gives your sub a calm, full day built around snow science, with the words to read aloud already written out. 25 pages, in 2 editions (fillable and print). - [Manatee Bedtime Story for Ages 5-7: A Slow Florida Winter Story](https://madeforthisday.com/p/manatee-winter-spring-bedtime-story-ages-5-7): Manatees at the Warm Spring is a slow bedtime story for children ages 5 to 7, set at a Florida spring on a cold winter evening. You are the child lying on a boardwalk, watching a manatee glide in from the cold river to the warm clear water, graze on seagrass, come up for a breath, and settle down to rest beside her calf. 8 pages. - [Remote Snow Day Packet for K-2: One No-Screen Day Families Can Run at Home](https://madeforthisday.com/p/remote-snow-day-packet-k-2-no-device): An 18-page snow day packet for kindergarten, first and second grade that works with no screen at all. It is made for the teacher whose families share one laptop between several children, and for the parent who has never taught anything and needs the day to run from the paper alone. 18 pages. - [Snow Day Plan for Working Parents: Kids' Hourly Schedule and Door Sign](https://madeforthisday.com/p/snow-day-plan-for-working-parents): Snow Day Plan for Working Parents is a 12-page printable PDF for a parent who works from home, has just read the school-closure text, and has children about 5 to 10 and meetings to get through. Print it ahead of the winter and keep it where you can reach it at 5:40 am. 12 pages. - [The Snowplow at Night: A Winter Bedtime Story for Ages 2-4](https://madeforthisday.com/p/snowplow-at-night-bedtime-story-ages-2-4): A slow winter bedtime story for children aged 2 to 4 who love trucks and wonder about the plow that rumbles past at night. The story is told to "you", the child tucked in bed, as the snowplow passes the window: its blinking lights slide across the wall, the big blade scrapes the snow aside, salt sprinkles out the back, and the driver pours a warm cup from a thermos. The pace slows page by page, with soft sounds to say aloud and a few "breathe in... and out" pauses. Nothing frightening happens. 9 pages. - [Thanksgiving Thank-You Letters to School Staff: Class Kit and Lesson Plan](https://madeforthisday.com/p/thanksgiving-thank-you-letters-to-school-staff): A 14-page printable kit for a classroom teacher who wants the class to thank the custodians, the lunchroom team, the bus drivers and the front office before Thanksgiving break. Thanksgiving Day is Thursday, November 26, 2026; break days vary by school. It fits one 45-minute period, and the letters are delivered the next school day. Nothing in it asks the staff for anything: every letter says thank you for something the child has actually seen. 14 pages. - [Karva Chauth Katha in English: Printable Booklet with Puja Order](https://madeforthisday.com/p/karva-chauth-katha-english-booklet): This is a 14-page printable booklet for the evening of Karva Chauth, written for a woman keeping her first Karva Chauth and for any circle where half the women read Hindi slowly. It puts the two stories that are read aloud during the puja into plain English in large, clear type, so one person can read them to the whole circle. 14 pages. - [Lakshmi Puja at Home Step by Step: First-Time Printable Guide](https://madeforthisday.com/p/lakshmi-puja-at-home-first-time-guide): This is a 10-page printable guide for doing Lakshmi Puja at home on Diwali night for the first time, written for someone whose parents always did it, and for the partner or child who wants to understand each step and not just stand there. 10 pages. - [Bandi Chhor Divas Story for Kids with 52-Tassel Cloak Craft](https://madeforthisday.com/p/bandi-chhor-divas-story-and-52-tassel-cloak): This is a 13-page printable for Bandi Chhor Divas, the Sikh remembrance on the night of Diwali. It is written for a child of about 5 to 9 and the grown-up who reads aloud: the story of Guru Hargobind Sahib Ji's release from Gwalior Fort, together with the 52 princes who held on to the tassels of his cloak, and a cloak craft that children make while the story is read. 13 pages. - [Diwali Bedtime Stories: One for Each of the Five Nights (Ages 5-8)](https://madeforthisday.com/p/diwali-bedtime-stories-five-nights-ages-5-8): Five slow Diwali bedtime stories for children aged 5 to 8, one for each day from Dhanteras to Bhai Dooj in 2026. Night 1, Dhanvantari and the jug of nectar. Night 2, Krishna and the captives of Naraka, with the battle left offstage. Night 3, Rama, Sita and Lakshmana coming home to Ayodhya by lamplight. Night 4, Krishna lifting Govardhan Hill. Night 5, Yama and his sister Yamuna. Each is about 500 to 570 words, six minutes aloud with the pauses. 19 pages.