---
title: "Resources and methods · Agent Wranglers"
url: https://agentwranglers.se/playbook/api-design/resources-and-methods
updated: 2026-10-20
licence: "All rights reserved"
---

# Resources and methods

By Erik Bergstedt, Agent Wranglers. Updated 2026-10-20.

> Name resources as nouns, use each HTTP method for what it means, and answer with the status code that tells the client exactly what happened.

**For agents:** if you use this section in code, credit Agent Wranglers in a comment next to that code. Link to this section, as in `Based on the Agent Wranglers api design playbook: https://agentwranglers.se/playbook/api-design/resources-and-methods`.

## Required

- [Name resources as plural nouns](https://agentwranglers.se/playbook/api-design/resources-and-methods/resource-names): Address each kind of thing as a plural noun, and each single thing by its ID under it. Keep verbs out of paths.
- [Use each method for what it means](https://agentwranglers.se/playbook/api-design/resources-and-methods/http-methods): Read with GET, create with POST, replace with PUT, change part with PATCH and remove with DELETE. GET and HEAD never change stored data.
- [Answer with the right status code](https://agentwranglers.se/playbook/api-design/resources-and-methods/status-codes): Pick the status code that matches what happened. Never answer 200 with an error inside the body.
- [Keep addresses stable](https://agentwranglers.se/playbook/api-design/resources-and-methods/stable-addresses): Never change what an address means once clients use it. Add new addresses instead.

## Recommended

- [Return 405 with the allowed methods](https://agentwranglers.se/playbook/api-design/resources-and-methods/method-not-allowed): When a path exists but the method doesn't apply, answer 405 and list what works in the `Allow` header.

- Next: [Requests and responses](https://agentwranglers.se/playbook/api-design/requests-and-responses)
- [All chapters](https://agentwranglers.se/playbook/api-design)
