SSpiderIQ
SSpiderIQ

Docs / api-reference/brands

Brands

21 endpoints from the published OpenAPI import.

GET/api/v1/brands

List My Brands

List all brands the current user is a member of.

Returns brands with the user's role in each brand. For super_admin, returns ALL brands with admin role.

Try it

Examples

cURL
curl -X GET 'https://spideriq.ai/api/v1/brands' \
  -H 'Authorization: Bearer <token>'
Python
import httpx

resp = httpx.get(
    "https://spideriq.ai/api/v1/brands",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/brands", {
  method: "GET",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
Go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://spideriq.ai/api/v1/brands", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}

Responses

StatusDescription
200Successful Response
POST/api/v1/brands

Create Brand

Create a new brand.

The current user becomes the owner of the brand.

Try it

Examples

cURL
curl -X POST 'https://spideriq.ai/api/v1/brands' \
  -H 'Authorization: Bearer <token>' \
  -H 'Content-Type: application/json' \
  -d '{
  "brand_name": "string",
  "slug": "string"
}'
Python
import httpx

resp = httpx.post(
    "https://spideriq.ai/api/v1/brands",
    headers={"Authorization": "Bearer <token>", "Content-Type": "application/json"},
    json={"brand_name": "string", "slug": "string"},
)
resp.raise_for_status()
print(resp.json())
JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/brands", {
  method: "POST",
  headers: { "Authorization": "Bearer <token>", "Content-Type": "application/json" },
  body: JSON.stringify({"brand_name": "string", "slug": "string"})
});
const data = await resp.json();
console.log(data);
Go
package main

import (
	"net/http"
	"strings"
)

func main() {
	body := strings.NewReader(`{"brand_name": "string", "slug": "string"}`)
	req, _ := http.NewRequest("POST", "https://spideriq.ai/api/v1/brands", body)
	req.Header.Set("Authorization", "Bearer <token>")
	req.Header.Set("Content-Type", "application/json")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}

Responses

StatusDescription
201Successful Response
422Validation Error
GET/api/v1/brands/{brand_id}

Get Brand

Get brand details.

User must be a member of the brand.

Parameters

NameInTypeRequiredDescription
brand_idpathintegertrue
Try it
Query

Examples

cURL
curl -X GET 'https://spideriq.ai/api/v1/brands/{brand_id}' \
  -H 'Authorization: Bearer <token>'
Python
import httpx

resp = httpx.get(
    "https://spideriq.ai/api/v1/brands/{brand_id}",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/brands/{brand_id}", {
  method: "GET",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
Go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://spideriq.ai/api/v1/brands/{brand_id}", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}

Responses

StatusDescription
200Successful Response
422Validation Error
PATCH/api/v1/brands/{brand_id}

Update Brand

Update brand details.

Requires admin or owner role in the brand.

Parameters

NameInTypeRequiredDescription
brand_idpathintegertrue
Try it
Query

Examples

cURL
curl -X PATCH 'https://spideriq.ai/api/v1/brands/{brand_id}' \
  -H 'Authorization: Bearer <token>' \
  -H 'Content-Type: application/json' \
  -d '{
  "brand_name": "string",
  "subscription_status": "inactive",
  "is_active": true,
  "billing_email": "user@example.com"
}'
Python
import httpx

resp = httpx.patch(
    "https://spideriq.ai/api/v1/brands/{brand_id}",
    headers={"Authorization": "Bearer <token>", "Content-Type": "application/json"},
    json={"brand_name": "string", "subscription_status": "inactive", "is_active": true, "billing_email": "user@example.com"},
)
resp.raise_for_status()
print(resp.json())
JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/brands/{brand_id}", {
  method: "PATCH",
  headers: { "Authorization": "Bearer <token>", "Content-Type": "application/json" },
  body: JSON.stringify({"brand_name": "string", "subscription_status": "inactive", "is_active": true, "billing_email": "user@example.com"})
});
const data = await resp.json();
console.log(data);
Go
package main

import (
	"net/http"
	"strings"
)

func main() {
	body := strings.NewReader(`{"brand_name": "string", "subscription_status": "inactive", "is_active": true, "billing_email": "user@example.com"}`)
	req, _ := http.NewRequest("PATCH", "https://spideriq.ai/api/v1/brands/{brand_id}", body)
	req.Header.Set("Authorization", "Bearer <token>")
	req.Header.Set("Content-Type", "application/json")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}

Responses

StatusDescription
200Successful Response
422Validation Error
GET/api/v1/brands/{brand_id}/settings

Get Brand Settings

Get brand settings. Requires admin access.

Parameters

NameInTypeRequiredDescription
brand_idpathintegertrue
Try it
Query

Examples

cURL
curl -X GET 'https://spideriq.ai/api/v1/brands/{brand_id}/settings' \
  -H 'Authorization: Bearer <token>'
Python
import httpx

resp = httpx.get(
    "https://spideriq.ai/api/v1/brands/{brand_id}/settings",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/brands/{brand_id}/settings", {
  method: "GET",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
Go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://spideriq.ai/api/v1/brands/{brand_id}/settings", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}

Responses

StatusDescription
200Successful Response
422Validation Error
PATCH/api/v1/brands/{brand_id}/settings

Update Brand Settings

Update brand settings. Requires admin access.

Parameters

NameInTypeRequiredDescription
brand_idpathintegertrue
Try it
Query

Examples

cURL
curl -X PATCH 'https://spideriq.ai/api/v1/brands/{brand_id}/settings' \
  -H 'Authorization: Bearer <token>' \
  -H 'Content-Type: application/json' \
  -d '{
  "default_rate_limit": 0,
  "default_campaign_quota_daily": 0,
  "default_campaign_quota_monthly": 0,
  "default_campaign_max_concurrent": 0,
  "default_campaign_max_locations": 0,
  "default_auto_campaign_enabled": true,
  "default_auto_campaign_rate_per_hour": 0,
  "default_auto_campaign_capacity_threshold": 0,
  "fuzziq_enabled": true,
  "opensearch_enabled": true,
  "brand_voice": "string",
  "brand_tone": "string",
  "brand_name_meaning": "string",
  "brand_promise": "string",
  "logo_url": "string"
}'
Python
import httpx

resp = httpx.patch(
    "https://spideriq.ai/api/v1/brands/{brand_id}/settings",
    headers={"Authorization": "Bearer <token>", "Content-Type": "application/json"},
    json={"default_rate_limit": 0, "default_campaign_quota_daily": 0, "default_campaign_quota_monthly": 0, "default_campaign_max_concurrent": 0, "default_campaign_max_locations": 0, "default_auto_campaign_enabled": true, "default_auto_campaign_rate_per_hour": 0, "default_auto_campaign_capacity_threshold": 0, "fuzziq_enabled": true, "opensearch_enabled": true, "brand_voice": "string", "brand_tone": "string", "brand_name_meaning": "string", "brand_promise": "string", "logo_url": "string"},
)
resp.raise_for_status()
print(resp.json())
JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/brands/{brand_id}/settings", {
  method: "PATCH",
  headers: { "Authorization": "Bearer <token>", "Content-Type": "application/json" },
  body: JSON.stringify({"default_rate_limit": 0, "default_campaign_quota_daily": 0, "default_campaign_quota_monthly": 0, "default_campaign_max_concurrent": 0, "default_campaign_max_locations": 0, "default_auto_campaign_enabled": true, "default_auto_campaign_rate_per_hour": 0, "default_auto_campaign_capacity_threshold": 0, "fuzziq_enabled": true, "opensearch_enabled": true, "brand_voice": "string", "brand_tone": "string", "brand_name_meaning": "string", "brand_promise": "string", "logo_url": "string"})
});
const data = await resp.json();
console.log(data);
Go
package main

import (
	"net/http"
	"strings"
)

func main() {
	body := strings.NewReader(`{"default_rate_limit": 0, "default_campaign_quota_daily": 0, "default_campaign_quota_monthly": 0, "default_campaign_max_concurrent": 0, "default_campaign_max_locations": 0, "default_auto_campaign_enabled": true, "default_auto_campaign_rate_per_hour": 0, "default_auto_campaign_capacity_threshold": 0, "fuzziq_enabled": true, "opensearch_enabled": true, "brand_voice": "string", "brand_tone": "string", "brand_name_meaning": "string", "brand_promise": "string", "logo_url": "string"}`)
	req, _ := http.NewRequest("PATCH", "https://spideriq.ai/api/v1/brands/{brand_id}/settings", body)
	req.Header.Set("Authorization", "Bearer <token>")
	req.Header.Set("Content-Type", "application/json")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}

Responses

StatusDescription
200Successful Response
422Validation Error
POST/api/v1/brands/{brand_id}/logo

Upload Brand Logo

Upload brand logo. Requires admin access.

The image will be:

  • Center-cropped to square
  • Resized to 256x256 max
  • Converted to WebP format

Parameters

NameInTypeRequiredDescription
brand_idpathintegertrue
Try it
Query

Examples

cURL
curl -X POST 'https://spideriq.ai/api/v1/brands/{brand_id}/logo' \
  -H 'Authorization: Bearer <token>' \
  -H 'Content-Type: application/json' \
  -d '{
  "file": "string"
}'
Python
import httpx

resp = httpx.post(
    "https://spideriq.ai/api/v1/brands/{brand_id}/logo",
    headers={"Authorization": "Bearer <token>", "Content-Type": "application/json"},
    json={"file": "string"},
)
resp.raise_for_status()
print(resp.json())
JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/brands/{brand_id}/logo", {
  method: "POST",
  headers: { "Authorization": "Bearer <token>", "Content-Type": "application/json" },
  body: JSON.stringify({"file": "string"})
});
const data = await resp.json();
console.log(data);
Go
package main

import (
	"net/http"
	"strings"
)

func main() {
	body := strings.NewReader(`{"file": "string"}`)
	req, _ := http.NewRequest("POST", "https://spideriq.ai/api/v1/brands/{brand_id}/logo", body)
	req.Header.Set("Authorization", "Bearer <token>")
	req.Header.Set("Content-Type", "application/json")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}

Responses

StatusDescription
200Successful Response
422Validation Error
DELETE/api/v1/brands/{brand_id}/logo

Delete Brand Logo

Delete brand logo. Requires admin access.

Parameters

NameInTypeRequiredDescription
brand_idpathintegertrue
Try it
Query

Examples

cURL
curl -X DELETE 'https://spideriq.ai/api/v1/brands/{brand_id}/logo' \
  -H 'Authorization: Bearer <token>'
Python
import httpx

resp = httpx.delete(
    "https://spideriq.ai/api/v1/brands/{brand_id}/logo",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/brands/{brand_id}/logo", {
  method: "DELETE",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
Go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("DELETE", "https://spideriq.ai/api/v1/brands/{brand_id}/logo", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}

Responses

StatusDescription
200Successful Response
422Validation Error
GET/api/v1/brands/{brand_id}/information

Get Brand Information

Get brand business information. Requires admin access.

Parameters

NameInTypeRequiredDescription
brand_idpathintegertrue
Try it
Query

Examples

cURL
curl -X GET 'https://spideriq.ai/api/v1/brands/{brand_id}/information' \
  -H 'Authorization: Bearer <token>'
Python
import httpx

resp = httpx.get(
    "https://spideriq.ai/api/v1/brands/{brand_id}/information",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/brands/{brand_id}/information", {
  method: "GET",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
Go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://spideriq.ai/api/v1/brands/{brand_id}/information", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}

Responses

StatusDescription
200Successful Response
422Validation Error
PATCH/api/v1/brands/{brand_id}/information

Update Brand Information

Update brand business information. Requires admin access.

Parameters

NameInTypeRequiredDescription
brand_idpathintegertrue
Try it
Query

Examples

cURL
curl -X PATCH 'https://spideriq.ai/api/v1/brands/{brand_id}/information' \
  -H 'Authorization: Bearer <token>' \
  -H 'Content-Type: application/json' \
  -d '{
  "company_name": "string",
  "website": "string",
  "description": "string",
  "industry": "string",
  "phone": "string",
  "mobile": "string",
  "street1": "string",
  "street2": "string",
  "city": "string",
  "state": "string",
  "postcode": "string",
  "country": "string",
  "tax_id": "string",
  "vat_id": "string",
  "support_email": "user@example.com",
  "linkedin": "string",
  "youtube": "string",
  "instagram": "string",
  "x": "string",
  "facebook": "string"
}'
Python
import httpx

resp = httpx.patch(
    "https://spideriq.ai/api/v1/brands/{brand_id}/information",
    headers={"Authorization": "Bearer <token>", "Content-Type": "application/json"},
    json={"company_name": "string", "website": "string", "description": "string", "industry": "string", "phone": "string", "mobile": "string", "street1": "string", "street2": "string", "city": "string", "state": "string", "postcode": "string", "country": "string", "tax_id": "string", "vat_id": "string", "support_email": "user@example.com", "linkedin": "string", "youtube": "string", "instagram": "string", "x": "string", "facebook": "string"},
)
resp.raise_for_status()
print(resp.json())
JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/brands/{brand_id}/information", {
  method: "PATCH",
  headers: { "Authorization": "Bearer <token>", "Content-Type": "application/json" },
  body: JSON.stringify({"company_name": "string", "website": "string", "description": "string", "industry": "string", "phone": "string", "mobile": "string", "street1": "string", "street2": "string", "city": "string", "state": "string", "postcode": "string", "country": "string", "tax_id": "string", "vat_id": "string", "support_email": "user@example.com", "linkedin": "string", "youtube": "string", "instagram": "string", "x": "string", "facebook": "string"})
});
const data = await resp.json();
console.log(data);
Go
package main

import (
	"net/http"
	"strings"
)

func main() {
	body := strings.NewReader(`{"company_name": "string", "website": "string", "description": "string", "industry": "string", "phone": "string", "mobile": "string", "street1": "string", "street2": "string", "city": "string", "state": "string", "postcode": "string", "country": "string", "tax_id": "string", "vat_id": "string", "support_email": "user@example.com", "linkedin": "string", "youtube": "string", "instagram": "string", "x": "string", "facebook": "string"}`)
	req, _ := http.NewRequest("PATCH", "https://spideriq.ai/api/v1/brands/{brand_id}/information", body)
	req.Header.Set("Authorization", "Bearer <token>")
	req.Header.Set("Content-Type", "application/json")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}

Responses

StatusDescription
200Successful Response
422Validation Error
GET/api/v1/brands/{brand_id}/members

List Brand Members

List all members of a brand.

User must be a member of the brand to view.

Parameters

NameInTypeRequiredDescription
brand_idpathintegertrue
Try it
Query

Examples

cURL
curl -X GET 'https://spideriq.ai/api/v1/brands/{brand_id}/members' \
  -H 'Authorization: Bearer <token>'
Python
import httpx

resp = httpx.get(
    "https://spideriq.ai/api/v1/brands/{brand_id}/members",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/brands/{brand_id}/members", {
  method: "GET",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
Go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://spideriq.ai/api/v1/brands/{brand_id}/members", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}

Responses

StatusDescription
200Successful Response
422Validation Error
PATCH/api/v1/brands/{brand_id}/members/{member_user_id}

Update Member

Update a member's role or position.

Requires admin access. Cannot modify owners.

Parameters

NameInTypeRequiredDescription
brand_idpathintegertrue
member_user_idpathstringtrue
Try it
Query

Examples

cURL
curl -X PATCH 'https://spideriq.ai/api/v1/brands/{brand_id}/members/{member_user_id}' \
  -H 'Authorization: Bearer <token>' \
  -H 'Content-Type: application/json' \
  -d '{
  "role": "owner",
  "position": "string",
  "status": "active"
}'
Python
import httpx

resp = httpx.patch(
    "https://spideriq.ai/api/v1/brands/{brand_id}/members/{member_user_id}",
    headers={"Authorization": "Bearer <token>", "Content-Type": "application/json"},
    json={"role": "owner", "position": "string", "status": "active"},
)
resp.raise_for_status()
print(resp.json())
JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/brands/{brand_id}/members/{member_user_id}", {
  method: "PATCH",
  headers: { "Authorization": "Bearer <token>", "Content-Type": "application/json" },
  body: JSON.stringify({"role": "owner", "position": "string", "status": "active"})
});
const data = await resp.json();
console.log(data);
Go
package main

import (
	"net/http"
	"strings"
)

func main() {
	body := strings.NewReader(`{"role": "owner", "position": "string", "status": "active"}`)
	req, _ := http.NewRequest("PATCH", "https://spideriq.ai/api/v1/brands/{brand_id}/members/{member_user_id}", body)
	req.Header.Set("Authorization", "Bearer <token>")
	req.Header.Set("Content-Type", "application/json")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}

Responses

StatusDescription
200Successful Response
422Validation Error
DELETE/api/v1/brands/{brand_id}/members/{member_user_id}

Remove Member

Remove a member from the brand.

Requires admin access. Cannot remove owners.

Parameters

NameInTypeRequiredDescription
brand_idpathintegertrue
member_user_idpathstringtrue
Try it
Query

Examples

cURL
curl -X DELETE 'https://spideriq.ai/api/v1/brands/{brand_id}/members/{member_user_id}' \
  -H 'Authorization: Bearer <token>'
Python
import httpx

resp = httpx.delete(
    "https://spideriq.ai/api/v1/brands/{brand_id}/members/{member_user_id}",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/brands/{brand_id}/members/{member_user_id}", {
  method: "DELETE",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
Go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("DELETE", "https://spideriq.ai/api/v1/brands/{brand_id}/members/{member_user_id}", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}

Responses

StatusDescription
200Successful Response
422Validation Error
GET/api/v1/brands/{brand_id}/invitations

List Brand Invitations

List invitations for a brand.

Requires admin access to the brand.

Parameters

NameInTypeRequiredDescription
brand_idpathintegertrue
statusqueryanyfalseFilter by status: pending, accepted, expired, canceled
Try it
Query

Examples

cURL
curl -X GET 'https://spideriq.ai/api/v1/brands/{brand_id}/invitations' \
  -H 'Authorization: Bearer <token>'
Python
import httpx

resp = httpx.get(
    "https://spideriq.ai/api/v1/brands/{brand_id}/invitations",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/brands/{brand_id}/invitations", {
  method: "GET",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
Go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://spideriq.ai/api/v1/brands/{brand_id}/invitations", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}

Responses

StatusDescription
200Successful Response
422Validation Error
POST/api/v1/brands/{brand_id}/invitations

Create Invitation

Invite a user to join the brand.

Requires admin access. Sends an email invitation.

Parameters

NameInTypeRequiredDescription
brand_idpathintegertrue
Try it
Query

Examples

cURL
curl -X POST 'https://spideriq.ai/api/v1/brands/{brand_id}/invitations' \
  -H 'Authorization: Bearer <token>' \
  -H 'Content-Type: application/json' \
  -d '{
  "email": "user@example.com",
  "role": "member"
}'
Python
import httpx

resp = httpx.post(
    "https://spideriq.ai/api/v1/brands/{brand_id}/invitations",
    headers={"Authorization": "Bearer <token>", "Content-Type": "application/json"},
    json={"email": "user@example.com", "role": "member"},
)
resp.raise_for_status()
print(resp.json())
JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/brands/{brand_id}/invitations", {
  method: "POST",
  headers: { "Authorization": "Bearer <token>", "Content-Type": "application/json" },
  body: JSON.stringify({"email": "user@example.com", "role": "member"})
});
const data = await resp.json();
console.log(data);
Go
package main

import (
	"net/http"
	"strings"
)

func main() {
	body := strings.NewReader(`{"email": "user@example.com", "role": "member"}`)
	req, _ := http.NewRequest("POST", "https://spideriq.ai/api/v1/brands/{brand_id}/invitations", body)
	req.Header.Set("Authorization", "Bearer <token>")
	req.Header.Set("Content-Type", "application/json")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}

Responses

StatusDescription
201Successful Response
422Validation Error
DELETE/api/v1/brands/{brand_id}/invitations/{invitation_id}

Revoke Invitation

Revoke a pending invitation.

Requires admin access.

Parameters

NameInTypeRequiredDescription
brand_idpathintegertrue
invitation_idpathintegertrue
Try it
Query

Examples

cURL
curl -X DELETE 'https://spideriq.ai/api/v1/brands/{brand_id}/invitations/{invitation_id}' \
  -H 'Authorization: Bearer <token>'
Python
import httpx

resp = httpx.delete(
    "https://spideriq.ai/api/v1/brands/{brand_id}/invitations/{invitation_id}",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/brands/{brand_id}/invitations/{invitation_id}", {
  method: "DELETE",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
Go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("DELETE", "https://spideriq.ai/api/v1/brands/{brand_id}/invitations/{invitation_id}", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}

Responses

StatusDescription
200Successful Response
422Validation Error
POST/api/v1/brands/{brand_id}/invitations/{invitation_id}/resend

Resend Invitation

Resend an invitation (generates new token, resets expiry).

Requires admin access.

Parameters

NameInTypeRequiredDescription
brand_idpathintegertrue
invitation_idpathintegertrue
Try it
Query

Examples

cURL
curl -X POST 'https://spideriq.ai/api/v1/brands/{brand_id}/invitations/{invitation_id}/resend' \
  -H 'Authorization: Bearer <token>'
Python
import httpx

resp = httpx.post(
    "https://spideriq.ai/api/v1/brands/{brand_id}/invitations/{invitation_id}/resend",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/brands/{brand_id}/invitations/{invitation_id}/resend", {
  method: "POST",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
Go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("POST", "https://spideriq.ai/api/v1/brands/{brand_id}/invitations/{invitation_id}/resend", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}

Responses

StatusDescription
200Successful Response
422Validation Error
GET/api/v1/brands/invitations/view/{token}

View Invitation By Token

View invitation details by token.

This is a public endpoint (no auth required) so users can see the invitation details before signing up/logging in.

Parameters

NameInTypeRequiredDescription
tokenpathstringtrue
Try it
Query

Examples

cURL
curl -X GET 'https://spideriq.ai/api/v1/brands/invitations/view/{token}' \
  -H 'Authorization: Bearer <token>'
Python
import httpx

resp = httpx.get(
    "https://spideriq.ai/api/v1/brands/invitations/view/{token}",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/brands/invitations/view/{token}", {
  method: "GET",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
Go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://spideriq.ai/api/v1/brands/invitations/view/{token}", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}

Responses

StatusDescription
200Successful Response
422Validation Error
POST/api/v1/brands/invitations/accept

Accept Invitation

Accept an invitation to join a brand.

The invitation token is obtained from the invitation email link. User must be logged in to accept. This endpoint uses session-only auth because the user may not be provisioned in dashboard_users yet.

Try it

Examples

cURL
curl -X POST 'https://spideriq.ai/api/v1/brands/invitations/accept' \
  -H 'Authorization: Bearer <token>' \
  -H 'Content-Type: application/json' \
  -d '{
  "token": "string"
}'
Python
import httpx

resp = httpx.post(
    "https://spideriq.ai/api/v1/brands/invitations/accept",
    headers={"Authorization": "Bearer <token>", "Content-Type": "application/json"},
    json={"token": "string"},
)
resp.raise_for_status()
print(resp.json())
JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/brands/invitations/accept", {
  method: "POST",
  headers: { "Authorization": "Bearer <token>", "Content-Type": "application/json" },
  body: JSON.stringify({"token": "string"})
});
const data = await resp.json();
console.log(data);
Go
package main

import (
	"net/http"
	"strings"
)

func main() {
	body := strings.NewReader(`{"token": "string"}`)
	req, _ := http.NewRequest("POST", "https://spideriq.ai/api/v1/brands/invitations/accept", body)
	req.Header.Set("Authorization", "Bearer <token>")
	req.Header.Set("Content-Type", "application/json")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}

Responses

StatusDescription
200Successful Response
422Validation Error
GET/api/v1/brands/invitations/pending

Get My Pending Invitations

Get pending invitations for the current user's email.

Useful to show invitations on the dashboard.

Try it

Examples

cURL
curl -X GET 'https://spideriq.ai/api/v1/brands/invitations/pending' \
  -H 'Authorization: Bearer <token>'
Python
import httpx

resp = httpx.get(
    "https://spideriq.ai/api/v1/brands/invitations/pending",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/brands/invitations/pending", {
  method: "GET",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
Go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://spideriq.ai/api/v1/brands/invitations/pending", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}

Responses

StatusDescription
200Successful Response
GET/api/v1/brands/admin/all

List All Brands

List all brands in the system.

Super admin only.

Try it

Examples

cURL
curl -X GET 'https://spideriq.ai/api/v1/brands/admin/all' \
  -H 'Authorization: Bearer <token>'
Python
import httpx

resp = httpx.get(
    "https://spideriq.ai/api/v1/brands/admin/all",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/brands/admin/all", {
  method: "GET",
  headers: { "Authorization": "Bearer <token>" }
});
const data = await resp.json();
console.log(data);
Go
package main

import (
	"net/http"
)

func main() {
	req, _ := http.NewRequest("GET", "https://spideriq.ai/api/v1/brands/admin/all", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}

Responses

StatusDescription
200Successful Response