FOIA ConsoleBorn Between 2 Generals Open the console →

Sending

It sends to about half of them,
and it says so about the other half.

Roughly half of these agencies require submission through their own portal with an account. The send endpoint cannot reach them, so it returns 409 with the portal URL and marks the request awaiting manual submission. It never reports success for a message it could not send.

The rule

A tracker that silently drops half your requests is worse than no tracker, because you would believe they were filed.

Every agency in the dispatch table carries a channel, and the channel decides what the send endpoint is allowed to do.

email — the agency publishes a FOIA mailbox
The request is sent. The date it went becomes filedOn, the deadline clock starts from it, and the status becomes sent.
portal — submission requires an account on the agency's own system
POST /api/requests/:id/send returns 409 with the portal URL, the postal address where one is published, and the full request body ready to paste. The request is marked awaiting-manual-submission. Nothing was sent and nothing pretends otherwise.
none — the body is not subject to a records law at all
The request cannot be created. POST /api/requests returns 422 with the reason and the workaround, rather than accepting a request that can never be filed.

The dispatch table

Twenty-two agencies are configured. Twelve publish a mailbox and can be sent to; nine are portal-only; one is subject to no records law.

AgencyChannelResponse standard as configured
DOJ Office of Justice Programsemail20 business days, 5 U.S.C. § 552(a)(6)(A)(i)
Federal Bureau of Investigationportal20 business days — the FBI publishes no FOIA mailbox; eFOIA or post
U.S. Marshals Serviceemail20 business days
Federal Bureau of Prisonsemail20 business days to determine; BOP's own published processing runs far longer
ICE / Department of Homeland Securityemail20 business days; appeal window 60 days, not DOJ's 90
Government Accountability OfficeemailNo statutory deadline — GAO is not subject to FOIA and follows 4 C.F.R. Part 81
Administrative Office of the U.S. CourtsnoneNot subject to any public records law — 5 U.S.C. § 551(1) excludes the courts
California — CDCRemail10 calendar days to determine, Cal. Gov't Code § 7922.535(a)
Texas — TDCJemailPromptly; 10 business days to certify delay, Tex. Gov't Code § 552.221
Florida — FDLE / FDCemailNo fixed deadline, Fla. Stat. ch. 119
New York — DOCCSportal5 business days to acknowledge, N.Y. Pub. Off. Law § 89(3)(a)
Illinois — IDOCemail5 business days, 5 ILCS 140/3(d)
Michigan — MDOCemail5 business days, MCL 15.235
North Carolina — NCDACportalNo fixed deadline, N.C.G.S. ch. 132
Pennsylvania — DOCemail5 business days, 65 P.S. § 67.901
Ohio — ODRCportalNo fixed deadline, R.C. 149.43
Georgia — DCS / Pardons and Parolesportal3 business days, O.C.G.A. § 50-18-71(b)
Washington — DOCportal5 business days, RCW 42.56.520
Massachusetts — DOCemail10 business days to respond, G.L. c. 66, § 10
Minnesota — DOCportalNo deadline for public data; 10 business days if you are the data subject
Wisconsin — DOCportalNo fixed deadline, Wis. Stat. § 19.35(4)(a)
New Jersey — State Parole Boardportal7 business days, N.J.S.A. 47:1A-5(i)(1)

Channels, addresses, standards and appeal routes are read from the server's own dispatch table. Agencies change their intake arrangements without notice; verify before relying on any row.

What a 409 actually gives you

The refusal is not an error page. It is the rest of the work, handed over:

HTTP/1.1 409 Conflict

{
  "error": "This agency does not accept email requests",
  "channel": "portal",
  "portal": "https://efoia.fbi.gov/",
  "mail": "FBI, Record/Information Dissemination Section, …",
  "guidance": "Copy the request text and submit it through the agency's
               own system, then POST /api/requests/<id>/mark-submitted
               with the date and any tracking number so the deadline
               clock starts.",
  "body": "…the full request text…"
}

The request is stored, not discarded. When you have submitted it by hand, POST /api/requests/:id/mark-submitted records the real submission date and starts the clock from there. That is the one field nobody else can supply, and it is why the endpoint exists.

Record the date the portal received it, not the date you remembered to type it in

Deadlines are computed from the date you record. For an emailed request the server records it for you. For a portal submission it cannot, so a day of carelessness there is a day of deadline you have given away.

Warnings that travel with the agency

Some of these requests cannot be made by the person who most wants to make them.

The dispatch table carries agency-specific warnings and returns them with the created request, because they are the sort of thing you need to know before you file rather than after you are denied.

A few examples of what comes back attached to a created request:

  • Michigan. MCL 15.232 excludes incarcerated people from the definition of "person". A prisoner has no Michigan FOIA rights and there is no workaround in the statute.
  • Texas. Tex. Gov't Code § 552.028 — an agency need not comply with a request from an imprisoned person. Their attorney may still file.
  • Wisconsin. Wis. Stat. §§ 19.32(1b)–(1e) — an incarcerated or civilly committed person may request only records that specifically reference them or their minor children.
  • Illinois. The recurrent-requester rule, 5 ILCS 140/3.2: more than 50 requests a year, 15 a month, or 7 in seven days moves you to a 21-business-day window. Pace your filings.
  • New Jersey. Since the 2024 amendments an anonymous requester may not bring a Government Records Council proceeding. If you might appeal, do not file anonymously.
  • Massachusetts. GPS monitoring runs through the Probation Service, which is judicial branch and not covered by the public records law. DOC, Parole and SORB are covered; Probation is a discretionary request with no appeal right.
  • Washington. The only state with a statutory index requirement, RCW 42.56.070. Request the index first — it tells you what exists before you ask for it.

These are the warnings configured in the dispatch table, reproduced here so they can be read before a request is drafted. They are a summary of statutes, not legal advice, and statutes change.

How this works

0:47 · narrated · captioned · served from this site, and nothing is sent anywhere when you press play. Prefer to read it? The transcript is below.

Transcript
AtSectionWhat it says
0:02The ruleA tracker that silently drops half your requests is worse than no tracker, because you would believe they had been filed.
0:08What it sendsTwelve of the twenty-two agencies configured here publish a records mailbox. Those are sent for you, and the date the message went starts the clock.
0:17What it refusesNine require an account on their own system. The send endpoint returns a conflict, with the portal address and your full request text ready to paste.
0:27No records lawOne body is subject to no records law at all. A request against it is refused outright, with the reason and the agency that does hold copies.
0:35Then tell itWhen you have filed through a portal by hand, record the real submission date. That date is the whole basis of every deadline computed afterwards.