SSpiderIQ
SSpiderIQ

Docs / api-reference/spidermail-views

SpiderMail Views

5 endpoints from the published OpenAPI import.

GET/api/v1/mail/views

List Views

List every view visible to the caller:

  • views the caller created (created_by = current_user_id), AND
  • NULL-owned views (client-wide, Bearer-created), AND
  • is_shared = TRUE views if include_shared=true.

Session users see their own views plus team-shared ones by default. Bearer-token callers see all NULL-owned views (there is no per-user scope).

Parameters

NameInTypeRequiredDescription
include_sharedquerybooleanfalseInclude team-shared views.
formatqueryanyfalseOutput format: json, yaml, or llm
Try it
Query

Examples

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

resp = httpx.get(
    "https://spideriq.ai/api/v1/mail/views",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/mail/views", {
  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/mail/views", 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/mail/views

Create View

Create a new saved view. is_shared defaults to false (default-private). created_by is filled from the session user; Bearer callers get NULL.

Try it

Examples

cURL
curl -X POST 'https://spideriq.ai/api/v1/mail/views' \
  -H 'Authorization: Bearer <token>' \
  -H 'Content-Type: application/json' \
  -d '{
  "name": "string",
  "color": "string",
  "filter_config": {
    "mailboxes": [
      "string"
    ],
    "unread_only": false,
    "starred_only": false,
    "has_attachments": true,
    "from_contains": "string",
    "subject_contains": "string",
    "labels": [
      "string"
    ],
    "received_after": "string",
    "received_before": "string",
    "outreach_classification": "string",
    "direction": "string"
  },
  "column_config": [
    {
      "key": "string",
      "width": 0,
      "visible": true
    }
  ],
  "sort_by": "date",
  "sort_direction": "DESC",
  "is_shared": false
}'
Python
import httpx

resp = httpx.post(
    "https://spideriq.ai/api/v1/mail/views",
    headers={"Authorization": "Bearer <token>", "Content-Type": "application/json"},
    json={"name": "string", "color": "string", "filter_config": {"mailboxes": ["string"], "unread_only": false, "starred_only": false, "has_attachments": true, "from_contains": "string", "subject_contains": "string", "labels": ["string"], "received_after": "string", "received_before": "string", "outreach_classification": "string", "direction": "string"}, "column_config": [{"key": "string", "width": 0, "visible": true}], "sort_by": "date", "sort_direction": "DESC", "is_shared": false},
)
resp.raise_for_status()
print(resp.json())
JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/mail/views", {
  method: "POST",
  headers: { "Authorization": "Bearer <token>", "Content-Type": "application/json" },
  body: JSON.stringify({"name": "string", "color": "string", "filter_config": {"mailboxes": ["string"], "unread_only": false, "starred_only": false, "has_attachments": true, "from_contains": "string", "subject_contains": "string", "labels": ["string"], "received_after": "string", "received_before": "string", "outreach_classification": "string", "direction": "string"}, "column_config": [{"key": "string", "width": 0, "visible": true}], "sort_by": "date", "sort_direction": "DESC", "is_shared": false})
});
const data = await resp.json();
console.log(data);
Go
package main

import (
	"net/http"
	"strings"
)

func main() {
	body := strings.NewReader(`{"name": "string", "color": "string", "filter_config": {"mailboxes": ["string"], "unread_only": false, "starred_only": false, "has_attachments": true, "from_contains": "string", "subject_contains": "string", "labels": ["string"], "received_after": "string", "received_before": "string", "outreach_classification": "string", "direction": "string"}, "column_config": [{"key": "string", "width": 0, "visible": true}], "sort_by": "date", "sort_direction": "DESC", "is_shared": false}`)
	req, _ := http.NewRequest("POST", "https://spideriq.ai/api/v1/mail/views", 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/mail/views/{view_id}

Get View

Get one saved view. Use ?format=yaml for agent-friendly output.

Card FMT.1 listed eleven lying routes, derived from the skill schema — which does not advertise format here. The MCP get_view tool does (packages/mcp-tools/src/mail/mail.ts), so this route had the same silent-200 defect on the surface the card did not read. It surfaced from the registry-wide parity guard, not from the list.

Parameters

NameInTypeRequiredDescription
view_idpathintegertrue
formatqueryanyfalseOutput format: json, yaml, or llm
Try it
Query

Examples

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

resp = httpx.get(
    "https://spideriq.ai/api/v1/mail/views/{view_id}",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/mail/views/{view_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/mail/views/{view_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/mail/views/{view_id}

Update View

Parameters

NameInTypeRequiredDescription
view_idpathintegertrue
Try it
Query

Examples

cURL
curl -X PATCH 'https://spideriq.ai/api/v1/mail/views/{view_id}' \
  -H 'Authorization: Bearer <token>' \
  -H 'Content-Type: application/json' \
  -d '{
  "name": "string",
  "color": "string",
  "filter_config": {
    "mailboxes": [
      "string"
    ],
    "unread_only": false,
    "starred_only": false,
    "has_attachments": true,
    "from_contains": "string",
    "subject_contains": "string",
    "labels": [
      "string"
    ],
    "received_after": "string",
    "received_before": "string",
    "outreach_classification": "string",
    "direction": "string"
  },
  "column_config": [
    {
      "key": "string",
      "width": 0,
      "visible": true
    }
  ],
  "sort_by": "string",
  "sort_direction": "string",
  "is_shared": true
}'
Python
import httpx

resp = httpx.patch(
    "https://spideriq.ai/api/v1/mail/views/{view_id}",
    headers={"Authorization": "Bearer <token>", "Content-Type": "application/json"},
    json={"name": "string", "color": "string", "filter_config": {"mailboxes": ["string"], "unread_only": false, "starred_only": false, "has_attachments": true, "from_contains": "string", "subject_contains": "string", "labels": ["string"], "received_after": "string", "received_before": "string", "outreach_classification": "string", "direction": "string"}, "column_config": [{"key": "string", "width": 0, "visible": true}], "sort_by": "string", "sort_direction": "string", "is_shared": true},
)
resp.raise_for_status()
print(resp.json())
JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/mail/views/{view_id}", {
  method: "PATCH",
  headers: { "Authorization": "Bearer <token>", "Content-Type": "application/json" },
  body: JSON.stringify({"name": "string", "color": "string", "filter_config": {"mailboxes": ["string"], "unread_only": false, "starred_only": false, "has_attachments": true, "from_contains": "string", "subject_contains": "string", "labels": ["string"], "received_after": "string", "received_before": "string", "outreach_classification": "string", "direction": "string"}, "column_config": [{"key": "string", "width": 0, "visible": true}], "sort_by": "string", "sort_direction": "string", "is_shared": true})
});
const data = await resp.json();
console.log(data);
Go
package main

import (
	"net/http"
	"strings"
)

func main() {
	body := strings.NewReader(`{"name": "string", "color": "string", "filter_config": {"mailboxes": ["string"], "unread_only": false, "starred_only": false, "has_attachments": true, "from_contains": "string", "subject_contains": "string", "labels": ["string"], "received_after": "string", "received_before": "string", "outreach_classification": "string", "direction": "string"}, "column_config": [{"key": "string", "width": 0, "visible": true}], "sort_by": "string", "sort_direction": "string", "is_shared": true}`)
	req, _ := http.NewRequest("PATCH", "https://spideriq.ai/api/v1/mail/views/{view_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/mail/views/{view_id}

Delete View

Parameters

NameInTypeRequiredDescription
view_idpathintegertrue
Try it
Query

Examples

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

resp = httpx.delete(
    "https://spideriq.ai/api/v1/mail/views/{view_id}",
    headers={"Authorization": "Bearer <token>"},
)
resp.raise_for_status()
print(resp.json())
JavaScript
const resp = await fetch("https://spideriq.ai/api/v1/mail/views/{view_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/mail/views/{view_id}", nil)
	req.Header.Set("Authorization", "Bearer <token>")
	resp, _ := http.DefaultClient.Do(req)
	defer resp.Body.Close()
}

Responses

StatusDescription
204Successful Response
422Validation Error