← Back

Developers

The guide as data: every dimension and skill, in thirteen languages, as public JSON. No key, no sign-up, no rate plan — take it. One rule: the attribution block ships in every payload, and it stays with any use.

Resources

GET /api/v1/

Discovery: versions, the language list, and every resource with its sha256 and size — verify a download with nothing but this index.

GET /api/v1/guides

The whole guide — five dimensions, twenty-five skills, text keyed by language on every node, all thirteen languages at once.

GET /api/v1/guides/{lang}

One language — the same shape with the text maps filtered, so there is one schema to learn, never two. cy, de, en, es, fr, it, nl, pt, sv, tr, ar, ja, sn.

The shape

A real excerpt of /api/v1/guides/en — first dimension, first skill — generated from the same bytes as the API itself, so this example cannot drift from what you will receive. Every skill carries a stable anchor and a url into the reading pages; every language carries its official PDF and release date from the shelf.

{
  "api_version": 1,
  "content_version": 1,
  "content_published_at": "2026-08-16",
  "license": {
    "attribution": "The Inner Development Guide is published by Inner Development Goals · innerdevelopmentgoals.org",
    "publisher_url": "https://innerdevelopmentgoals.org",
    "documents_url": "https://idg.guide/translations/",
    "note": "The guide text is the Inner Development Goals' own words, transcribed verbatim from the published guides. Keep this attribution with any use, and do not edit the text for style — corrections only against the source documents."
  },
  "languages": [
    {
      "code": "cy",
      "native_name": "Cymraeg",
      "rtl": false,
      "pdf_url": "https://idg.guide/overview/cy.pdf?download=Inner%20Development%20Guide%20%28Welsh%29.pdf"
    }
  ],
  "dimensions": [
    {
      "key": "being",
      "code": "B",
      "order": 1,
      "color": "#d4b88c",
      "url": "https://idg.guide/dimensions/#being",
      "text": {
        "en": {
          "title": "Being",
          "subtitle": "Cultivating Our Inner Life",
          "description": "Deepening our awareness of inner experiences and their dynamic relationship with the world around us nurtures embodied presence, clarity of purpose, and thoughtful responses when we face complexity."
        }
      },
      "skills": [
        {
          "code": "B1",
          "anchor": "inner-compass",
          "url": "https://idg.guide/skills/#inner-compass",
          "text": {
            "en": {
              "title": "Inner Compass",
              "description": "A deeply felt commitment to live and act in accordance with values and purposes that serve the good of the whole."
            }
          }
        }
      ]
    }
  ]
}

The index's shape

And a real excerpt of the discovery document at /api/v1/ — the first entry of each list, from the same bytes as the API. The full document carries every language and every resource; each resource's sha256 is the checksum of its exact bytes, so a download verifies against nothing but this index.

{
  "api_version": 1,
  "content_version": 1,
  "content_published_at": "2026-08-16",
  "documentation_url": "https://idg.guide/developers/",
  "license": {
    "attribution": "The Inner Development Guide is published by Inner Development Goals · innerdevelopmentgoals.org",
    "publisher_url": "https://innerdevelopmentgoals.org",
    "documents_url": "https://idg.guide/translations/",
    "note": "The guide text is the Inner Development Goals' own words, transcribed verbatim from the published guides. Keep this attribution with any use, and do not edit the text for style — corrections only against the source documents."
  },
  "languages": [
    {
      "code": "cy",
      "native_name": "Cymraeg",
      "rtl": false,
      "pdf_url": "https://idg.guide/overview/cy.pdf?download=Inner%20Development%20Guide%20%28Welsh%29.pdf"
    }
  ],
  "resources": [
    {
      "path": "/api/v1/guides",
      "sha256": "098808531ef84af83a0c3a4968b87d018e3e34b238c4b320c005b8607842163e",
      "bytes": 114589
    }
  ]
}

Field reference

Be a polite client

Caching works in two layers here, and they do different jobs. Freshness: responses carry Cache-Control: public, max-age=3600, so a copy you hold is good for an hour without asking anyone — and any cache between you and us may answer for us in that window. Revalidation: after the hour, don't re-download — ask. Responses carry strong ETags, and If-None-Match is honoured with a 304, an empty-bodied "you already have it" that resets the clock for headers' worth of bandwidth. The guide changes a few times a year, so a well-behaved consumer pays a handful of 304s a day and downloads a body only when content_version actually moved.

And the boundary that keeps this keyless: fetch on your server or at build time and serve the guide to your users yourself — don't make each of their devices call this API on every use. The files are free; being someone else's runtime is not, and traffic with that shape may be rate-limited or blocked.

The promises

/v1/ is additive-only: fields may appear, existing fields never change meaning or disappear. A breaking reshape would be /v2/, with /v1/ kept serving. Language lives in the path, never in content negotiation — one URL, one representation, one ETag. The text itself is the Inner Development Goals' own, transcribed verbatim from the published guides and verified against them; it changes only when the guide does, tracked by content_version and dated by content_published_at — the two move together.

The one rule

Keep the license.attribution line visible wherever the guide's words appear, and do not edit the text for style — it is Inner Development Goals', not ours, and not yours. That attribution is the entire price of the API.

Try it →