# Sample APIs

Zuplo maintains a variety of sample APIs that are all built with Zuplo. These
are free for anyone to use for testing or demos.

## Echo API

The echo API will accept any request and will return a JSON object with details
of that request. This API accepts all HTTP methods and any body content.

URL: https://echo.zuplo.io

GitHub: https://github.com/zuplo/echo-api

**Request**

```txt
POST https://echo.zuplo.io/my/path
content-type: application/json

{
  "hello": "world"
}
```

**Response**

```json
{
  "url": "https://echo.zuplo.io/my/path",
  "method": "POST",
  "query": {},
  "body": {
    "hello": "world"
  },
  "headers": {
    "accept-encoding": "gzip",
    "connection": "Keep-Alive",
    "content-length": "22",
    "content-type": "application/json",
    "host": "echo.zuplo.io"
  }
}
```

## E-Commerce API

This API is a large collection of fake e-commerce-type data.

URL: https://ecommerce-api.zuplo.io

GitHub: https://github.com/zuplo/ecommerce-api

Endpoints:

- `GET /users`: Returns a collection of user objects
- `GET /users/:id`: Returns a single user by `id`
- `GET /products`: Returns a collection of products
- `GET /products/:id`: Returns a single product by `id`
- `GET /transactions`: Returns a collection of transactions

## E-Commerce "Legacy" API

This is very similar to the E-Commerce API but with a different URL structure.

URL: https://ecommerce-legacy.zuplo.io

GitHub: https://github.com/zuplo/ecommerce-legacy

Endpoints:

- `GET /objects?type=OBJECT_TYPE`: Returns a collection of the object type
- `GET /objects?type=OBJECT_TYPE&id=OBJECT_ID`: Returns a single object based on
  ID

Valid `type` values are `product`, `user`, and `transaction`.
