Skip to main content

Stonewake

ai.stonewake/stonewakeVersion 1.0.0

Seventeen read only tools over cited company, portfolio and country data for bank credit desks.

Status

Responds130 msAnswered our handshake without sign-in.

Registry data may be out of date

We could not refresh it, so this page shows the last copy.
Last checked
Nov 14, 2026, 13:33 UTC
Latency
130 ms
Remotes responding
1 of 1
Sign-in
API key
Hosting
EU hosting detected (detected, not a legal statement)
Registry data as of
Nov 14, 2026, 22:14 UTC

Data from the official MCP Registry, checked by run.zero. How we check

Connect

Streamable HTTP
https://mcp.stonewake.ai/mcpResponds130 ms
No sign-in

Claude Code

claude mcp add --transport http stonewake https://mcp.stonewake.ai/mcp --header 'Authorization: Bearer <YOUR_TOKEN>'

Replace <YOUR_TOKEN> before running.

Claude Desktop and claude.ai

Settings > Connectors > Add custom connector
Name: stonewake
Remote MCP server URL: https://mcp.stonewake.ai/mcp
This server expects the header Authorization.

Cursor

{
  "mcpServers": {
    "stonewake": {
      "url": "https://mcp.stonewake.ai/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

Replace <YOUR_TOKEN> before running.

VS Code

code --add-mcp '{"name":"stonewake","type":"http","url":"https://mcp.stonewake.ai/mcp","headers":{"Authorization":"Bearer <YOUR_TOKEN>"}}'

Replace <YOUR_TOKEN> before running.

Built your own server? run.zero hosts MCP servers on European infrastructure.

Host your own MCP server on run.zero

Tools

44 tools

Tools of Stonewake
Read-only
Idempotent
Open world
alert_channelsWhich alert channels deliver in the workspace: email, sms, teams, webhook and in_app, each with delivers (true or false) and, for a channel that is switched off, the reason. provider_unset means no delivery service is set up for the channel, demo_workspace that the workspace is a demonstration workspace where nothing on that channel leaves Stonewake, sms_limits_unset that the workspace's SMS limits are not set. test_receiver_only marks Teams and webhook channels that deliver to the Stonewake test receiver only. The same answer the dashboard's settings page shows. Takes no arguments.NoYesYesNo
alert_deliveriesThe delivery status of the workspace's alerts, newest first. Every attempt has a claim row (queued, or held_budget or held_quiet when it was not sent, digest when the fact arrived too old for an immediate alert) and an outcome row (sent or failed with its error_class). A delivered row means the receiver confirmed it (a signed webhook, or the SMS provider's final report), undelivered is the SMS provider's final negative report, and a dead_letter row closes an endpoint delivery whose failure is permanent or whose every retry is spent. Rows name the alert event by event_id and an endpoint by endpoint_id; a user's identity is not served. A key reads the deliveries of its own team's alerts and of workspace wide ones. Filter by event_id, status or channel. Paged with limit and offset; the response carries the exact total.NoYesYesNo
alert_eventsThe alert events of the workspace, newest first. Each names its event_class (risk_red, risk_amber, insolvency_notice, sanctions_candidate, tender_match, press_candidate or monitoring_finding), its severity (critical, high or info), the graph node_id and exposure_id of its subject, the source it stands on (source.kind and source.id), when the fact occurred and when the alert was written. An alert names ids only, never a name. A key reads its own team's events and the workspace wide ones. Filter by event_class or severity. Paged with limit and offset; the response carries the exact total.NoYesYesNo
audit_log_exportThe workspace's own audit log for a window of days: every recorded action with its time (UTC), action name, actor, the team it acted in, target, run, the model that served its model calls (several joined by +, unknown when that cannot be shown, never the planned model) and details, each an id, a count, a code or a time, in ledger order, including sign ins, single sign on provisioning and role changes, and member removals. Takes from and to as YYYY-MM-DD, both days included, at most 3653 days. Needs an API key a workspace administrator issued with the audit scope; any other key answers forbidden. The export itself is recorded in the audit log. Large windows are cut at the output cap, so ask for shorter windows.NoYesYesNo
company_eventsThe register event feed of one company: filings, status changes, and other register happenings, grouped into display rows and ordered by significance tier, each row citing its evidencing record where one exists. Takes node_id, the graph node id from search_companies hits. Related events arrive folded into one rollup row with a member_count and a group_key; pass that group_key as group to expand one rollup into its member events. A citation whose notice is set carries a text to show with the record; keep that notice with the record wherever it is quoted onward. For a company with a German register entry, insolvency_lookup states when your workspace last looked its German insolvency notices up (the portal allows single company lookups only, so they are only as complete as that lookup). Its state is pending while a lookup is queued (a company a person opened in the dashboard is looked up within minutes), then current with the date of the lookup; not_requested, with no timestamp, for a company no person of your workspace opened in the dashboard, screened, put into a dossier or holds in the portfolio, since reading this tool never asks for a lookup; and not_looked_up, with no timestamp, in any workspace where the lookups are not switched on. Show its note beside the feed.NoYesYesNo
company_financialsEvery financial figure for one company, newest reporting period first, each figure citing the source record it came from (a public register, a public filing repository, or the annual financial report the issuer published on its own website). Takes node_id, the graph node id carried by search_companies hits (not the entity_id of company_profile). Figures are served as filed at the source, except a figure with derived true, which the filing does not state and which was calculated from two figures the same filing states; its derivation says how in plain words. A missing period means nothing was filed, not zero.NoYesYesNo
company_financingThe debt surface of one company: registered charges with status lines and bound lenders, listed debt instruments, filed debt position facts, derived aggregates, a maturity wall, and per section coverage states saying how complete each section is. Takes node_id, the graph node id from search_companies hits. Long instrument books fold into the maturity wall; pass bucket (within_12m, 1_to_2y, 2_to_5y, beyond_5y, no_fixed_maturity or no_maturity) to expand one maturity slice. An instrument without a fixed maturity carries no_fixed_maturity true and no maturity date. Pass include_matured true to also list matured and delisted ones; coverage names an unstated debt half.NoYesYesNo
company_networkThe register neighborhood of one node: its officers, shareholders and beneficial owners, its holdings, branches and other register relations, each edge citing the register record that states it (register, record type, identifier, source URL, retrieval date), current edges before closed ones. Takes node_id, the graph node id from search_companies hits or from a previous network answer, so a neighbor expands the same way. Natural persons are served, with node_type person, only in workspaces where person data is switched on; elsewhere they and their edges are left out, and a person node_id answers not_found. edge_types keeps the named types only (for example officer_of,shareholder_of); limit caps the neighbors, default and maximum 200, and truncated says when it cut.NoYesYesNo
company_newsGlobal news coverage of the companies the workspace holds in its book or watches, and of the natural persons it watches where person data is switched on (node_type person), read from the GDELT Project's 15 minute files in English and machine translated from about 65 languages. Without node_id it lists the companies, each with its newest reading of a day read in full (the day in progress is never read in full and reads feed_gap), or latest null while no reading is stored, which says nothing about coverage. With node_id it returns that company's daily readings, newest first (days, default 30), and the newest 100 articles behind the newest one together with every article its events list: article_key, url, publisher_host, published_at, language, gdelt_tone and the matched_organization name. A reading's state is reading (tone_mean is the mean GDELT document tone of the articles in the 30 day window, article_keys cite the newest 100 of them and articles_window counts them all), too_little_coverage (fewer than three articles in a fully read window, no tone) or feed_gap (the day or a thin window not fully read, no tone). Tone is context beside the credit view and never part of the risk score. With node_id it also returns events, the company's serious news events of the same days: event_type (insolvency, sanctions, fraud, cyberattack, accident, legal_action, executive_exit, layoffs, strike or environment_rights, from GDELT's own theme codes under a reviewed mapping, never a model), severity, opened_at, detected_at, closes_at, the articles, independent sources and languages behind it, whether it raised an alert, the article_keys of its newest 20 articles, and its check: before any alert a model reads the event's articles and a deterministic gate keeps its verdict only when the cited article is one of the event's own and the quote is found in it verbatim; status is confirmed (only such an event alerts), not_confirmed (news to read, not a finding), pending, unchecked (the checkNoYesYesNo
company_overviewOne company the way the dashboard's Network view shows it, by node_id, the graph node id carried by search_companies hits (not the entity_id of company_profile). Answers the register identity, what the register records held for the company state (GLEIF, Companies House, a German register extract where one was read, SEC EDGAR, the Swiss gazette and the Marktstammdatenregister operator) in plain words, each fact with the record it cites and when that record was last confirmed, and the risk status. risk_state is portfolio when your team holds the company (risk then carries its portfolio assessment, as entity_risk_profile returns it), assessed when an assessment was made on the spot for your team, in_progress while one is being made, not_assessed with risk_reason allowance, failed or not_started, or sole_trader when the register states a natural person's business, which is never scored (risk then carries sole_trader true and no assessment). list_entry is set only for a German company known from the OffeneRegister.de list of 2017 to 2019 and not read from the register yet: its sentence says so, and its source line is the list's attribution; it is never a register fact. A tool call reads only and never starts an assessment. Pass locale de for the whole answer in German, the risk block included; codes stay as served. german_register is null unless the register number another source gave for the company belongs to another company's register sheet. It then carries state other_sheet and a note that says so, and the company's own German register entry has not been read.NoYesYesNo
company_profileOne registry row's identity from the closed Stonewake registry of named market participants (export credit agencies, multilaterals, development finance institutions, development banks, government agencies and banks, plus the trade publications deals cite): slug, display name, full name, kind and its label, country and location, aliases, and group memberships. Takes entity_id from the registry's own id space. This is NOT the node_id that search_companies returns and entity_risk_profile takes; the two id spaces are different. Both are whole numbers, so an id from the wrong space can name another record instead of answering not_found, and the answer names the record it read.NoYesYesNo
company_public_fundingPublic grants and state aid one company received, from the EU State aid Transparency Award Module, Kohesio and the Financial Transparency System, with totals per year and per programme. Takes node_id, the graph node id from search_companies hits. Each award cites its source record and states how it was bound to the company, always by an identifier and never by a name alone. Totals never add figures of a different basis or currency, and a range a source states stays a range (band_low_total and band_high_total). The tool reads only awards to organisations. State aid figures from TAM are aid granted, not aid paid, published only above the threshold of each measure and never for de minimis aid, and for a loan or a guarantee a figure may be the loan or guarantee itself.NoYesYesNo
company_recordsThe register records behind one company, a page at a time. Each row is a citation (register, record type, identifier, source URL, retrieval date), newest first. Takes node_id, the graph node id from search_companies hits. Every page states records_total, the company's whole count, and registers, each register's connector_id, name and count; pass one connector_id to page that register alone. A company listed in a securities register can hold over 100,000 records, so page with limit (default and maximum 25) and offset, and read registers first to decide what to page. A row whose notice is set carries a text to show with the record; keep that notice with the record wherever it is quoted onward.NoYesYesNo
company_regional_contextOfficial regional statistics beside one German company: the VGR der Länder tables of the Kreis (GDP, gross value added by industry, employment, population) and the Zensus 2022 housing figures of the Gemeinde and the Kreis (rents, vacancy, building age) its seat lies in, and the Regionalatlas indicators of the Kreis (population movement, business registrations and insolvencies, unemployment, disposable income), the BA labour market figures of the Kreis (registered unemployed, underemployment, the newest 13 months) and the Regionaldatenbank tables of the Gemeinde and the Kreis (corporate insolvencies by WZ 2008 section, Hebesätze), each with its table, period, retrieval time, source link and the attribution line, which must be shown with the figure. Takes node_id, the graph node id from search_companies hits. The seat is the register seat; only when no register extract states one is it the seat a German insolvency notice states, and region.seat_label then says so with the notice date. region states how the seat was joined to its official key (an exact name match only), or why no region is determined; missing lists in plain sentences what is not held. Aggregates for context only, never part of the company's score or status.NoYesYesNo
company_sector_contextOfficial German statistics beside one German company: the corporate insolvency and enterprise figures Destatis publishes for its WZ 2008 section and its Bundesland, each with its table code, period, retrieval time, source link and the licence attribution line, which must be shown with the figure. Takes node_id, the graph node id from search_companies hits. No German register states a company's NACE code, so pass nace (a section letter or a NACE code such as 41.20) to name the sector; the answer then says the caller named it. missing lists in plain sentences what is not held, and the Kreis the regional context places it in. Aggregates for context only, never part of the company's score or status.NoYesYesNo
company_socialWhat is said on social platforms and forums about the companies the workspace holds in its book or watches, and the natural persons it watches where person data is switched on (node_type person), read from a licensed social listening source. Every answer carries source.enabled; while it is false no source is switched on and nothing current is read. Without node_id it lists the companies, each with its newest reading of a day read in full, or latest null while no reading is stored. With node_id it returns that company's daily readings, newest first (days, default 30), and its newest 100 items of the last 30 days: item_key, platform, url (null with link_withheld true when every form of the link would name a person), published_at, language, the source's sentiment label and the matched_name. A reading counts the items of its 30 day window per platform and by sentiment (YouTube items are listed, never counted); its state is reading (sentiment_net is positive minus negative over the rated items, from -1 to +1), too_little_coverage (fewer than three rated items in a window read in full, no sentiment) or feed_gap (the day or a thin window not read in full, no sentiment). No author, handle, title or post text is ever kept. A watched person is read like any company, its reading context for the bank's due diligence on that person and never a score of the person. A sole trader (sole_trader true, a natural person's business) carries no sentiment, so readings are empty, latest is null and each item's sentiment is null, while its items are listed. A company's reading is context beside the credit view, and no reading is ever part of the risk score. A company outside the workspace's book and watch list answers 404.NoYesYesNo
country_profileCountry intelligence for export finance. Without iso3 this returns the index of covered countries with each one's risk score and the caller team's live deal rollup. With iso3 (a three letter ISO 3166-1 alpha-3 code such as TUR) it returns one country in depth: the risk score with its cited component breakdown and, as gaps, each component it is computed without and why, indicator values, membership lists with legal citations, reference events, and the team's deals there. The deal fields are filled only for a workspace with the deals module; without it they read zero and empty, which says nothing about deals in that country, so never report them as no deals. Indicator and dataset entries carry attribution fields such as attribution_text stating the data licence terms; preserve that attribution whenever values are quoted onward. The index holds more countries than one answer's output cap, so it serves its first countries whole and names in output_cap their number in countries_served and the next_offset to read on from; offset then serves the index from that country on and names it in countries_offset.NoYesYesNo
deal_binding_queueThe parties on the caller team's live deals that are not yet matched to a company in a register, the worklist the dashboard shows behind Match parties to a register. Followed deals come first, then the parties flagged because two or more companies hold the identifier a person entered (flagged_identifier names it), then the parties with candidate companies. Each row names its deal (deal_id, deal_name, deal_followed), its team (team_id, team_name), the party's role and name, whether a person already chose none of the candidates (dismissed), and the candidates, each a company with node_id, label, country_iso3 and up to three identifiers, the LEI first. Pass deal_id to read one deal's parties; a deal outside the caller's team reads as an empty page. Paged with limit and offset; the response carries the exact total. Parties on deals from the shared deal pool are matched by Stonewake and not listed: pool_unbound counts them and pool_note says so. Matching a party happens in the Stonewake dashboard.NoYesYesNo
deal_bookThe deal book of the one team the caller's key reads; every row names that team (team_id, team_name). Without deal_id this lists deals ordered by their ranking window first (financing open, early stage, not confirmed, financing set, cancelled) and the score inside it unless sort names one column, filterable by stage, window, country_code (ISO 3166-1 alpha-3 codes in upper case, such as DEU), region (the desk region of the deal's country), sector, status, eca, eca_named (only deals naming an export credit agency), minimum contract value (min_value_usd, a finite number), free text (q) and team (one team you read by its id, or all; a key reads its own team); every closed value is case exact and an unknown one is refused with the allowed values; sort is priority (the default, the window order above) or one column that orders the whole filtered book, score, value (the USD value), last_activity, stage (the pipeline order), name or first_seen, with direction desc (the default) or asc and rows without a value last, or latest_update, which ignores the window and orders by the newest dated event, rows without one last, desc only; paged with limit (default 50, maximum 100) and offset, with the exact total. Dismissed deals are excluded unless status asks for them, and the portfolio rows a desk holds back by default (financing set, cancelled, older than the stale window of 12 months by default, no movement within the movement hold, own bank, domestic, below the value floor, a market outside the mandate where the rubric holds such rows; score_hidden true) are off the page unless include_hidden is true, stale_months and movement_months naming the two age rules in months, outside_markets_held true where a market outside the mandate holds a row back, and score_own_bank marks the rows where your own bank is a lender. A row carrying merged_into was found to be a duplicate and folded into the deal that field names: read that deal instead, and expect this one to be dismissed. from_pool NoYesYesNo
entity_risk_profileThe caller team's credit risk view of one company, by its graph node_id (the id search_companies hits carry). Answers one of three honest shapes: not in the portfolio (in_portfolio false), held but not yet assessed (assessment null), or the full current assessment with its status band, score, seen_share, explained_share and reachable_share (the figure the insufficient floor reads), a coverage_line of one to three sentences counting covered signals and gaps with their reasons, and every signal with its state (evidenced, register_quiet, gap, awaiting_bank_input, not_applicable), gap_reason, evidence grade (A to D), evidence value, note, and citation ids. A signal no connected source reaches for the company's jurisdiction is a gap, never not_applicable. A held company also carries entity_class: the class its checks route on (a bank is never scored on corporate distress models) and its source, either your team's analyst override or the register rule that derived it. A sole trader (sole_trader true, a natural person's business by its register's evidence) is never scored: assessment and entity_class are null. Company nodes only; person lookups answer not_found.NoYesYesNo
exposure_review_historyOne exposure's credit review history, newest first, so the first item is the standing review and each later one the review it superseded. Each review carries its disposition (no_action, watch_list, intensified_care or escalated, or added for the record of the day the exposure joined the book, never a review), note, next review date and when it was recorded. The history is append only, and a correction is a newer review. Takes exposure_id, the id of a portfolio_book row (not a node_id). An exposure outside the caller team's book answers not_found. Owners and reviewers are member identities and are not served. Paged with limit and offset; the response carries the exact total.NoYesYesNo
fetchOne company as a single document, by the id a search result carries (node:<number>, the same number the node_id tools take). The text is assembled by fixed rules from the caller team's stored data: identity and register identifiers, the current risk assessment with its signals, register events, reported financial figures and the nearest register relations, each row with its source link. metadata lists the identifiers and the source links. Nothing is researched, scored or generated at call time. A long record is cut at the output limit and says so in its last line; the company tools serve each part in full.NoYesYesNo
licensed_factsCompany values a data provider the caller's bank licenses stated (North Data), looked up under the bank's own key into its own workspace, with the name, legal form, register and register status, the LEI where stated, the graph node it binds to through a stated identifier, the provider's source page (source_url) and when it was read. Only values read under a licence scope that covers the bank's own systems are served. Filter by node_id or by a German register with its court, for example HRB 12345 Hamburg; page with limit and offset. Looking a company up happens in the Stonewake dashboard.NoYesYesNo
ownership_chainThe upward ownership chains of one company, composed across registers and cited hop by hop, with per register coverage notes. Takes node_id, the graph node id from search_companies hits. threshold is the minimum ownership percentage a chain must keep to be followed, default 25; max_depth caps the number of hops, default and maximum 8. Natural person owners are named only in workspaces where person data is switched on; elsewhere a chain reaching an individual terminates there with a stated terminal reason, and params.include_persons says which applied. Hop values are served verbatim from the registers, never synthesized.NoYesYesNo
portfolio_bookThe monitored book itself: one row per exposure with the team whose book holds it (team_id, team_name), its label, register identifier, entity class (corporate, sovereign_or_public_body, bank, spv or fund, derived from register stated facts and null when none has been derived yet), desk, current status band, score, completeness, seen_share (the weight share of applicable signals actually observed), explained_share and reachable_share (the observed share of what a connected source can serve, the figure the insufficient floor reads), the top contributing signals with their citation ids, the most recent status change, and the standing credit review (disposition, note, next review date, and whether that date has passed). A sole trader (a natural person's business by its register's evidence) has status sole_trader and no score, coverage, signals or status change: it is never scored. Ordered most severe first (red, amber, then insufficient, not_assessed and sole_trader, then green). Paged with limit and offset; the response carries the exact total. Set include_inactive true to include exposures no longer actively monitored.NoYesYesNo
portfolio_fund_import_previewPreview importing funds into the caller team's Depot A. Pass the fund file as CSV text whose header is fund_isin,fund_lei,fund_name,as_of,isin,lei,name,weight (as_of, weight, fund_isin or fund_lei, and isin, lei or name are needed); at most 2,000 rows. Each line names its fund by the fund's ISIN or LEI, the constituent by ISIN, LEI or name, its weight in percent and the as of date (YYYY-MM-DD or DD.MM.YYYY). Every line is matched by the holdings resolver and answers its status, reason, the matched company with its LEI and class, the security as the European reference data list it, and what the import would do in the team's book (add, reactivate, in_book, duplicate); a name is never used to match. Every fund answers new, replaces, unchanged or invalid; a fund with one unreadable line is invalid whole. Lines page with limit and offset in file order; funds, counts and total cover the whole file. Nothing is written, and applying an import happens in the Stonewake dashboard.NoYesYesNo
portfolio_fundsThe funds of the caller team's Depot A, looked through to their constituents. Without fund_id it lists the live funds, the weakest fund first, each with its ISIN or LEI, the as of date the fund's manager states, how many lines resolved to a company, the weight per standing and the weakest standing. With fund_id it returns that fund's constituents weakest first, each with line, isin, lei, the name in the file (never used to match), weight in percent, resolution (resolved, conflict, ambiguous or unresolved, from the GLEIF and ANNA ISIN to LEI map, ESMA and FCA FIRDS or the stated LEI) with its reason, basis and cited evidence, the matched company, and its standing, which is the credit status in the team's book (red, amber, insufficient, green, not_assessed, sole_trader), unmatched for a line not resolved (never guessed) or not_in_book. A constituent with an ISIN carries its security as the European reference data list it (kind, maturity, type of interest with a stated rate or index, guarantee, seniority and redemption, with the records that list it), null when no record is held for it. No register leads. A fact on which the statements differ is null and listed under differs with every statement and with between. Where between is registers, two registers state two values, so say that the registers differ. Where it is code_and_field, a classification code contradicts a stated field, so say that the code and the stated value differ and never that the registers do. Never pick a side. A security without a fixed maturity carries no_fixed_maturity true and no maturity date. A matched constituent carries the company's LEI and class. An in book constituent carries its score, top signals and newest daily press tone reading. Weakest first is red, amber, unmatched, insufficient, the honesty states and green last, the more negative press tone first within a standing, then the larger weight. Lines page with limit and offset. A fund outside the team answers 404. Read only.NoYesYesNo
portfolio_groupsWhat the caller team holds of each group, added up. Without group_id it lists the groups the team holds something of, the weakest group first, each with the company at its top, the positions the team's depots hold of the group, each fund that holds a line of it with its lines and the sum of their weights in percent of that fund, the group's companies in the team's book, of which those no position and no fund line names, the weakest standing among them, and under bases how the groups of its companies were found. With group_id, the node id of the company at the top, it returns that group's companies the team holds, weakest first, each with its LEI and class, how its group was found, its standing in the team's book and the positions and fund lines that name it. A group is the ultimate parent the public consolidation records of the LEI system name for a company, else the top of its chain of direct parents, else the company itself. A branch belongs to its head office's group and reads head_office. Where the records state a parent they do not name, in a company's own record or in one above it, the basis is parent_not_named, and a group whose bases hold parent_not_named cannot be added up completely here, so say that with its sums. Where the records name two parents, the walk stops at the last company they agree on (parents_disagree), where they lead back to where they started the company stands alone (parents_loop), and so does a company whose chain of parents is longer than any on record (chain_cut). It is what the records state, never a bank's own determination of connected clients. No amount is held or served. Groups and companies page with limit and offset. A group the team holds nothing of answers 404. Read only.NoYesYesNo
portfolio_import_previewPreview adding a book of companies to the caller team's monitored portfolio. Pass the book as CSV text whose header is identifier_type,identifier plus, optionally, name, currency, limit_amount and drawn_amount; at most 2,000 rows. Every row is matched by its registry identifier alone, where identifier_type is lei, uk_crn, de_register (register type, number and court, for example HRB 275806 München), us_cik or another national register scheme. The name column is echoed back and never used to match. Each row answers its outcome (add, reactivate, in_book, duplicate, ambiguous, unresolved, invalid), a reason, and the matched node_id and register name. Rows are paged with limit and offset in file order; counts and total always cover the whole file, so page on until offset reaches total. Nothing is written, and applying an import happens in the Stonewake dashboard.NoYesYesNo
portfolio_overviewCurrent health of the monitored portfolio: how many exposures sit in each status band (green, amber, red, insufficient, shown on the dashboard as No score yet, and not_assessed, shown as Not yet assessed) and how many are sole traders (sole_trader: a natural person's business, never scored, so it has no band and no transitions), the active exposure count, the number of transitions in the last 30 days and how many of them are status changes (an exposure's first assessment is an addition to the book, a transition but not a change), and how many exposures have an overdue credit review. Optionally pass transitions_since (an ISO 8601 date-time with a UTC offset) to also list the individual status transitions since that moment, newest first, each with its cause: the signals whose change moved the status, their citation ids, and the register record behind the lead one. limit and offset page those transitions with the exact total (default 50, maximum 100), and either alone lists the newest transitions of any date. Start here for questions like how the book is doing or what changed since a date and why.NoYesYesNo
portfolio_reviews_dueThe credit reviews of the monitored book that need attention today (UTC), the overdue ones, whose standing next review date has passed, and those falling due within window_days (14), today included, each group soonest first. Every row names its exposure, team, company label and node_id, current status band, disposition and next review date. Each group lists at most 50 rows, while overdue_total and due_soon_total count every one; never_reviewed counts the active exposures no person has reviewed yet. Exposures no longer actively monitored are never listed. Owners are member identities and are not served.NoYesYesNo
portfolio_securitiesThe securities the caller team's bank holds on its own account, its Depot A, by depot. Without depot_id it lists the live depots, the weakest depot first, each with the label the bank gave it, the day its positions are stated for, how many positions resolved to an issuer, the positions per standing and the weakest standing. With depot_id it returns that depot's positions weakest first, one line per position, with isin or lei, the name in the file (never used to match), resolution (resolved, conflict, ambiguous or unresolved, from the GLEIF and ANNA ISIN to LEI map, ESMA and FCA FIRDS or the stated LEI) with its reason, basis and cited evidence, the issuer, and its standing, which is the issuer's credit status in the team's book (red, amber, insufficient, green, not_assessed, sole_trader), unmatched for a line not resolved (never guessed) or not_in_book. A position with an ISIN carries its security as the European reference data list it (kind, maturity, type of interest with a stated rate or index, guarantee, seniority and redemption, with the records that list it), null when no record is held for it. No register leads. A fact on which the statements differ is null and listed under differs with every statement and with between. Where between is registers, two registers state two values, so say that the registers differ. Where it is code_and_field, a classification code contradicts a stated field, so say that the code and the stated value differ and never that the registers do. Never pick a side. A security without a fixed maturity carries no_fixed_maturity true and no maturity date. A matched position carries its issuer's LEI and class. An in book position carries its issuer's score, top signals and newest daily press tone reading. Two positions of one issuer are two lines. No amount and no valuation is held or served. Weakest first is red, amber, unmatched, insufficient, the honesty states and green last, the more negative press tone first within a standing. PositioNoYesYesNo
portfolio_securities_import_previewPreview importing the securities a bank holds on its own account into the caller team's depots. Pass the depot file as CSV text, one line per position, with the columns isin, lei, name, depot and as_of (isin or lei is needed, the rest is optional, and a German export's Bezeichnung, Portfolio and Stichtag are read as name, depot and as_of); at most 2,000 rows. Every other column, an amount or a valuation among them, is left out, never stored and named in ignored_columns. Lines with the same depot label form that depot, a file without the column fills one depot named Depot A. Every line is matched by the holdings resolver and answers its status, reason, the issuer with its LEI and class, the security as the European reference data list it, and what the import would do with the issuer in the team's book (add, reactivate, in_book, duplicate); a name is never used to match. Every depot answers new, replaces, unchanged or invalid; a depot with one unreadable line is invalid whole. Lines page with limit and offset in file order; depots, counts and total cover the whole file. Nothing is written.NoYesYesNo
report_downloadsWhere to download the documents of one subject, for filing them into a document library such as SharePoint. A deal (the id deal_book serves) has its deal report, committee pack and committee deck, a counterparty (the registry id company_profile speaks) its counterparty report and pack, a company (a graph node id from search_companies) its company profile and, held by your team, its credit monitoring deck. The decks are pptx slides. The tool first reads the subject, so an id the key cannot read answers not found, then returns each document's /v1 path. The documents are fetched with the same key, which needs the reports scope. No document is generated by this call.NoYesYesNo
sanctions_person_candidatesReview candidates for the natural persons that public registers link to the companies on the caller's team's book (officers, shareholders, beneficial owners), matched by name and by the list's own aliases against the person designations on the six official sanctions lists (EU Financial Sanctions Files, UK Sanctions List, OFAC SDN, OFAC non SDN, the Swiss sanctions list of SECO and the UN Security Council Consolidated List). A date of birth or nationality both sides state that contradicts removes a candidate. A candidate is review material, never a match, and sets no portfolio status or score; each row names the list, the designation reference, the listed names, the fields that matched (matched_on) and those that narrowed (narrowed_on), a link to the official file, and status open or confirmed (an analyst confirmed it on the dashboard, where decisions are made). The result also carries lists, one entry per list with its reading, Checked or Not checked, the reason where it is not checked, its edition and the time of its last check, lists_not_checked, their count, and persons_compared, the count of register persons that were compared. A list that is switched off or was not checked within the last 48 hours reads Not checked, so an empty page says only that no open or confirmed candidate exists among the register persons compared, and it says nothing while lists_not_checked is above 0. Rejected candidates are not served, and a person whom no connected register links to the book is not compared. Paged with limit (default 50, maximum 100) and offset, with the exact total. Available only in workspaces where person data is switched on; elsewhere it answers not found.NoYesYesNo
scoring_rubricHow scores are produced for the caller's team: the live scoring configuration (signal weights, status thresholds, evidence coverage floor; version null means the built in desk default is active) together with the team's stored rubric versions, newest first. Use this to interpret the status bands and scores that the portfolio and risk tools return.NoYesYesNo
screening_lookupScreenings run for the caller's team, covering organizations and countries, and natural persons only in workspaces where person data is switched on (elsewhere a person screening answers not_found and the person filter an empty page); each row names its team (team_id, team_name; both null on a workspace wide screening every team reads). Without screening_id this lists screening runs newest first, filterable by subject_type (entity, country or person), by the subject's ids (node_id for a company from search_companies, entity_id for a registry institution from company_profile, iso3 for a country), or by subject name; paged with limit (default 20, maximum 100) and offset, and the response carries the exact total. With screening_id it returns that one run in full. First comes official_lists, a deterministic comparison of the subject with each official sanctions list it names, stored when the run ran (basis screening; an older run reads its own record, basis not_stored, each list not checked at the time, with a recheck as its own block, basis recheck), one status per list (listed only on an identifier the list itself states, name match awaiting review, name match reviewed, a name match since delisted, no entry found naming its check, or not checked with the reason; a name match is never a hit, names match exactly so other spellings are not found, and a list that was not checked never reads as clear). Each entry of an entity, vessel or aircraft carries published_fields, the fields its list publishes on it, verbatim, each with the path where the list states it; the fields that can state a natural person (free text, other parties, contact lines) are served only in workspaces where person data is switched on, elsewhere they are withheld and published_note says so. Then the adverse media verdicts per category with rationale and review state, the drafted summary, grounded findings with their press quotes, and the sources behind them. A person screening returns official_lists anNoYesYesNo
searchFind companies in the caller's Stonewake workspace by name or register identifier and return them as a results list. Each result carries an id of the form node:<number>, a one line title (the register name and its jurisdiction) and the url of the company's page in the Stonewake dashboard. Pass a result's id to fetch for the full document. In workspaces where person data is switched on, the natural persons the registers name are found too. For match details, register identifiers and a result limit use search_companies.NoYesYesNo
search_companiesFind a company by name or identifier. The query can be a scheme prefixed identifier such as lei:5493001KJTIIGC8Y1R12, a bare identifier as a company page shows it (LEI, ISIN, BIC, or a register number, with or without the separators its country writes, a German register entry with its court first or last), or a company name (matched exact, then prefix, then token, then with one typo per word, then fuzzy, the leading legal entity a name stands for first, so hits come in rank order, not always score order). Hits carry the graph node_id that entity_risk_profile takes, plus jurisdiction, status fields, and register identifiers. connected_sources names the registers an empty result was searched against. In workspaces where person data is switched on, the natural persons the registers name are found too, after every company, with node_type person and score null; they are never scored.NoYesYesNo
search_stonewake_docsSearch the Stonewake API documentation at docs.stonewake.ai: authentication and the swk_live_ key format, quickstart, key management, error bodies, status codes, and rate limits. Deterministic text search over the official pages; returns the best matching excerpts with each page's URL. This tool needs no Stonewake API key.NoYesYesNo
social_sentimentWhat public posts on social platforms say about the names the workspace monitors, the one list of Monitoring (companies, organisations, brands, persons and topics), searched once a day on X, LinkedIn, TikTok, Instagram, YouTube, Reddit and Threads and labelled by our reader. Every answer carries source.enabled; while it is false no search source is switched on and nothing current is read, and paused_until, set while the workspace's updates are paused until that day. Without target_id it lists the names in name order, each with its newest reading of a day read in full, or latest null while none is stored; node_id keeps the names matched to one company or person. With target_id it returns that name's daily readings, newest first (days, default 30), and its newest 100 posts of the last 30 days, each with its item_key, platform, url (null with link_withheld true when every form of the link would name a person), published_at, language, the reader's sentiment label, the matched_word and source_kind (organisation, media or person). A post the reader found to be about something else is never listed. A reading counts the posts of its 30 day window by platform and by sentiment; its state is reading (sentiment_net is positive minus negative over the rated posts, from -1 to +1), too_little_coverage or feed_gap. No author, handle, title or post text is ever kept. A person's reading is context for the bank's own diligence, never a score, rating or ranking of the person. A sole trader's name (held sole_trader) is never searched and carries no reading and no post; held not_read marks a name the daily search does not read yet. Each name carries days, its posts per day over the 30 days of its reading, oldest first, each day with read, positive, negative, neutral and unrated, and one name's answer adds platforms, the same day counts per platform. No reading is ever part of the risk score. A name outside the workspace's list answers 404.NoYesYesNo
tender_export_previewPreview a tender portal export for the caller team's own tender notices. Pass the file the portal exported (CSV, XLSX or the XML of one eForms notice, at most 700,000 bytes) base64 encoded in content_base64 and its name in file_name; the extension must match the content. Name the portal the file was exported from in source_portal; uploads from dtvp, vergabe24, dab, dtad, had and vergabe_saarland are not accepted for now. The header is matched against the known portal profiles; when none matches, the answer says mapping_required with the file's columns and the available_fields, and a second call passes mapping, an object from column name to field. Every row answers its outcome (new, update, unchanged, duplicate, skipped, invalid), the reference that identifies it and a reason; unknown columns are listed and never read, and counters name every dropped value. Rows are paged with limit and offset in file order; counts and total cover the whole file. Nothing is written, and confirming an upload happens in the Stonewake dashboard.NoYesYesNo
tender_matchesThe public procurement notices the caller team's tender profiles matched, newest first, one row per procedure citing its newest matching notice. Each match explains every criterion its profile sets (CPV code, NUTS region, value band in EUR, keyword, procedure type, buyer legal type, notice kind, days to the tender deadline) with the outcome hit, the notice field it read, what the notice states there and what the profile asks, and carries the notice itself with its source_url and record_id as the citation. A notice is a match only when it hits every criterion its profile sets, so an unknown is never a match. Each match names its notice kind in kind_label and where it stands in state, open for a call for tenders whose deadline has not passed, expired once it has, awarded for an award, direct award, contract change or completion, planned for prior information, other, dismissed or in_deal_book. An award lists in winners the companies its award is bound to; a winner identifier is never shown, and a buyer whose legal type may name a natural person is withheld (buyer_withheld). Pass view open for the open calls only (the fewest days left first), awards for the awards and other notices, expired, dismissed or in_deal_book. Filter also by status (new, dismissed or in_deal_book) or profile_id, page with limit and offset, or pass match_id alone to read one match. A match outside the caller team answers not_found. A match can also cite a notice of the team's own portal lane (portal_notice, an export the bank uploaded or an alert of one of its portal accounts), chosen by a profile or by the portal's own saved search (decided_by portal_search). Pass deal_id, paged with limit and offset, for the matches an analyst took into that deal of the Deal Book (status in_deal_book), where the notice is cited on the deal. deadline_passed is true once the cited notice's tender deadline lies before today on the buyer's calendar (Europe/Berlin); the deadline day itself is still open, and the staNoYesYesNo
tender_profilesThe caller team's live tender profiles by name, each with what it asks of a public procurement notice (CPV codes and NUTS regions with everything below them, buyers named by a reviewed list or one by one, a value band in EUR, keywords matched as whole words in the title or description, procedure types, buyer legal types, notice kinds and the minimum days to the tender deadline), its use case (finance_project, bank_as_bidder or buyer_watch), whether it is active and whether Stonewake made it from the team's mandate (made_by_stonewake). An empty list or a null bound is a criterion the profile does not set. Paged with limit and offset; the response carries the exact total.NoYesYesNo

Details

Registry status
Active
Published
Sep 25, 2026
Updated
Sep 25, 2026
Repository
Not given
Categories (suggested)
Finance and paymentsSuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
GDPR
Not declared

Are you the operator? Claim this listing