# Make

A scenario that sends a birth date, time, zone and coordinates to the API and maps the Sun, Moon and rising signs out of the answer. The request below was sent to production exactly as the module builds it; the Make steps follow Make's own documentation for version 4 of the HTTP app as of 2026-09-17. The HTTP app is available on Make's Free plan.

Before you start, create a key as described in [A key for an automation](/en/integrations/#a-key-for-an-automation), scoped to `chart`.

## 1. Add the HTTP module with a keychain

Add the **HTTP** app, module **Make a request**. Make recommends putting credentials in the dedicated field rather than in headers, and a keychain keeps the key out of the scenario itself.

1. **Authentication type**: API key.
2. **Credentials**: create a keychain. Give it a name, paste your key into **Key**, set the placement to **In the header** and the parameter name to `X-Api-Key`.

## 2. Build the request

- **URL**:

  ```
  https://api.astroway.info/v1/chart
  ```

- **Method**: `POST`.
- **Body content type**: `application/json`.
- **Body input method**: JSON string.
- **Body content**: the JSON below, with your trigger's values mapped in.
- **Parse response**: Yes.

```json
{
  "date": "1990-05-15",
  "time": "14:30:00",
  "timezone": "Europe/Kyiv",
  "latitude": "50.45",
  "longitude": "30.52"
}
```

Keep the quotes around each mapped value, numbers included: a mapped value goes into the JSON string as plain text, and the API accepts `"50.45"` as a number. **Parse response** set to Yes is what makes `data` mappable in the next module.

Run the module once. The output bundle carries `data.input.timezoneOffset` equal to `4` for the example: the offset Kyiv kept on that date.

## 3. Map the signs

In any later module, a field set to this formula gives the rising sign:

```
get(split("Aries,Taurus,Gemini,Cancer,Leo,Virgo,Libra,Scorpio,Sagittarius,Capricorn,Aquarius,Pisces"; ","); floor(ASCENDANT / 30) + 1)
```

with `ASCENDANT` replaced by the mapped `data.houses.ascendant`. The `+ 1` is there because `get()` counts from 1 while the sign number counts from 0. For the example, `floor(159.26 / 30) + 1` is `6`, and the sixth name is `Virgo`.

For the Sun and the Moon use the `longitude` of the first and second item of `data.planets`, which Make maps as `data.planets[1].longitude` and `data.planets[2].longitude`. For the example they give Taurus and Capricorn.

## When the module fails

- **`400 INVALID_FIELD` with `timezone` in `details`**: the mapped zone is empty, an abbreviation such as `EST`, or not a zone name.
- **`400` with `date` or `time` in `details`**: the trigger's format is not `YYYY-MM-DD` / `HH:MM:SS`; format it with `formatDate()` before the call.
- **`403 ENDPOINT_NOT_IN_SCOPE`**: the key's scope does not include `chart`.
- **`429 KEY_BUDGET_EXHAUSTED`**: the key reached its own budget; raise it in the dashboard.

<Aside type="note">
The API does not geocode. Make's Google Maps app can turn a place name into coordinates, and it needs a Google Cloud API key with billing enabled.
</Aside>
