Dunn Infrastructure Group API & developer resources
Dunn Infrastructure Group publishes its services, projects, markets, service areas, and glossary as a public JSON API, and every page on this site as markdown. No API key, no registration, no rate limit on reads. This page is the index of everything a developer or an AI agent needs.
Start here
/openapi.jsonOpenAPI 3.1 specification. Every operation has a unique operationId, typed parameters, and a response schema, so it can be loaded directly as an LLM function-calling toolset.
/api/v1API index. The cheapest discovery call — returns every endpoint with a one-line description.
/agent-instructions.mdWhen to reach for Dunn Infrastructure Group, when not to, and how to call it. Written for AI agents.
/llms.txtCondensed plain-text summary of the company, services, service areas, licences, and site structure.
/sitemap.xmlEvery canonical URL on the site.
/robots.txtCrawl rules. AI crawlers are explicitly allowed.
Read endpoints
Base URL https://www.dunninfrastructuregroup.com. All read endpoints are unauthenticated, CORS-enabled, and cached at the edge for one hour.
| GET | /api/v1 | Index of every endpoint. |
| GET | /api/v1/company | Identity, licences, coverage, hours, and contact details. |
| GET | /api/v1/services | Every construction scope self-performed in house. |
| GET | /api/v1/services/{slug} | One service, with process and FAQs. |
| GET | /api/v1/projects | Projects. Filters: featured, service, city. |
| GET | /api/v1/projects/{slug} | One project case study. |
| GET | /api/v1/markets | Client types with a dedicated offering. |
| GET | /api/v1/markets/{slug} | One market offering. |
| GET | /api/v1/service-areas | Cities with crew coverage, with coordinates. |
| GET | /api/v1/service-areas/{slug} | One service area. |
| GET | /api/v1/glossary | Utility terminology. Filter: q. |
| GET | /api/v1/glossary/{slug} | One glossary term. |
Markdown content negotiation
This site follows the acceptmarkdown.com convention. Every page has a markdown representation with the same substance as the HTML. Responses carry Vary: Accept, so a cache can't hand you the wrong variant.
# Negotiate with the Accept header
curl -H "Accept: text/markdown" https://www.dunninfrastructuregroup.com/services/lift-station-services
# Or append .md to any path
curl https://www.dunninfrastructuregroup.com/who-we-serve/data-centers.md
# Rejecting both available types returns 406
curl -i -H "Accept: application/pdf" https://www.dunninfrastructuregroup.com/Submitting a bid request
POST /api/v1/contact emails an estimator. It has a real-world side effect, so an agent should send it only when the person it represents has explicitly asked to be contacted, using that person's own details. Rate limited to 5 requests per minute per IP. For an emergency, call +1-912-663-1365 rather than posting.
curl -X POST https://www.dunninfrastructuregroup.com/api/v1/contact \
-H "Content-Type: application/json" \
-d '{
"firstName": "Dana",
"lastName": "Reyes",
"companyName": "Coastal Site Contractors",
"email": "dana@example.com",
"phone": "912-555-0134",
"heardAboutUs": "Referral",
"selectedServices": ["sanitary-sewer-construction", "lift-station-services"],
"timeline": "Q1 2027",
"additionalInfo": "42-lot subdivision in Rincon. Plans at 90%."
}'Errors
Every API failure is a JSON object, never an HTML page. Branch on error.code, which is stable, rather than on the message. error.hint always names the next action that resolves the failure.
{
"error": {
"code": "not_found",
"message": "No service exists with the identifier \"water-mains\".",
"hint": "List every valid service identifier at https://www.dunninfrastructuregroup.com/api/v1/services, then retry with one of those slugs.",
"status": 404,
"documentation_url": "https://www.dunninfrastructuregroup.com/developers"
}
}Codes in use: not_found, method_not_allowed, not_acceptable, invalid_request, rate_limited, internal_error.
Questions
Email contact@dunninfrastructuregroup.com or use the contact page. Content from this API may be quoted with attribution to Dunn Infrastructure Group.