GeekyAnts for developers

Developer documentation, APIs and tools

Everything GeekyAnts publishes for developers building on what we make: a read-only public API over this siteโ€™s content, its OpenAPI specification, and the machine-readable documents an agent needs. Plus the command-line tools and npm packages behind our open-source projects.

Browsing rather than integrating? The open-source projects page showcases what we build and maintain โ€” gluestack-ui, NativeBase, Vue Native, React Native Aria, Flutter Starter and more. This page is the reference: what to call, what to install, and the exact command.

Public content API

A read-only JSON view of everything published on geekyants.com. No authentication, no keys, no sign-up โ€” every operation is a GET, nothing accepts input, and responses are cached for five minutes at the edge so you can poll freely. Version 1.0.0.

Base URL https://geekyants.com/api/public/v1 ยท specification /openapi.json

EndpointOperationReturns
GET /api/public/v1getApiIndexList the API's own operations
GET /api/public/v1/pageslistPagesList published marketing pages
GET /api/public/v1/serviceslistServicesList engineering and delivery service pages
GET /api/public/v1/industrieslistIndustriesList industry solution pages
GET /api/public/v1/consultinglistConsultingPagesList consulting practice pages
GET /api/public/v1/guideslistGuidesList long-form technical guides
GET /api/public/v1/bloglistBlogPostsList published blog posts
GET /api/public/v1/case-studieslistCaseStudiesList published client case studies
GET /api/public/v1/blog/{slug}getBlogPostGet one blog post, including its full text as Markdown
GET /api/public/v1/companygetCompanyProfileGet the GeekyAnts organisation profile

Parameters and limits

  • Every list operation takes page and per_page. per_page is clamped to 100; asking for more returns 100 rather than an error.
  • q filters a listing by a case-insensitive substring of the title or description. It is a directory filter, not a ranked search โ€” no stemming, no relevance order.
  • /api/public/v1/pages accepts category, one of Consulting, Services, Industries, Guides, Company.
  • A 502 means our content system could not be reached. It is never returned as an empty result set, so an outage cannot be mistaken for โ€œnothing publishedโ€. Retry.

What it does not serve

Only pages that are live and already indexable on this website โ€” the same set listed in the XML sitemap. There is no staff or author directory, no draft or scheduled content, no contact submissions, no internal identifiers, and no part of our content management system. If you need something that is not here, ask us.

Quickstart

Three requests that between them show the whole API. No key, no headers, nothing to set up.

List our engineering service pages

curl -s 'https://geekyants.com/api/public/v1/services?per_page=5'

Find blog posts about a topic

curl -s 'https://geekyants.com/api/public/v1/blog?q=react%20native&per_page=5'

Read one post in full, as Markdown

curl -s 'https://geekyants.com/api/public/v1/blog/{slug}' | jq -r '.data.markdown'

Building an agent or a tool integration? Point it at /openapi.json โ€” every operation carries a unique operation id, typed parameters and a response schema, so it converts straight into function-calling definitions.

Any page on this site will also answer with Markdown instead of HTML if you ask for it: send Accept: text/markdown and you get the pageโ€™s text with no markup to strip.

Errors, versioning and limits

What this API promises, and how you will be told if any of it changes. Worth reading once before you build against it.

Errors

Every failure returns the same shape, so you can branch on error.code without parsing prose.

{
  "error": {
    "code": "not_found",
    "message": "No such blog post.",
    "hint": "Check the path against the operations listed at /api/public/v1.",
    "docs": "https://geekyants.com/developers"
  }
}
  • bad_request (400) โ€” a parameter is wrong and you can fix it.
  • not_found (404) โ€” no such resource, or not one this API serves.
  • upstream_unavailable (502) โ€” an outage. Never read this as an empty result: it means we could not reach our content system, not that nothing is published. Retry; a Retry-After header accompanies it.

Versioning

The major version is in the path and repeated on every response โ€” successes and failures alike โ€” as API-Version: v1.

Within a major version fields are only ever added. An existing field will not change type, change meaning or disappear, so you can safely ignore fields you do not recognise. A breaking change means a new major version at a new path; the old one keeps working.

Deprecation

If a version is ever withdrawn you will be told first, on the responses themselves. Affected responses will carry Deprecation (RFC 9745) with the date the deprecation was declared, and Sunset (RFC 8594) with the date the version stops answering. Those two dates will be at least twelve months apart.

Neither header is sent today, because nothing is deprecated. Watch for them on any response rather than polling this page.

Rate limits

There is no enforced per-caller quota, and no sign-up. Responses are cached for five minutes at the edge, which is what keeps load off our content system, so polling is cheap and welcome.

Every response carries RateLimit-Policy: "public";q=600;w=60 โ€” an advisory fair-use ceiling of 600 requests a minute that we commit to honouring. Deliberately no RateLimit field reporting remaining quota is sent: nothing is counting, and a number nobody measures would make you throttle against a fiction. If you need more than the ceiling, ask us rather than working around it.

Machine-readable documents

Fixed paths, stable formats, generated from the live site rather than maintained by hand โ€” so none of them can fall behind what is published.

  • OpenAPI 3.1 specification /openapi.json

    The machine-readable description of the public content API. Load it into a client generator, an API console, or an agent's tool definitions.

  • llms.txt /llms.txt

    A short guide to the site for a language model: who GeekyAnts are, and the few dozen URLs that matter most.

  • llms-full.txt /llms-full.txt

    Every indexable page on the site, titled and described. Generated from the live site, so it cannot fall behind.

  • XML sitemap /sitemap.xml

    Every URL with its last-modified date and locale alternates, for a crawler that will read them all.

  • RSS feed /feed.xml

    The newest 50 News & Press articles, as RSS 2.0.

  • API catalogue /.well-known/api-catalog

    An RFC 9727 linkset pointing at the specification above. The standard place a client looks first.

CLI tools and npm packages

The command-line tools we publish. Versions are the latest on the npm registry at the time of writing; install with @latest to get the current one.

create-gluestack v5.0.3

Scaffolds a new project wired up with gluestack-ui. The quickest way from nothing to a running app.

npx create-gluestack@latest

gluestack-ui installation guide

gluestack-ui v5.0.3

Adds gluestack-ui components to an existing project, one at a time, as source you own.

npx gluestack-ui add button

gluestack.io

native-base v3.4.28

The NativeBase component library for React Native โ€” thousands of pre-built screens and components.

npm install native-base

NativeBase documentation

Open source and contributing

Our libraries are developed in the open, on GitHub. Issues, discussions and pull requests are welcome on any of them.

Something missing, or an endpoint you need? Get in touch โ€” this page and the API behind it are maintained alongside the site, and we would rather add what you need than have you scrape it.

The Right Conversation Can

Save You Six Months.

Book a call