# Tích hợp không mã

Mọi thứ trên các trang này được thực hiện chống lại production ngày 2026-09-17. Workflow cho n8n đã được nhập và chạy trong n8n thực tế; các bước cho Zapier và Make được viết dựa trên tài liệu riêng của các công cụ này, và các yêu cầu mà chúng tạo ra được gửi đúng như thế này.

## Nguồn gốc của yêu cầu

Điều này quyết định loại khóa nào cần.

- **Zapier, Make và n8n** gửi nó từ máy chủ của chúng. Cần khóa «Chỉ máy chủ» với phạm vi endpoint và ngân sách, như mô tả bên dưới. Hướng dẫn: [Zapier](/integrations/zapier/), [Make](/integrations/make/), [n8n](/integrations/n8n/).
- **Bubble** cũng gửi yêu cầu từ máy chủ của nó, và khóa nằm trong header, nơi nó vẫn ở: [Bubble](/integrations/bubble/).
- **FlutterFlow** được biên dịch thành ứng dụng mà người dùng giữ, vì vậy lời gọi phải được thực hiện ở chế độ riêng tư: [FlutterFlow](/integrations/flutterflow/).
- **Wix, Squarespace, Shopify, Webflow và Tilda** hiển thị trang trong trình duyệt của người truy cập. Nhúng widget, không phải khóa: [công cụ xây dựng website](/integrations/site-builders/).
- **WordPress** gọi từ máy chủ của bạn. Khóa được quản lý bởi [plugin AstroWay](https://wordpress.org/plugins/astroway/).

<Aside type="caution">
Khóa công khai `pk_` không hoạt động với Zapier, Make hay n8n. Nó từ chối yêu cầu không có origin từ danh sách của nó, và các công cụ này không gửi origin. Từ trang web nó chỉ lấy `/v1/public/*` và `/v1/embed/*`.
</Aside>

## Khóa cho tự động hoá

Mọi người có thể chỉnh sửa Zap, script hoặc workflow đều thấy khóa bên trong. Vì vậy, hãy cấp cho mỗi tự động hoá một khóa riêng và giới hạn nó theo những gì nó thực hiện.

1. Trong dashboard, mở [API-keys](https://api.astroway.info/dashboard/keys) và nhấn **Khóa mới**. Đặt tên cho nó dựa trên tự động hoá, ví dụ `zapier-intake-form`.
2. Trong trường **Nơi sẽ sử dụng khóa này?** để lại **Chỉ máy chủ**.
3. Sao chép khóa. Hộp thoại hiển thị toàn bộ một lần; sau này nó có thể truy cập qua **Hiển thị** trong menu khóa.
4. Trong menu khóa, mở **Phạm vi endpoint** và liệt kê các đường dẫn mà tự động hoá gọi, mỗi dòng một: `chart` cho bản đồ sinh, `public/horoscope/*` cho các cung hoàng đạo hàng ngày.
5. Trong cùng menu, mở **Đặt ngân sách** và chỉ định số credit mà khóa này có thể tiêu trong một chu kỳ.

Lời gọi ngoài danh sách nhận được `403 ENDPOINT_NOT_IN_SCOPE`. Khóa đã hết ngân sách nhận được `429 KEY_BUDGET_EXHAUSTED`, ngay cả khi tài khoản còn credit, vì vậy tự động hoá bị vòng lặp sẽ dừng ở số đã chỉ định. Cả hai giới hạn này hoạt động trên mọi gói và được mô tả trong mục [Xác thực](/authentication/).

## Gửi thời điểm sinh, không phải offset

Form cung cấp ngày, giờ trên đồng hồ và địa điểm. Gửi chúng như sau:

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

- **`timezone`** là tên vùng, và server tự tìm offset từ UTC mà đồng hồ của ngày đó giữ, bao gồm cả giờ mùa hè. Kyiv vào ngày 1990-05-15 dùng UTC+4, không phải +3: lỗi này xuất phát từ offset nhập tay. Gửi `auto` để lấy vùng từ tọa độ.
- **Không có `timezone` và không có offset** bản đồ được tính cho UTC. Phản hồi vẫn là `200`, vì vậy kiểm tra trường đã được ánh xạ.
- **`timezone` trống** bị từ chối với `400`, vì nếu không sẽ đọc trường trống như UTC.
- **`date`** ở định dạng `YYYY-MM-DD`, **`time`** ở định dạng `HH:MM:SS`. Nếu form lưu chúng khác, hãy dùng định dạng ngày trong công cụ.
- **Số có thể đến dưới dạng chuỗi.** `"latitude": "50.45"` được chấp nhận, và hầu hết các trường form gửi như vậy.
- **API không thực hiện geocode.** Tọa độ phải đến từ form hoặc từ bước geocode trong công cụ. Trường `city` chỉ là nhãn.

Quy tắc chuyển đổi đồng hồ và ngày trước năm 1970 được mô tả trong [định dạng trường](/agent-setup/field-formats/#timezone-назва-зони-замість-зсуву).

## Cách chuyển độ dài kinh độ thành cung

`POST /v1/chart` trả về độ theo độ trên cung hoàng đạo, trong wrapper `{ "ok": true, "data": { ... } }`. Cung được tính bằng `floor(longitude / 30)`, tính từ 0:

0 Bạch Dương, 1 Kim Ngưu, 2 Song Tử, 3 Cự Giải, 4 Sư Tử, 5 Xử Nữ, 6 Thiên Bình, 7 Bọ Cạp, 8 Nhân Mã, 9 Ma Kết, 10 Bảo Bình, 11 Song Ngư.

Nơi nằm ba giá trị phổ biến nhất:

- **Mặt Trời**: bản ghi trong `data.planets` với `"name": "Sun"`, đầu tiên.
- **Mặt Trăng**: bản ghi trong `data.planets` với `"name": "Moon"`, thứ hai.
- **Cung Thăng**: `data.houses.ascendant`.
- **Offset đã dùng**: `data.input.timezoneOffset`.

Ví dụ trên: Mặt Trời 54.34, vì vậy Kim Ngưu; Mặt Trăng 296.39, Ma Kết; Cung Thăng 159.26, Xử Nữ; offset 4.

## Chi phí

- `POST /v1/chart` tốn 20 credit. Bảng đầy đủ trên trang [Chi phí endpoint](/credits/).
- Yêu cầu giống nhau, gửi lại trong vòng năm phút, sẽ được trả về từ cache và không bị trừ credit. Lần chạy thử lặp lại cùng một body không tiêu tốn ngân sách.
- `GET /v1/public/horoscope/daily` không tốn credit. Không có khóa hoặc với khóa ở gói Free, nó tính vào giới hạn 30 yêu cầu mỗi giờ từ địa chỉ IP, và các nền tảng tự động hoá chia địa chỉ của chúng giữa các khách hàng. Khóa ở gói trả phí có giới hạn riêng.
