Lewati ke konten utama

Aplikasi developer, kunci API, dan webhook

Buat aplikasi dan kunci API, uji di sandbox, kirim webhook, pasang aplikasi perusahaan lain, serta baca log permintaan dan pengeluaran per kunci.

Ditulis oleh Sarah Chen

Pengaturan Developer adalah tempat Anda menghubungkan Exayard dengan kode Anda sendiri dan dengan aplikasi yang dibuat perusahaan lain. Buka Pengaturan lalu Developer. Hanya admin perusahaan yang melihatnya di menu Pengaturan. Anggota yang membuka halaman ini dapat membacanya, tetapi tidak dapat mengubah apa pun.

Aplikasi, kunci API, webhook, dan log tersedia di setiap paket, termasuk Free. Hanya pekerjaan AI yang dikenai biaya.

Aplikasi

Aplikasi adalah salah satu integrasi Anda, seperti "Acme estimator" atau "Nightly sync". Setiap kunci API termasuk dalam sebuah aplikasi. Aplikasi adalah bagian pertama di halaman ini. Setiap anggota dapat membacanya. Hanya admin yang dapat membuat atau mengubah aplikasi.

Klik Aplikasi baru lalu isi Nama, Deskripsi, Halaman beranda, Email dukungan, dan Cakupan-nya. Cakupan dibagi menjadi baca dan tulis untuk setiap sumber daya, seperti read:projects dan write:estimates. Aplikasi tidak dapat meminta cakupan admin:org. Satu perusahaan dapat memiliki hingga 25 aplikasi.

Setiap aplikasi menampilkan kapan aplikasi itu dibuat dan batas lajunya, seperti "Hingga 60 permintaan per menit per perusahaan dan 600 secara keseluruhan". Menu Tindakan lainnya pada aplikasi berisi:

  • Edit mengubah detail dan cakupan aplikasi.

  • Webhook mengatur satu alamat yang menerima peristiwa dari setiap perusahaan yang memasang aplikasi.

  • Hapus aplikasi menghapus aplikasi dan mencabut semua kuncinya. Setiap perusahaan yang memasangnya kehilangan akses.

Kunci API

Kunci API memungkinkan kode Anda sendiri memanggil API Exayard. Kunci berada di dalam aplikasi, di bawah Kunci. Kunci berfungsi di perusahaan pemilik aplikasinya, sehingga Anda tidak perlu mengirimkan ID perusahaan.

Untuk membuatnya, klik Kunci baru di aplikasi. Beri kunci sebuah Nama, seperti "Production". Di bawah Cakupan, pilih Semua untuk semua cakupan yang dimiliki aplikasi, atau Tertentu untuk memilih lebih sedikit. Atur tanggal Kedaluwarsa opsional jika kunci tersebut untuk pekerjaan jangka pendek. Kunci berfungsi hingga akhir hari tersebut. Klik Buat.

Exayard menampilkan kunci lengkap satu kali. Salin saat itu juga, karena kunci tersebut tidak akan ditampilkan lagi. Exayard hanya menyimpan salinan teracak, sehingga kunci yang hilang tidak dapat dipulihkan. Buat kunci baru dan cabut kunci yang lama.

Kunci diawali exa_live_. Kunci yang dibuat di sandbox diawali exa_test_. Setelah Anda membuatnya, kunci menampilkan namanya, pratinjau seperti exa_live_...AbCd, dan Terakhir digunakan atau Belum pernah digunakan. Kunci dengan masa berlaku menampilkan Kedaluwarsa beserta tanggalnya, dan kunci yang sudah habis masa berlakunya menampilkan Sudah kedaluwarsa.

Satu aplikasi dapat memiliki hingga 25 kunci aktif. Kunci yang sudah kedaluwarsa tetap dihitung sampai Anda mencabutnya. Untuk mengganti kunci tanpa jeda, buat kunci kedua, pindahkan server Anda ke kunci tersebut, lalu cabut kunci pertama.

Buka menu Tindakan kunci pada kunci untuk Ganti nama atau Cabut. Pencabutan tidak dapat dibatalkan, dan kunci berhenti berfungsi dalam 30 detik.

Jika sebuah kunci muncul di tempat publik, seperti repositori kode publik, Exayard mencabutnya, mengirim email kepada admin Anda, dan tetap menampilkannya di daftar dengan tanda Ditemukan di ranah publik, dicabut.

Jika perusahaan lain telah memasang aplikasi Anda, dialog kunci baru juga menampilkan Berlaku di. Perusahaan ini adalah pilihan bawaan. Setiap perusahaan yang memasangnya membuat kunci yang digunakan server Anda di setiap perusahaan tersebut. Setiap panggilan kemudian menyebutkan perusahaannya di header Exayard-Organization-Id.

Kunci yang sama juga menghubungkan alat tanpa kode. Lihat Menghubungkan Exayard ke Zapier, Menghubungkan Exayard ke Make, dan Menghubungkan Exayard ke n8n. Untuk asisten AI, lihat Menghubungkan Exa ke asisten AI Anda.

Kunci lama

Kunci yang dibuat sebelum kunci berada di dalam aplikasi diawali ak_. Kunci ini tetap berfungsi, tetapi kunci baru jenis ini tidak dapat dibuat lagi. Kunci ini muncul di bawah Kunci lama di bagian bawah halaman, hanya selama masih ada.

Setiap admin melihat semua kunci perusahaan di sana, siapa pun pembuatnya. Kunci yang dibuat orang lain menampilkan Dibuat oleh beserta namanya. Setiap orang juga melihat kunci pribadinya sendiri. Klik ikon tempat sampah untuk Cabut kunci. Kunci langsung berhenti berfungsi.

Sandbox

Sandbox adalah perusahaan uji yang terhubung dengan perusahaan Anda. Gunakan sandbox untuk membangun dan menguji integrasi tanpa menyentuh proyek Anda yang sebenarnya. Hanya admin yang melihat Sandbox.

Klik Sandbox baru, beri Nama, lalu klik Buat. Satu perusahaan dapat memiliki hingga 5 sandbox. Buka memindahkan Anda ke sandbox, dan pengalih perusahaan menandainya sebagai Sandbox. Buat aplikasi dan kunci di sana seperti biasa. Kuncinya diawali exa_test_. Untuk mulai digunakan secara nyata, buat aplikasi dan kunci yang sama di perusahaan Anda yang sebenarnya, lalu ganti kunci di kode Anda.

Sandbox mengikuti paket perusahaan Anda, dan perusahaan Anda membayar penggunaannya. Sandbox tidak memiliki penagihan sendiri dan tidak mendapat penggunaan AI bulanan sendiri. Webhook dan integrasi berfungsi sama seperti di perusahaan Anda yang sebenarnya.

Sandbox tidak mengirim email berbagi penawaran atau salinan bertanda tangan kepada orang di luar sandbox, dan tidak mengirim SMS. Semua itu ditampilkan sebagai "Tidak dikirim karena perusahaan ini adalah sandbox". Undangan untuk bergabung ke sandbox tetap dikirim seperti biasa.

Takeoff dan pembacaan file di sandbox mengembalikan hasil yang disalin dari proyek contoh kami, tanpa biaya. Takeoff tersebut, halaman-halamannya, dan webhook penyelesaian Takeoff ditandai sebagai contoh. Estimasi, penawaran, pencarian elemen, dan chat juga menjawab dengan contoh, tanpa biaya.

Untuk menghapus sandbox, klik Hapus pada barisnya, lalu Hapus sandbox. Sandbox ditutup, kuncinya berhenti berfungsi, dan datanya dihapus kemudian.

Webhook

Webhook memberi tahu Exayard untuk mengirim notifikasi ke server Anda saat sesuatu terjadi di perusahaan Anda. Setiap anggota dapat membaca daftarnya. Hanya admin yang dapat menambahkan atau mengubah webhook.

Klik Buat webhook, masukkan URL yang akan menerima pengiriman, lalu tambahkan Deskripsi opsional. Pilih Peristiwa yang akan dikirim. Pilih Semua untuk menerima setiap peristiwa, termasuk peristiwa baru, atau Tertentu untuk memilih dari daftar. Setiap peristiwa dan isinya tercantum di katalog peristiwa webhook.

Saat Anda membuat webhook, Exayard menampilkan Secret penandatanganan satu kali. Salin saat itu juga, karena secret tersebut tidak akan ditampilkan lagi.

Buka menu Tindakan lainnya pada webhook untuk hal lainnya:

  • Edit mengubah URL, deskripsi, dan peristiwa, serta mengatur Status-nya menjadi Aktif atau Dijeda. Webhook yang dijeda tidak menerima pengiriman. Dialog ini juga memiliki Rotasi secret. Secret lama langsung berhenti berfungsi, jadi perbarui server Anda terlebih dahulu.

  • Kirim peristiwa uji mengirim satu peristiwa dengan Jenis peristiwa yang Anda pilih. Dialog menunggu jawaban server Anda lalu menampilkan hasil dan kode responsnya. Peristiwa uji membawa "test": true.

  • Pengiriman mencantumkan 25 pengiriman terakhir beserta peristiwa, status, kode respons, dan jumlah percobaannya. Pengiriman berstatus Tertunda, Mencoba ulang, Terkirim, atau Gagal. Admin dapat mengklik Kirim ulang untuk mengirim pengiriman lagi.

  • Hapus webhook menghentikan semua pengiriman ke URL tersebut.

Peristiwa uji dan kirim ulang dikirim satu kali dan tidak pernah dicoba ulang.

Mengamankan pengiriman webhook

Setiap pengiriman membawa header Exayard-Signature dengan format t=<unix>,v1=<digest>. Exayard membuat tanda tangan dengan menggabungkan stempel waktu dan body permintaan, lalu menandatanganinya dengan HMAC-SHA256 menggunakan secret webhook Anda.

Setiap pengiriman juga membawa header Exayard-Event-Id, Exayard-Event-Type, dan Exayard-Organization-Id. Body JSON memiliki kolom organizationId yang menyebutkan perusahaan asal peristiwa tersebut. Header membawa ID yang sama, sehingga Anda dapat merutekan pengiriman sebelum membaca body-nya. Tanda tangan mencakup seluruh body, termasuk organizationId.

Karena setiap pengiriman menyebutkan perusahaannya, satu alamat penerima dapat melayani banyak perusahaan. Daftarkan URL yang sama di setiap perusahaan dan rutekan setiap pengiriman berdasarkan organizationId. Setiap webhook memiliki secret-nya sendiri, jadi pilih secret berdasarkan Exayard-Organization-Id sebelum Anda melakukan verifikasi.

Untuk memverifikasi pengiriman, hitung ulang tanda tangan dengan secret Anda, pastikan stempel waktu berada dalam rentang lima menit dari waktu sekarang, lalu bandingkan digest-nya.

Pengiriman yang gagal dicoba hingga total 10 kali, selama sekitar 80 jam, dengan jeda yang makin lama di antara setiap percobaan. Setiap percobaan mengirimkan body yang sama dan ID peristiwa yang sama. Pengalihan dihitung sebagai kegagalan.

Izinkan perusahaan lain memasang aplikasi Anda

Aplikasi Anda langsung berfungsi di perusahaan Anda sendiri begitu dibuat. Setiap aplikasi juga memiliki bagian Izinkan perusahaan lain memasang aplikasi ini. Bagian ini menampilkan apakah aplikasi Sudah ditinjau, Peninjauan diminta, atau Belum ditinjau, Alamat masuk-nya, ID klien-nya, dan berapa banyak perusahaan yang dapat memasangnya.

Admin membuka menu Tindakan pemasangan untuk hal-hal berikut:

  • Edit alamat masuk mengatur alamat tujuan Exayard mengembalikan orang saat aplikasi Anda memasukkan mereka dengan akun Exayard mereka. Masukkan satu alamat per baris, hingga 10. Setiap alamat harus diawali https://, atau http://localhost selama Anda menguji. Saat pertama kali Anda menyimpan alamat masuk, Exayard menampilkan Secret klien aplikasi satu kali.

  • Salin tautan pemasangan menyalin tautan yang dapat Anda kirim ke perusahaan mana pun. Tautan ini membuka dialog pemasangan untuk admin perusahaan tersebut.

  • Minta peninjauan mengirim aplikasi ke dukungan Exayard untuk ditinjau.

Aplikasi baru dapat dipasang di hingga 25 perusahaan selain perusahaan Anda sendiri, dan tidak muncul di Cari aplikasi. Perusahaan di bawah Akun untuk pelanggan Anda tidak dihitung dalam batas tersebut. Setelah disetujui, aplikasi menampilkan Sudah ditinjau dan batas pemasangan dicabut. Gunakan Tampilkan di Cari aplikasi untuk mencantumkannya di direktori setiap perusahaan, atau Sembunyikan dari Cari aplikasi untuk menghapusnya dari sana. Aplikasi yang Ditangguhkan tidak dapat memanggil Exayard hingga dukungan mencabut penangguhannya, dan pemasangannya tetap disimpan.

Saat Anda menghapus cakupan dari aplikasi, setiap pemasangan langsung kehilangan cakupan tersebut. Saat Anda menambahkan cakupan, setiap perusahaan tetap memiliki akses saat ini hingga salah satu admin-nya menyetujui cakupan baru.

Webhook aplikasi

Buka menu Tindakan lainnya pada aplikasi lalu klik Webhook. Masukkan URL lalu klik Buat, kemudian salin Secret penandatanganan, yang hanya ditampilkan Exayard satu kali. Setiap perusahaan yang memasang aplikasi mengirimkan peristiwa yang tercakup dalam cakupan yang diberikannya. Aplikasi Anda juga menerima app.installed, app.scopes_approved, dan app.uninstalled saat sebuah perusahaan memasangnya, menyetujui akses yang lebih luas, atau menghapusnya. Pengiriman menyebutkan perusahaannya dan ditandatangani dengan cara yang sama seperti webhook lainnya.

Dialog yang sama memungkinkan Anda melakukan Jeda dan Lanjutkan pengiriman, Rotasi secret, dan Hapus webhook.

Aplikasi terhubung

Aplikasi terhubung mencantumkan aplikasi yang terpasang di perusahaan Anda. Setiap anggota dapat melihatnya. Hanya admin yang dapat memasang, menghapus, atau menyetujui.

Setiap baris menampilkan nama aplikasi, apakah aplikasi tersebut Sudah ditinjau, perusahaan yang membuatnya, siapa yang memasangnya dan kapan, serta cakupan yang diberikan.

Memasang aplikasi

Buka tautan pemasangan aplikasi, atau klik Pasang di sebelahnya di Cari aplikasi. Dialog menampilkan siapa yang membuat aplikasi, apakah aplikasi tersebut sudah ditinjau, dan cakupan yang dimintanya. Lalu pilih:

  • Perusahaan: perusahaan mana pun tempat Anda menjadi admin. Perusahaan yang sudah memiliki aplikasi tersebut ditandai (terpasang). Memasang lagi akan menyimpan pilihan baru Anda.

  • Proyek: Semua proyek, atau Hanya proyek ini lalu centang proyek yang boleh dijangkau aplikasi, hingga 500. Aplikasi tidak dapat menjangkau proyek lain di perusahaan tersebut.

  • Batas AI bulanan: biaya maksimum pekerjaan AI aplikasi bagi perusahaan Anda di setiap bulan penagihan, dalam mata uang penagihan Anda. Biarkan kosong untuk Tanpa batas.

Klik Pasang. Jika aplikasi memasukkan Anda dengan akun Exayard, Exayard kemudian membawa Anda untuk menyelesaikan proses masuk ke aplikasi. Jika Anda anggota tetapi bukan admin, dialog memberi tahu admin perusahaan mana yang dapat memasangnya. Klik Salin tautan untuk mengirimkannya kepada mereka.

Untuk mengubah proyek nanti, buka tautan pemasangan lagi dan pasang dengan pilihan baru.

Menyetujui akses tambahan

Saat aplikasi meminta cakupan tambahan, barisnya menampilkan Meminta akses lebih luas beserta cakupan barunya. Admin mengklik Setujui untuk memberikannya. Sampai saat itu, aplikasi tetap memiliki akses yang sudah dimilikinya.

Menghapus aplikasi

Buka menu Tindakan lainnya pada aplikasi, klik Hapus, lalu konfirmasi. Aplikasi langsung kehilangan akses ke perusahaan Anda dan webhook-nya berhenti. Pekerjaan AI yang sudah dimulainya tetap diselesaikan.

Cari aplikasi

Cari aplikasi muncul di dalam Aplikasi terhubung. Bagian ini mencantumkan aplikasi yang sudah ditinjau dan dipilih pembuatnya untuk dicantumkan. Aplikasi yang sudah dimiliki perusahaan Anda menampilkan Terpasang. Klik Pasang pada aplikasi lain mana pun untuk membuka dialog pemasangan.

Koneksi pribadi Anda

Koneksi pribadi Anda mencantumkan alat AI dan aplikasi lain yang Anda hubungkan ke akun Exayard Anda sendiri, seperti ChatGPT atau Claude. Bagian ini muncul di bagian atas Aplikasi terhubung, dan hanya Anda yang melihat koneksi Anda sendiri. Koneksi pribadi bertindak sebagai Anda, sehingga dapat menjangkau apa pun yang dapat Anda jangkau.

Setiap koneksi menampilkan kapan pertama dan terakhir kali digunakan, serta perusahaan tempat koneksi itu digunakan. Untuk menghentikannya, buka menu Tindakan lainnya, klik Hapus, lalu konfirmasi. Panggilan berikutnya akan ditolak. Koneksi tetap ada di daftar dengan tanda Dihapus, dan Izinkan lagi mengizinkannya masuk kembali. Untuk menghubungkan alat baru, lihat Menghubungkan Exa ke asisten AI Anda.

Akun untuk pelanggan Anda

Aplikasi Anda dapat membuat perusahaan Exayard melalui API untuk pelanggan yang menggunakan Exayard hanya melalui produk Anda. Perusahaan Anda memiliki perusahaan-perusahaan ini dan membayar pekerjaan AI yang dilakukan di dalamnya. Perusahaan ini tidak memiliki anggota sendiri, dan aplikasi Anda terpasang di dalamnya secara otomatis.

Akun untuk pelanggan Anda mencantumkannya untuk admin, dengan Nama setiap perusahaan dan tanggal perusahaan itu Dibuat. Klik Lepaskan lalu konfirmasi untuk menutupnya. Setiap aplikasi di dalamnya kehilangan akses.

Memulai

Kartu Mulai cepat berisi prompt siap pakai untuk editor AI seperti Claude atau Cursor. Klik Salin prompt lalu tempelkan ke editor Anda. Prompt tersebut mencakup URL dasar API, format autentikasi, cakupan, dan skema penandatanganan webhook, sehingga AI dapat membangun integrasi yang berfungsi dan menanyakan detail yang diperlukan kepada Anda. Hanya admin yang melihat kartu ini, karena kartu ini memerlukan kunci API.

Kartu Dokumentasi menautkan ke dokumentasi developer lengkap melalui Buka dokumentasi, dan ke Spesifikasi OpenAPI, yang menjelaskan setiap rute dan skema. Admin juga melihat Hubungkan ke Claude atau Cursor, yang membuka pengaturan untuk menghubungkan asisten AI ke Exayard.

Log

Log menampilkan permintaan yang dibuat ke API, dimulai dari yang terbaru. Setiap baris menampilkan Metode, Path, Status, Waktu, dan Latensi. Klik Muat lebih banyak di bagian bawah untuk melihat permintaan yang lebih lama.

Admin melihat setiap permintaan. Anggota hanya melihat permintaan yang tidak berasal dari aplikasi.

Admin dapat memfilter berdasarkan Aplikasi, lalu berdasarkan salah satu kunci aplikasi tersebut. Siapa pun dapat mengetik Pengguna akhir untuk melihat hanya permintaan pelanggan tersebut. Pengguna akhir adalah ID Anda sendiri untuk salah satu pelanggan Anda. Kode Anda mengirimkannya bersama setiap permintaan di header Exayard-End-User. Jangan pernah menggunakan alamat email sebagai ID.

Pilih sebuah baris untuk melihat detail lengkapnya, termasuk ID permintaan, aplikasi dan pengguna akhir, serta Body permintaan dan Body respons. Gunakan log untuk memastikan panggilan berhasil atau untuk mencari tahu mengapa integrasi gagal.

Pengeluaran per kunci dan pengguna akhir

Admin melihat pengeluaran setiap aplikasi bulan ini di Pengeluaran per aplikasi pada Pengaturan lalu Penggunaan. Aplikasi Anda sendiri juga tercantum di sana. Di bawah setiap aplikasi, Per kunci menampilkan pengeluaran setiap kunci, dan Pengguna akhir teratas menampilkan lima pengguna akhir dengan pengeluaran terbesar. Pengeluaran yang tidak terkait dengan salah satu kunci aplikasi ditampilkan sebagai Lainnya.

Batas AI bulanan

Batas AI bulanan aplikasi adalah biaya maksimum pekerjaan AI aplikasi tersebut bagi perusahaan Anda di setiap bulan penagihan. Untuk mengaturnya, buka menu Tindakan lainnya pada aplikasi di bawah Pengeluaran per aplikasi lalu klik Atur batas AI bulanan. Masukkan jumlah dalam mata uang penagihan Anda lalu klik Simpan. Simpan kolom kosong untuk menghapus batas.

Saat aplikasi mencapai batasnya, pekerjaan AI-nya ditolak selama sisa bulan penagihan, meskipun perusahaan Anda masih memiliki sisa penggunaan AI. Batas milik perusahaan Anda sendiri tetap berlaku. Pekerjaan AI yang dimulai sendiri oleh orang tidak pernah dihitung terhadap batas aplikasi.

Apakah pertanyaan Anda terjawab?