Overview

See the Field is an offline-first iOS app. Your progress, ratings, and study cards live on your device and sync only through your own iCloud account — there are no user accounts and no server-side profile.

As a result there is exactly one public API: the endpoint the app uses to report a piece of learning content that looks wrong. When you tap Report an issue on a quiz question, a concept card, or an animation, the app posts to this endpoint and the report lands in a moderation queue that is reviewed by hand.

The machine-readable description lives at /api/openapi.json (OpenAPI 3.1), and this API is listed in the site's API catalog per RFC 9727.

Base URL

https://famous-goshawk-386.convex.site

The API is served by Convex HTTP actions. Platform status is published at status.convex.dev.

Authentication

None. The endpoint is unauthenticated and write-only — there is no way to read reports back out, and no personal data is required or requested.

POST /api/content-report

Records a single content report. Returns 201 with an empty body on success.

Request body

JSON. Field names are accepted in either snake_case or camelCase; when both forms appear, snake_case wins. Every value is a string, and empty strings count as absent.

FieldRequiredDescription
content_typerequiredWhat is being reported — question, concept_card, animation, glossary.
surfacerequiredWhere in the app the report was raised — quiz, practice, learn, film_room.
reasonrequiredWhy it was reported — incorrect_answer, unclear_wording, wrong_diagram, typo, other.
question_idoptionalIdentifier of the reported quiz question.
concept_card_idoptionalIdentifier of the reported concept card.
concept_idoptionalCurriculum concept the content belongs to.
game_modeoptionalGame mode the report came from — formation_flash, coverage_read, play_call, counter_pick, film_room, daily_drive.
commentoptionalFree-text detail written by the user.
app_versionoptionalApp version, e.g. 1.0.5.
device_modeloptionalDevice identifier, e.g. iPhone15,3.
os_versionoptionaliOS version, e.g. 18.2.

Example

curl -X POST https://famous-goshawk-386.convex.site/api/content-report \
  -H "Content-Type: application/json" \
  -d '{
    "content_type": "question",
    "question_id": "ff-cover3-004",
    "game_mode": "formation_flash",
    "surface": "quiz",
    "reason": "incorrect_answer",
    "comment": "The listed formation is Trips Right, not Bunch Right.",
    "app_version": "1.0.5"
  }'

Responses

StatusMeaning
201Accepted and queued for review. Empty body.
400Body was not valid JSON, or a required field was missing. Returns {"error": "…"}.
500The report could not be stored. Returns {"error": "Internal server error"}.

Fair use

This endpoint exists so readers can flag genuine mistakes in the football content. Please don't use it for load testing or automated submission — junk reports slow down the review of real ones. If you've found a factual error in the app and would rather write to a human, [email protected] works just as well.

Related