inTouch API Docs
Explore guides and reference to connect AI assistants and your own tools to inTouch.
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
Quickstart
Get your key from the app and make your first authenticated request in a few minutes.
Authentication
One personal key per user, sent as X-API-Key. How to find it, and how rotation works.
Conventions & errors
The response envelope, status codes, date formats and how partial batches are reported.
Roadmap
What a capability is made of, and which ones are being considered next.
# 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.