in inTouch Docs
Get your key

inTouch API Docs

Explore guides and reference to connect AI assistants and your own tools to inTouch.

Get started

One key, every capability

🍽

Fill a feed with meal ideas

Send detailed recipes into a user's feed, grouped by meal category. They swipe through them and build a day plan — and you can read back what they liked, so the next batch gets sharper.

curl -X POST https://api.in-touch.cc/api/addons/recipe/suggest \
  -H "X-API-Key: itk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "recipes": [ { "meal_category": "dinner", "title": "Oven Salmon" } ] }'
📚

Teach a language, adapt every day

Read the user's target language and level, push a set of exercises with their solutions, and read back every answer they got right and wrong. The app grades offline and syncs the results when it can.

curl -X POST https://api.in-touch.cc/api/addons/vocab/push \
  -H "X-API-Key: itk_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "language": "es",
        "questions": [ { "type": "translate", "prompt": "der Schlüssel",
                         "accepted": ["la llave"] } ] }'
◈

The same three moves, every time

Each capability follows one shape: read context so you know what the user wants, write content that shows up in their app, and read feedback so the next round is better. Learn it once and every future capability is familiar.

GET  /api/addons/<capability>/profile   # what does this user want?
POST /api/addons/<capability>/…        # send content into the app
GET  /api/addons/<capability>/history   # what happened with it?

Start here

inTouch API · https://api.in-touch.cc · keep your key private.
# intouch api
base    https://api.in-touch.cc
auth    X-API-Key: itk_<64 hex>   one key per user, no expiry, no scopes
docs    https://docs.in-touch.cc
format  every response is JSON and carries "success"

# overview
inTouch is an iOS app with a feed. This API lets an external tool or AI assistant
write content into that feed and read back what the user did with it.
One personal key, one namespace per capability, the same shape everywhere.

# capabilities
recipes     stable   meal suggestions into the feed, preferences back out
vocabulary  stable   language exercises in, right and wrong answers back out
more capabilities are planned; the key you hold already covers them

# the shape of every capability
GET  /api/addons/<capability>/profile   read context: what does this user want?
POST /api/addons/<capability>/...       write content into the app
GET  /api/addons/<capability>/history   read feedback: what happened with it?

# endpoints available today
POST /api/addons/recipe/suggest    push meal suggestions        -> /recipes.txt
GET  /api/addons/recipe/history    liked / disliked / open      -> /recipes.txt
GET  /api/addons/vocab/profile     status: active set, streak   -> /vocabulary.txt
POST /api/addons/vocab/push        replace the active set       -> /vocabulary.txt
GET  /api/addons/vocab/history     every answer, right or wrong -> /vocabulary.txt

# getting a key
The key is minted inside the app only: Settings > App & Media > inTouch API.
There is no endpoint that creates keys. Ask the user to paste theirs.

# asked to "set it up" for a user?
Both capabilities carry a full self-setup brief for agents - prompt file, first
push, guard script, scheduler per operating system - in the "self-setup" section
of /vocabulary.txt and /recipes.txt. Read the page before you touch anything.
Nothing about the user's preferences is stored server-side: those briefs write a
local prompt file instead.

# minimal example
curl "https://api.in-touch.cc/api/addons/vocab/profile" -H "X-API-Key: itk_YOUR_KEY"

# pages
/                  overview, capability list
/quickstart        get a key, first request
/authentication    key format, rotation, failure modes
/conventions       envelope, status codes, limits, dates
/recipes           recipes capability
/vocabulary        vocabulary capability
/roadmap           capability anatomy, what is planned
every page is also plain text: append .txt  (e.g. https://docs.in-touch.cc/vocabulary.txt)
all pages at once: /llms.txt (index) and /llms-full.txt (everything)

# for agents
- Use only the endpoints listed here; do not invent paths, fields or values.
- Check "success" in the body, not just the HTTP status.
- Error strings are German and developer-facing; branch on the status code.
- Batches are accepted partially: read "rejected" and "errors[].index".
- Dates are UTC. Calendar days are YYYY-MM-DD, timestamps are ISO 8601.
- The API key is a credential: never log it, never pass it to a third party.
- Ask the user before writing content into their app for the first time.