Search Organizations - Stytch Docs
Documentation Index
Fetch the complete documentation index at: /docs/llms.txt
Use this file to discover all available pages before exploring further.
Search Organizations
cURL
curl --request POST \
--url https://api.stytch.com/v1/b2b/organizations/search \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"cursor": "<string>",
"limit": 1
}
'```
---
### Python Example
```python
import requests
url = "https://api.stytch.com/v1/b2b/organizations/search"
payload = {
"cursor": "<string>",
"limit": 1
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
JavaScript Example
const options = {
method: 'POST',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({cursor: '<string>', limit: 1})
};
fetch('https://api.stytch.com/v1/b2b/organizations/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
PHP Example
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.stytch.com/v1/b2b/organizations/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'cursor' => '<string>',
'limit' => 1
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
Response Codes
200: Successful response401: Unauthorized credentials429: Too many requests500: Internal server error
API Response Structure
{
"request_id": "<string>",
"organizations": [
{
"organization_id": "<string>",
"organization_name": "<string>",
"organization_logo_url": "<string>",
"organization_slug": "<string>",
"sso_jit_provisioning": "<string>",
"sso_jit_provisioning_allowed_connections": [
"<string>"
],
"sso_active_connections": [
{
"connection_id": "<string>",
"display_name": "<string>",
"identity_provider": "<string>"
}
],
"email_allowed_domains": [
"<string>"
],
"email_jit_provisioning": "<string>",
"email_invites": "<string>",
"auth_methods": "<string>",
"allowed_auth_methods": [
"<string>"
],
"mfa_policy": "<string>",
"rbac_email_implicit_role_assignments": [
{
"domain": "<string>",
"role_id": "<string>"
}
],
"mfa_methods": "<string>",
"allowed_mfa_methods": [
"<string>"
],
"oauth_tenant_jit_provisioning": "<string>",
"claimed_email_domains": [
"<string>"
],
"first_party_connected_apps_allowed_type": "<string>",
"allowed_first_party_connected_apps": [
"<string>"
],
"third_party_connected_apps_allowed_type": "<string>",
"allowed_third_party_connected_apps": [
"<string>"
],
"custom_roles": [
{
"role_id": "<string>",
"description": "<string>",
"permissions": [
{
"resource_id": "<string>",
"actions": [
"<string>"
]
}
]
}
],
"trusted_metadata": {},
"created_at": "<string>",
"updated_at": "<string>",
"organization_external_id": "<string>",
"sso_default_connection_id": "<string>",
"scim_active_connection": {
"connection_id": "<string>",
"display_name": "<string>",
"bearer_token_last_four": "<string>",
"bearer_token_expires_at": "<string>"
},
"allowed_oauth_tenants": {}
}
],
"results_metadata": {
"total": 123,
"next_cursor": "<string>"
},
"status_code": 123
}
Filter Reference
| Filter Name | Value Type | Description | Example |
|---|---|---|---|
organization_ids |
array[string] |
Filter by one or more exact organization IDs. | `[ |
| "organization-test-16d9ba61-97a1-4ba4-9720-b03761dc50c6" | |||
| ]` | |||
organization_slugs |
array[string] |
Filter by one or more exact organization slugs. | `[ |
| "acme-corp" | |||
| ]` | |||
organization_slug_fuzzy |
string |
Fuzzy search for organization by slug. Requires a minimum of three characters. | "acme" |
organization_name_fuzzy |
string |
Fuzzy search for organization by name. Requires a minimum of three characters. | "Acme" |
member_emails |
array[string] |
Filter by one or more exact member email addresses. | `[ |
| "member@example.com" | |||
| ]` | |||
member_email_fuzzy |
string |
Fuzzy search for organization by member email address. Requires a minimum of three characters. | "john" |
allowed_domains |
array[string] |
Filter by one or more exact allowed email domains. | `[ |
| "example.com" | |||
| ]` | |||
allowed_domain_fuzzy |
string |
Fuzzy search for organization by allowed email domain. Requires a minimum of three characters. | "exam" |
claimed_email_domains |
array[string] |
Filter by one or more exact claimed email domains. | `[ |
| "acme.com" | |||
| ]` | |||
has_active_sso_connection |
boolean |
Filter organizations by whether they have an active SSO connection (SAML, OIDC, or external). | true |
sso_connection_id |
string |
Filter by exact SSO connection ID (SAML, OIDC, or external). | "saml-connection-test-1234567890" |
Authorizations
Authorization: string
Required: Basic authentication header of the form Basic <encoded-value>, where <encoded-value> is the base64-encoded string username:password.
Request Body
cursor: string - Thecursorfield allows you to paginate through your results. Each result array is limited to 1000 results. If your query returns more than 1000 results, you will need to paginate the responses using thecursor.limit: integer- The number of search results to return per page. The default limit is 100. A maximum of 1000 results can be returned by a single search request. query: object - The optional query object contains the operator, i.e.,ANDorOR, and the operands that will filter your results.
Response
| Status Code | Description |
|---|---|
200 |
Successful response |
401 |
Unauthorized credentials |
429 |
Too many requests |
500 |
Internal server error |