List setup links for a customer
package main
import ( "fmt" "net/http" "io")
func main() {
url := "https://api.kirimdev.com/v1/customers/cus_01HXYZABCDEFGHJKMNPQRSTVWX/setup_links?status=active"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close() body, _ := io.ReadAll(res.Body)
fmt.Println(res) fmt.Println(string(body))
}const url = 'https://api.kirimdev.com/v1/customers/cus_01HXYZABCDEFGHJKMNPQRSTVWX/setup_links?status=active';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}use reqwest;
#[tokio::main]pub async fn main() { let url = "https://api.kirimdev.com/v1/customers/cus_01HXYZABCDEFGHJKMNPQRSTVWX/setup_links";
let querystring = [ ("status", "active"), ];
let mut headers = reqwest::header::HeaderMap::new(); headers.insert("Authorization", "Bearer <token>".parse().unwrap());
let client = reqwest::Client::new(); let response = client.get(url) .query(&querystring) .headers(headers) .send() .await;
let results = response.unwrap() .json::<serde_json::Value>() .await .unwrap();
dbg!(results);}curl --request GET \ --url 'https://api.kirimdev.com/v1/customers/cus_01HXYZABCDEFGHJKMNPQRSTVWX/setup_links?status=active' \ --header 'Authorization: Bearer <token>'Returns up to the 50 most-recent setup links — token plaintext is NEVER returned here (only at create time). Optional status query filters to active / consumed / expired / revoked.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”Public Kirimdev end-customer ID.
Example
cus_01HXYZABCDEFGHJKMNPQRSTVWXPublic Kirimdev end-customer ID.
Query Parameters
Section titled “Query Parameters ”Filter setup links by lifecycle state.
Example
activeFilter setup links by lifecycle state.
Responses
Section titled “ Responses ”Setup link list
object
Items in this page, ordered as documented by the operation.
object
Where the tenant is redirected after successful Embedded Signup. We append ?customer_id=&account_id=&status=success on the redirect.
Where the tenant is redirected on failure (link error, Meta signup cancelled, etc.). We append ?customer_id=&status=failed&reason=<code>.
Whether another page is available.
Pass this value unchanged as cursor to fetch the next page. null marks the final page.
Unique request identifier to include when contacting support.
Example
{ "data": [ { "id": "csl_01HXYZABCDEFGHJKMNPQRSTVWX", "object": "customer_setup_link", "status": "active" } ], "has_more": false, "next_cursor": null, "request_id": "req_01HXYZABCDEFGHJKMNPQRSTVWX"}Validation failure
object
object
Human-readable explanation of the error.
Request field associated with the error, when applicable.
Unique request identifier to include when contacting support.
Examples
A field value is invalid.
{ "error": { "type": "invalid_request_error", "code": "invalid_field_value", "message": "A field value is invalid.", "request_id": "req_01HXYZABCDEFGHJKMNPQRSTVWX" }}Authentication failure
object
object
Human-readable explanation of the error.
Request field associated with the error, when applicable.
Unique request identifier to include when contacting support.
Examples
The provided API key is invalid.
{ "error": { "type": "authentication_error", "code": "invalid_api_key", "message": "The provided API key is invalid.", "request_id": "req_01HXYZABCDEFGHJKMNPQRSTVWX" }}Billing / entitlement gate — subscription inactive, quota exceeded, or plan tier missing a feature (feature_not_entitled). Upgrade to continue.
object
object
Human-readable explanation of the error.
Request field associated with the error, when applicable.
Unique request identifier to include when contacting support.
Examples
Your current plan does not include this feature. Upgrade to continue.
{ "error": { "type": "permission_error", "code": "feature_not_entitled", "message": "Your current plan does not include this feature. Upgrade to continue.", "request_id": "req_01HXYZABCDEFGHJKMNPQRSTVWX" }}Resource not found
object
object
Human-readable explanation of the error.
Request field associated with the error, when applicable.
Unique request identifier to include when contacting support.
Examples
Resource not found.
{ "error": { "type": "not_found", "code": "resource_not_found", "message": "Resource not found.", "request_id": "req_01HXYZABCDEFGHJKMNPQRSTVWX" }}Rate limit exceeded
object
object
Human-readable explanation of the error.
Request field associated with the error, when applicable.
Unique request identifier to include when contacting support.
Examples
Rate limit exceeded.
{ "error": { "type": "rate_limit_error", "code": "rate_limit_exceeded", "message": "Rate limit exceeded.", "request_id": "req_01HXYZABCDEFGHJKMNPQRSTVWX" }}Internal server error
object
object
Human-readable explanation of the error.
Request field associated with the error, when applicable.
Unique request identifier to include when contacting support.
Examples
An unexpected error occurred.
{ "error": { "type": "api_error", "code": "internal_error", "message": "An unexpected error occurred.", "request_id": "req_01HXYZABCDEFGHJKMNPQRSTVWX" }}