Spheriq APIapp.spheriq.ch ↗
Search Swiss foundations and nonprofits via the Spheriq API. Returns names, descriptions, categories, and target groups for organizations in Switzerland.
What is the Spheriq API?
The Spheriq.ch API provides access to Swiss foundations and nonprofit organizations through a single search_organizations endpoint that returns up to 7 structured fields per record, including title, description, categories, and target groups. You can run free-text queries against the full database, filter by organization type using form_of_impact, and paginate results across the complete Spheriq nonprofit registry.
curl -X GET 'https://api.parse.bot/scraper/a1c4bf29-d82d-4487-b46a-30ea8d32cc53/search_organizations?page=0&query=stiftung&hits_per_page=20&form_of_impact=grant_giving_organization' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace app-spheriq-ch-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Spheriq SDK — bounded, re-runnable; every call capped."""
from parse_apis.app_spheriq_ch_api import Spheriq, FormOfImpact, InvalidInput
client = Spheriq()
# Search for foundations matching "kultur" (culture), limited to 3 results
for org in client.organizations.search(query="kultur", limit=3):
print(org.title, org.categories, org.target_groups)
# Filter to grant-giving organizations only
item = client.organizations.search(
form_of_impact=FormOfImpact.GRANT_GIVING_ORGANIZATION, limit=1
).first()
# Typed error handling on an invalid filter
try:
for org in client.organizations.search(query="stiftung", limit=2):
print(org.title, org.description[:80])
except InvalidInput as e:
print("invalid input:", e)
print("exercised: organizations.search")
Search foundations and organizations in the Spheriq Swiss nonprofit database. Returns paginated results with name, description, categories (topics), target groups, and organizational metadata. Results are auto-iterated; the SDK walks pages automatically. An empty query returns all entries. Each item carries resolved human-readable category labels derived from the NKS classification system used in Swiss philanthropy.
| Param | Type | Description |
|---|---|---|
| page | integer | Zero-based page index for pagination. |
| query | string | Free-text search query matching organization/project names and descriptions. |
| hits_per_page | integer | Number of results per page (1-1000). |
| form_of_impact | string | Filter by organization type. Omitted returns all types. |
{
"type": "object",
"fields": {
"page": "current page index (zero-based)",
"items": "array of organization/foundation records with id, title, description, categories, target_groups",
"total_hits": "total number of matching records",
"total_pages": "total pages available",
"hits_per_page": "results per page"
},
"sample": {
"data": {
"page": 0,
"items": [
{
"id": 10650,
"slug": "stiftung-wisli",
"tags": [
"stiftung",
"Arbeitsintegration"
],
"type": "organization",
"title": "Stiftung Wisli",
"categories": [
"Social in General",
"Social",
"Assisted Living (Retirement Home, Impairment)",
"Health in General",
"Health"
],
"description": "",
"target_groups": [
"Switzerland",
"Elderly People",
"Men",
"Refugees and Migrants"
],
"form_of_impact": "non_profit_organization",
"organization_name": "",
"organization_slug": ""
}
],
"total_hits": 9646,
"total_pages": 1930,
"hits_per_page": 5
},
"status": "success"
}
}About the Spheriq API
What the API Returns
The search_organizations endpoint returns paginated records from the Spheriq Swiss nonprofit database. Each record in the items array includes an id, title, description, thematic categories (topics the organization addresses), and target_groups (the populations served). The response envelope also carries total_hits, total_pages, page, and hits_per_page so you can determine full result set size before iterating.
Query and Filter Parameters
The query parameter accepts free-text input matched against organization names and descriptions. Leave it empty to retrieve all records. The form_of_impact parameter narrows results to a specific organization type; omitting it returns all types. Page size is controlled by hits_per_page (1–1000), and page is zero-based. The SDK auto-iterates pages, so you can consume the full result set without manually incrementing the page index.
Pagination and Coverage
Results are zero-indexed via the page parameter. The total_hits field tells you the count of matching records for a given query, and total_pages tells you how many pages exist at your chosen hits_per_page setting. This makes it straightforward to size batch jobs or estimate how many organizations exist in any filtered subset of the Spheriq database.
The Spheriq API is a managed, monitored endpoint for app.spheriq.ch — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when app.spheriq.ch changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official app.spheriq.ch API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a directory of Swiss foundations filtered by thematic category for grant researchers
- Identify nonprofits serving specific target groups by querying the
target_groupsfield - Aggregate organization descriptions to train a classifier for Swiss civil-society topics
- Cross-reference Spheriq
titleandcategoriesdata with public donation records - Power a search interface for CSR teams matching company giving priorities to Swiss nonprofits
- Monitor the total count of organizations in specific
form_of_impacttypes over time
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Spheriq.ch offer an official developer API?+
What does `form_of_impact` filter, and what values can it take?+
form_of_impact parameter filters results to a specific organizational type as classified by Spheriq. The endpoint does not enumerate the allowed values in its response; you would need to explore the Spheriq site to identify valid type strings. Omitting the parameter returns all organization types.Does the API return contact details, addresses, or financial data for organizations?+
title, description, categories, target_groups, and basic metadata (id). Contact information, postal addresses, and financial figures are not included in the response. You can fork this API on Parse and revise it to add those fields if Spheriq exposes them on individual organization pages.Does the API support filtering by a specific category or topic rather than a free-text query?+
query for free-text search and form_of_impact for organization type. Filtering directly by a category slug from the categories field is not a supported parameter. The API returns categories in each record so you can filter client-side, or you can fork it on Parse and revise to add a category filter parameter.