Docs
NEAR Catalog API
The NEAR Catalog public API returns the projects, categories and tags of the NEAR Protocol ecosystem directory as JSON. It is read-only, needs no API key and is the same data that powers nearcatalog.xyz.
This page is the single source of truth for the API. The same Markdown is served raw at /docs.md, so you can paste it straight into an LLM prompt or fetch it from an agent.
Overview
| Property | Value |
|---|---|
| Base URL | https://api.nearcatalog.xyz |
| Protocol | HTTPS, GET only |
| Authentication | None. No API key or token is required. |
| Response format | JSON (Content-Type: application/json; charset=utf-8) |
| CORS | Responses include Access-Control-Allow-Origin: *, so browsers can call the API directly. |
Things to know before you start:
- Project lists are returned as an object keyed by project slug, not as an array. Use
Object.values(...)(JavaScript) or.values()(Python) to iterate. - Pagination is not documented for list endpoints.
/projectsreturns every matching project in one response;/new-projectsaccepts alimit. - Errors are not normalised. An unknown
pidreturns HTTP 200 with the JSON valuefalse, an unknowncidreturns an emptydataobject, and an unknown route returns{"error":"Route not found"}. Check the response shape instead of relying on the HTTP status alone. - Tags and categories share one namespace. A category ID such as
dexis also a tag ID on projects. - Image URLs in responses point at
https://indexer.nearcatalog.xyz/....
Quick start for AI agents
- Read the category list once with
GET /categoriesto learn validcidvalues. - Find projects with
GET /search?kw=<keyword>orGET /projects-by-category?cid=<category-id>. - Load full details for one project with
GET /project?pid=<slug>. Theslugfield of any list item is thepid. - Link people to the human-readable site with
https://nearcatalog.xyz/project/<slug>, or fetchhttps://nearcatalog.xyz/project/<slug>.mdfor a Markdown summary.
# Find privacy projects, then read one in full
curl -s "https://api.nearcatalog.xyz/search?kw=privacy"
curl -s "https://api.nearcatalog.xyz/project?pid=nym"Other machine-readable entry points:
- /llms.txt - site summary, categories and a list of projects for LLMs.
- /llms-full.txt - the full concatenated knowledge file.
- /llms-index.txt - index of every per-project and per-category Markdown page.
- /docs.md - this document as raw Markdown.
The project object
Every endpoint that returns projects uses the same shape. Lists contain a trimmed version; GET /project adds the long fields.
| Field | Type | Description |
|---|---|---|
slug | string | Unique project ID. Use it as pid. |
profile.name | string | Project name. |
profile.tagline | string | One-line description. |
profile.image.url | string | Logo URL. |
profile.tags | object | Map of tag ID to display name, for example {"dex": "DEX"}. |
profile.published_date | integer | Unix timestamp (seconds) when the project was published. |
profile.updated_date | integer | Unix timestamp (seconds) of the last update. |
profile.updated_at | string | Last update as YYYY-MM-DD HH:mm:ss. |
profile.phase | string | Project phase: mainnet, testnet, prototype, still building, inactive or scam. |
profile.status | string | Directory status: active or inactive. Can be an empty string. |
profile.lnc | object or string | Learn NEAR Club info as { "score": number, "slug": string }, or an empty string when none. |
GET/projects
List all projects. Optionally filter by directory status and project phase. Filters can be combined.
GET https://api.nearcatalog.xyz/projectsQuery parameters
| Name | Type | Required | Description |
|---|---|---|---|
status | string | No | Directory status: active or inactive. |
phase | string | No | Project phase: mainnet, testnet, prototype, still building, inactive or scam. |
Request
curl -s "https://api.nearcatalog.xyz/projects?status=active&phase=mainnet"Response
200 OK. An object keyed by slug. The real response contains one entry per project; only the first is shown here.
{
"ref-finance": {
"slug": "ref-finance",
"profile": {
"name": "Rhea Finance",
"tagline": "The Chain-Abstracted Liquidity Solution",
"image": {
"url": "https://indexer.nearcatalog.xyz/wp-content/uploads/2026/10/Rhea-Finance.jpg"
},
"tags": {
"dapp": "Dapp",
"defi": "DeFi",
"dex": "DEX"
},
"published_date": 1700812920,
"updated_date": 1790846775,
"updated_at": "2026-10-01 09:26:15",
"phase": "mainnet",
"status": "active",
"lnc": { "score": 70003, "slug": "reffinance" }
}
}
}The tags object above is shortened; real projects can carry more tags. Fields are described in The project object.
GET/project
Get the full record of one project, including description, links, token and contract data.
GET https://api.nearcatalog.xyz/project?pid={slug}Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
pid | string | Yes | Project slug, for example ref-finance. |
Request
curl -s "https://api.nearcatalog.xyz/project?pid=ref-finance"Response
200 OK. A single project object (not wrapped in a slug map). If the project does not exist the body is the JSON value false.
{
"slug": "ref-finance",
"profile": {
"name": "Rhea Finance",
"tagline": "The Chain-Abstracted Liquidity Solution",
"description": "Rhea is a chain-abstracted liquidity platform on NEAR ...",
"published_date": 1700812920,
"updated_date": 1790846775,
"updated_at": "2026-10-01 09:26:15",
"image": {
"url": "https://indexer.nearcatalog.xyz/wp-content/uploads/2026/10/Rhea-Finance.jpg"
},
"tags": { "dapp": "Dapp", "defi": "DeFi", "dex": "DEX" },
"dapp": "https://app.rhea.finance/points?code=Up5KDhU",
"linktree": {
"website": "https://www.rhea.finance/",
"twitter": "https://x.com/rhea_finance",
"medium": "https://rhea-finance.medium.com/",
"telegram": "https://t.me/rhea_finance",
"discord": "https://discord.com/invite/rheafinance",
"github": "https://github.com/ref-finance",
"nearsocial": "",
"potlock": "",
"whitepaper": "https://guide.ref.finance/",
"linkedin": "https://www.linkedin.com/company/ref-finance/",
"facebook": "",
"youtube": "",
"reddit": ""
},
"lnc": { "score": 70003, "slug": "reffinance" },
"phase": "mainnet",
"status": "active",
"contracts": { "": "" },
"tokens": {
"RHEA": {
"symbol": "RHEA",
"name": "RHEA",
"icon": {
"thumb": "https://assets.coingecko.com/coins/images/67682/standard/RHEA_Logo.png",
"small": "https://assets.coingecko.com/coins/images/67682/standard/RHEA_Logo.png"
},
"address": { "near": "token.rhealab.near", "aurora": "", "eth": null, "octopus": null },
"platform": { "coingecko": "rhea-2" }
}
}
}
}The description is shortened and the image and icon query strings are removed in this example. In the real response description is multi-line plain text, and the object after tokens may hold several tokens.
Response fields
In addition to the fields in The project object:
| Field | Type | Description |
|---|---|---|
profile.description | string | Long description. Plain text with newlines; may contain URLs. |
profile.dapp | string | URL of the live app. May be empty. |
profile.linktree | object | External links: website, twitter, medium, telegram, discord, github, nearsocial, potlock, whitepaper, linkedin, facebook, youtube, reddit. Missing links are empty strings. Some values (for example youtube) can be a channel name rather than a URL. |
profile.contracts | object or array | Associated contracts. Can be a placeholder such as { "": "" } when none are listed. |
profile.tokens | object | Tokens keyed by symbol, with symbol, name, icon, address per network and platform.coingecko. |
GET/related-projects
Get projects related to a given project.
GET https://api.nearcatalog.xyz/related-projects?pid={slug}Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
pid | string | Yes | Project slug to find related projects for. |
Request
curl -s "https://api.nearcatalog.xyz/related-projects?pid=ref-finance"Response
200 OK. An object keyed by slug, in the list shape described in The project object. Only the first of several entries is shown.
{
"nomo": {
"slug": "nomo",
"profile": {
"name": "NOMO",
"tagline": "Trading terminal for NEAR markets - discover launches, chart, track positions",
"image": {
"url": "https://indexer.nearcatalog.xyz/wp-content/uploads/2026/10/NOMO.jpg"
},
"tags": { "dapp": "Dapp", "dex": "DEX", "launchpad": "Launchpad" },
"published_date": 1790843234,
"updated_date": 1791564260,
"updated_at": "2026-10-09 16:44:20",
"phase": "mainnet",
"status": "active",
"lnc": ""
}
}
}GET/projects-by-category
List projects that belong to a category or tag. Set cid=trending to get the trending list.
GET https://api.nearcatalog.xyz/projects-by-category?cid={category-id}Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
cid | string | Yes | Category or tag ID, for example dex. Use trending for trending projects. Valid IDs come from GET /categories. |
Request
curl -s "https://api.nearcatalog.xyz/projects-by-category?cid=dex"
curl -s "https://api.nearcatalog.xyz/projects-by-category?cid=trending"Response
200 OK. Category metadata plus a data object keyed by slug. Only the first project is shown.
{
"cat_title": "DEX",
"cat_slug": "dex",
"cat_desc": "",
"data": {
"ref-finance": {
"slug": "ref-finance",
"profile": {
"name": "Rhea Finance",
"tagline": "The Chain-Abstracted Liquidity Solution",
"image": {
"url": "https://indexer.nearcatalog.xyz/wp-content/uploads/2026/10/Rhea-Finance.jpg"
},
"tags": { "dapp": "Dapp", "defi": "DeFi", "dex": "DEX" },
"published_date": 1700812920,
"updated_date": 1790846775,
"updated_at": "2026-10-01 09:26:15",
"phase": "mainnet",
"status": "active",
"lnc": { "score": 70003, "slug": "reffinance" }
}
}
}
}Response fields
| Field | Type | Description |
|---|---|---|
cat_title | string or null | Display name of the category. |
cat_slug | string or null | Category ID. |
cat_desc | string or null | Category description. Often empty. |
data | object | Projects keyed by slug, in the list shape described in The project object. |
For cid=trending the three cat_* fields are null. An unknown cid returns null for all three and an empty data.
GET/categories
List every category and tag ID with its display name.
GET https://api.nearcatalog.xyz/categoriesQuery parameters
None.
Request
curl -s "https://api.nearcatalog.xyz/categories"Response
200 OK. A flat object mapping category ID to display name. The real response has many more entries (for example defi, nft, infrastructure); four are shown here.
{
"dapp": "Dapp",
"infrastructure": "Infrastructure",
"utilities": "Utilities",
"other": "Other"
}GET/search
Search projects by keyword. Matches title, tag ID, category ID and description.
GET https://api.nearcatalog.xyz/search?kw={keyword}Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
kw | string | Yes | Search keyword. URL-encode spaces and special characters. Without kw the response is an empty array []. |
Request
curl -s "https://api.nearcatalog.xyz/search?kw=privacy"Response
200 OK. An object keyed by slug, in the list shape described in The project object. Only the first match is shown.
{
"nym": {
"slug": "nym",
"profile": {
"name": "Nym",
"tagline": "The next generation of privacy infrastructure.",
"image": {
"url": "https://indexer.nearcatalog.xyz/wp-content/uploads/2026/10/Nym.jpg"
},
"tags": { "infrastructure": "Infrastructure", "privacy": "Privacy" },
"published_date": 1723339234,
"updated_date": 1791756157,
"updated_at": "2026-10-11 22:02:37",
"phase": "mainnet",
"status": "",
"lnc": ""
}
}
}GET/new-projects
List the most recently published projects.
GET https://api.nearcatalog.xyz/new-projects?limit={n}Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
limit | integer | No | Maximum number of projects to return. Without it, 50 projects are returned. |
Request
curl -s "https://api.nearcatalog.xyz/new-projects?limit=2"Response
200 OK. An object keyed by slug, in the list shape described in The project object. Only the first of the two entries is shown.
{
"near-mom": {
"slug": "near-mom",
"profile": {
"name": "near.mom",
"tagline": "Free, independent tools for NEAR builders and power users",
"image": {
"url": "https://indexer.nearcatalog.xyz/wp-content/uploads/2026/10/icon.png"
},
"tags": { "utilities": "Utilities", "developer-tooling": "Developer Tooling" },
"published_date": 1792024663,
"updated_date": 1792024669,
"updated_at": "2026-10-15 00:37:49",
"phase": "mainnet",
"status": "active",
"lnc": ""
}
}
}Other data sources
These are not part of the API above but are public and useful for agents:
- Awesome NEAR (curated resources) as Markdown:
https://raw.githubusercontent.com/nearcatalog/awesome-near/refs/heads/master/README.md - People and contributors on NEAR as JSON:
https://raw.githubusercontent.com/nearcatalog/nearcatalog-people/refs/heads/main/people-on-near.json