The data model
GoDizzy organizes your configuration in a four-level hierarchy:Organization
Your organization is the top-level account, shared across your team. All members of an organization can see and edit production and staging environments. Development environments are personal — only their creator can see them.Environments
Environments isolate routing configurations from each other. An organization can have:- One production environment — shared, visible to all org members
- One staging environment — shared, visible to all org members
- One development environment per user — personal sandbox, only visible to its creator
Route collections
A route collection is a group of routing rules with a single target endpoint — the base URL GoDizzy uses when proxying requests. Each collection gets a stable subdomain:Routing rules
Rules are the core of GoDizzy. Each rule defines:- Match criteria — an HTTP method (or
*for any method) and a path pattern - Priority — a number; higher values are evaluated first
- Action —
mockorproxy
How rules are evaluated
When a request arrives at your gateway URL, GoDizzy evaluates your rules in priority order — highest priority number first. The first rule whose method and path both match the incoming request wins. No further rules are evaluated after a match.Request arrives
Your agent sends a request to
https://<subdomain>.godizzy.dev/api/payments/charge. GoDizzy identifies the route collection from the subdomain.Rules evaluated in priority order
GoDizzy checks each rule from highest priority to lowest. For each rule it asks: does the HTTP method match, and does the path pattern match the request path?
First match wins
The first rule that satisfies both criteria determines the response. GoDizzy stops evaluating once a rule matches.
Path matching
Rule paths support three matching styles:| Style | Example rule path | Matches |
|---|---|---|
| Exact | /api/users | Only /api/users |
| Parameter segment | /api/users/:id | /api/users/123, /api/users/abc, etc. |
| Wildcard | * | Any path |
/api/users?page=2 matches a rule with path /api/users.
Path matching is case-sensitive. Method matching is case-insensitive.
Mock vs proxy
Each routing rule has one of two actions.- Mock
- Proxy
When a rule’s action is mock, GoDizzy returns the fixture you configured — no request is ever forwarded to your backend.A mock response includes:
- A status code (for example,
200,429,500) - Optional response headers
- A JSON body
- An optional latency range (min and max milliseconds) — GoDizzy delays the response by a random amount within the range
Request flow
Here’s how a single request travels through GoDizzy:404 with code COLLECTION_NOT_FOUND. If no routing rule matches the request, GoDizzy returns a 404 with code NO_MATCHING_ROUTE. If the target endpoint is unreachable on a proxy rule, GoDizzy returns 502 with code PROXY_ERROR.
Error responses
GoDizzy returns structured JSON for all gateway-level errors:| Code | HTTP status | Meaning |
|---|---|---|
COLLECTION_NOT_FOUND | 404 | The subdomain doesn’t match any collection |
NO_MATCHING_ROUTE | 404 | No rule matched the incoming request |
PROXY_ERROR | 502 | The target endpoint returned an error or was unreachable |
INTERNAL_ERROR | 500 | An unexpected error occurred |
What doesn’t require agent changes
The following actions change routing behavior without any modification to your agent:- Toggling a rule between mock and proxy
- Updating a mock fixture (including rollback to a previous version)
- Changing latency ranges
- Adjusting rule priority
- Adding or removing rules
- Switching between environments (if you configure each environment separately)
Learn more
Environments
Production, staging, and per-user development environments in detail.
Route Collections
Subdomains, target endpoints, and collection copying.
Routing Rules
Method and path matching, priority, and the default rule.
Mock vs Proxy
When to use each action and how to switch between them.
