Straight answers

Frequently asked questions

No invented statistics, no marketing fluff — just the conventions, explained.

Should API endpoints use singular or plural nouns? +

Use plural nouns for collections: /users, not /user. The same path with an identifier addresses one item: /users/123. Plural-only is the dominant convention in modern APIs and keeps URL grammar consistent across the whole surface.

Can I put verbs in endpoint paths? +

Avoid it. The HTTP method is the verb: POST /orders, not /createOrder; GET /users/123, not /getUserById. The URL names the resource (a noun); the method names the action. Verbs in paths duplicate information and age badly.

How deep should I nest resources? +

One level of nesting is normal; two levels is a smell; three levels is almost always wrong. Deep paths couple your URLs to your data model and break whenever relationships change. Prefer top-level resources with query filters. See our nesting guide.

Where should the API version go? +

The most common approach is in the URL: /v1/users or /api/v1/users. It is visible in logs, bug reports and documentation, which makes debugging far easier than header-based versioning. Start at v1 explicitly from day one.

How do I name filter, sort and pagination? +

Use query parameters, not path segments: /users?status=active&sort=created&page=2&pageSize=20. The path identifies the resource; the query selects the view. Path segments like /users/active multiply endpoints and collide with IDs.

Kebab-case, snake_case or camelCase in paths? +

Kebab-case: /order-items. It is the web's native word separator, reads well in browser bars, and avoids the case-sensitivity inconsistencies that plague mixed-case URLs. Pick one style and enforce it everywhere.

Should I use trailing slashes? +

No. /users, not /users/. A trailing slash that does nothing is noise, and inconsistent trailing slashes create duplicate-URL confusion across clients, caches and analytics.

Can I use file extensions like .json? +

No. The URL identifies the resource; the representation is negotiated with the Accept header or a query parameter. Extensions in paths confuse the resource/format boundary and lengthen every URL.

What does the EndpointEcho generator actually do? +

You type a resource name (and optionally a child resource), choose a base path, version and the actions you need. The tool normalizes names to plural kebab-case and assembles the full CRUD endpoint set with correct HTTP methods, {id} placeholders and a query example — all in your browser.

Is the EndpointEcho generator private? +

Yes. It runs entirely in your browser. Nothing is sent over the network, no cookies are set, and nothing is stored or tracked.

Are generated endpoints production-ready? +

The names follow standard REST conventions, but a real API needs auth, error formats, pagination contracts, rate limits and review. Treat the output as a convention-clean starting draft for docs, mocks and prototypes — then design the rest deliberately.

How do I handle actions that aren't CRUD? +

Model them as sub-resources or state transitions rather than verbs in the path: POST /orders/123/cancellation instead of /cancelOrder/123, or PATCH /orders/123 with {"status": "shipped"}. The resource stays a noun; the intent lives in the method or body.

Still stuck?

Generate a fresh endpoint set, or read the convention guides.

Open the machine