Skip to main content
noda
Find a siteFind land near the grid, clear of the constraints Risk screeningCheck a site and its documents, get go, hold or stop Continue developmentBuild the model, size the battery, plan the grid application Grid capacityRead the capacity map and the queue, estimate what is left Powered landFind the substations that can take the load, then the land All use cases
How it works FAQ
Log in Sign up Dashboard
Noda/Docs

Noda API and developer docs

The public API, the Markdown pages and the files agents read. Free, no key.

What is public

Noda is a web app for renewable energy developers at app.noda.energy. What you can read without an account is the content of this site, in three forms: a read-only JSON API, a Markdown version of every page, and the files that language models and search engines read (llms.txt, sitemap.xml).

The app itself has no public API yet. Projects, maps, chats and reports belong to signed-in accounts. For partner or API access, write to hello@noda.energy.

The content API

Base address https://noda.energy/api/v1. Requests are GET or HEAD, need no key and may come from any origin (Access-Control-Allow-Origin: *). Answers are JSON, Content-Type: application/json; charset=utf-8, and change only when the site does.

RequestoperationIdReturns
GET /api/v1getApiIndexList the API's endpoints and files
GET /api/v1/use-caseslistUseCasesList Noda's use cases
GET /api/v1/use-cases/{useCaseId}getUseCaseGet one use case
GET /api/v1/guideslistGuidesList the three guides
GET /api/v1/guides/{guideId}getGuideGet one guide
GET /api/v1/faqlistFaqList the frequently asked questions
GET /api/v1/pageslistPagesList the site's pages

The full description, with every schema and operation, is openapi.json (OpenAPI 3.1). Every operation has its own operationId, so it maps to one function an agent can call. /.well-known/api-catalog points to it (RFC 9727).

Example

One use case, trimmed to five fields:

curl https://noda.energy/api/v1/use-cases/screen
{
  "id": "screen",
  "title": "Screen a possible site",
  "summary": "Check the main grid, land and environmental questions before you pay for a detailed study.",
  "guide": {
    "id": "site-finding",
    "name": "Find a site",
    "url": "https://noda.energy/site-finding"
  },
  "askUrl": "https://app.noda.energy/home?ask=Screen%20my%20selected%20site%20in%20Romania%20for%20a%205%20MW%20solar%20project.%20Check%20grid%20access%2C%20land%20rights%20and%20use%2C%20terrain%2C%20access%20routes%20and%20environmental%20constraints%20at%20an%20early%20screening%20level.%20Explain%20which%20constraints%20could%20stop%20the%20project%2C%20which%20could%20change%20the%20design%2C%20and%20which%20need%20a%20specialist%20study.%20Compare%20a%20useful%20alternative%20where%20the%20evidence%20supports%20one.%20Give%20a%20go%2C%20hold%20or%20stop%20recommendation%20with%20reasons%2C%20missing%20evidence%20and%20the%20next%20practical%20checks.%20Do%20not%20treat%20a%20nearby%20grid%20line%20as%20proof%20of%20connection%20capacity.%0A%0AUse%20only%20project%20context%20and%20files%20that%20are%20actually%20available.%20Ask%20for%20critical%20missing%20inputs%20before%20drawing%20conclusions.%20Separate%20verified%20facts%2C%20assumptions%20and%20open%20questions.%20Reference%20sources%20and%20dates%20for%20material%20claims."
}

Errors

An address under /api that does not exist answers 404, and a method other than GET or HEAD answers 405, both as JSON with a code, a message and a hint:

{
  "error": {
    "status": 404,
    "code": "not_found",
    "message": "There is no endpoint at this address.",
    "hint": "The endpoints are listed at https://noda.energy/openapi.json.",
    "docs": "https://noda.energy/docs"
  }
}

Open Noda with a question

An agent can hand a person a link that opens Noda with a first message already written:

https://app.noda.energy/home?ask=<the message, URL-encoded>

A signed-in person gets a new project and the message is sent there. Anyone else signs up first, confirms the email, answers two short questions, and then the message is sent. Every use case in the API carries its own link as askUrl.

Markdown versions

Every page has a Markdown version at the same address with .md added (/index.md for the home page, /screening.md for /screening). It holds the page's text and links and leaves out the navigation, the styling and the scripts.

Every page also answers in Markdown when the request asks for it: send Accept: text/markdown to the page address. The answer is Content-Type: text/markdown; charset=utf-8 with Vary: Accept, and an address that does not exist answers 404 in Markdown too.

Noda for AI assistants (MCP)

Noda runs an MCP server, so Claude, ChatGPT, Cursor, VS Code and any MCP client can use it directly.

  • Public, no account: https://mcp.noda.energy/public. It lists Noda's use cases, guides and FAQ, offers each use case as a prompt, reads every page in Markdown, and makes an "open in Noda" link with a question.
  • Signed in, Pro accounts: https://mcp.noda.energy/mcp. The assistant signs in with OAuth (the company and the permissions are chosen on Noda's own page) and works with the projects, the map, sites and layers. Owners and admins can also make API keys for company bots in Settings, Integrations.

In Claude: Settings, Connectors, Add custom connector, and paste the address. In other clients, add it as a remote MCP server (Streamable HTTP). Both MCP versions in use are supported (2025-11-25 and 2026-07-28).

Machine-readable files

  • /openapi.json: the API description (OpenAPI 3.1)
  • /.well-known/api-catalog: where the API and its description are
  • /llms.txt and /llms-full.txt: the site for language models
  • /sitemap.xml and /robots.txt: every page may be read

Contact

Questions about the API or the files, or a request for more: hello@noda.energy. More ways to reach us are on the contact page.

Find, screen and de-risk your next site today

Ask in plain words. Noda searches the grid, land and permit records, checks what can be built, and puts every answer on your map with its source.

Sign up How it works
How it works Use cases FAQ Risk screening Find a site Development Email us

© Noda · The AI workspace for renewable energy development

TIMPIA S.R.L. · CUI RO53544402 · J08/2046/2023 · Brașov, Romania

ContactAPI docsTrust and legalhello@noda.energyLinkedIn

·

  • Home
  • Use cases
    • Find a siteLand near the grid, clear of constraints
    • Risk screeningCheck a site, get go, hold or stop
    • Continue developmentModel, battery, grid application
    • Grid capacityCapacity map, queue, headroom
    • Powered landData center power and land
    • All use cases
  • How it works
  • Why Noda
  • FAQ
Log in Sign up Dashboard

Your privacy

Your privacy

Share only what's needed

Your question goes to the Noda app at app.noda.energy, where it runs on your project. Do not paste passwords or personal details the job does not need.

AI providers

Noda uses external AI model providers to answer. Each one is bound by a data processing agreement. To know which ones, write to hello@noda.energy.

Retention

We keep your project material while your account is open and delete it when you ask. Write to hello@noda.energy.

How AI works

How AI works

Noda uses AI to find and read grid, planning and environmental sources. AI can miss details or misread a document, and sources can be incomplete or out of date. Check the linked sources before you make a decision.

What could we improve?

What could we improve?

Add details before submitting.

This form is for website feedback only. We can't respond to personal questions or requests for customer support.