# Daloopa Documentation Documentation > Documentation for Daloopa Documentation ## Guides - [Frequently Asked Questions](https://docs.daloopa.com/docs/faq.md) - [Single Sign-On](https://docs.daloopa.com/docs/single-sign-on.md): This guide walks you through connecting our authentication app to your Microsoft Entra (Azure AD) directory, enabling your users to sign in with Single Sign-On (SSO). - [API vs. MCP](https://docs.daloopa.com/docs/api-vs-mcp.md) - [Docs MCP Server](https://docs.daloopa.com/docs/mcp.md): Get up and running with our API and MCP server faster by giving this MCP to a LLM - [Authentication](https://docs.daloopa.com/docs/api-authentication.md) - [Best Practices](https://docs.daloopa.com/docs/best-practices.md): Best practices when using Daloopa's API - [Understanding Units & Quarterization ](https://docs.daloopa.com/docs/understanding-units-quarterization.md): How to interpret value_raw vs value_normalized, and why they can differ. - [Fundamental Uniqueness & Restatements](https://docs.daloopa.com/docs/fundamental-uniqueness-restatements.md): Why fundamental_id isn't stable, how to resolve a single canonical value, and what a restated fundamental is - [Caching Strategy](https://docs.daloopa.com/docs/caching-strategy.md): What to cache, how long to keep it, and when to refresh - [Rate Limits](https://docs.daloopa.com/docs/rate-limits.md): Staying within 120 requests per minute and handling throttling gracefully - [Period Format Standards](https://docs.daloopa.com/docs/period-format-standards.md): Canonical period formats, and why fiscal periods aren't the same as calendar periods - [Happy Flows](https://docs.daloopa.com/docs/best-practices-for-using-the-daloopa-api.md): This guide provides step-by-step workflows for common Daloopa API tasks. Each workflow includes complete examples with actual endpoints and parameters. - [Webhook](https://docs.daloopa.com/docs/webhook.md) - [Managing your Webhooks](https://docs.daloopa.com/docs/managing-your-webhooks.md) - [Testing your Webhooks](https://docs.daloopa.com/docs/testing-your-webhooks.md) - [Tag ID Preview](https://docs.daloopa.com/docs/tag-id-preview.md) - [Introduction](https://docs.daloopa.com/docs/daloopa-mcp.md): Get started with the Daloopa's MCP server - [Authentication](https://docs.daloopa.com/docs/mcp-authentication.md): How to authenticate with the MCP Server - [Integrations](https://docs.daloopa.com/docs/mcp-integrations.md): The Daloopa MCP server works with any MCP-compatible client. Connect it once and query financial data — income statements, balance sheets, segments, KPIs, management guidance, and SEC filing text — directly from wherever you work. - [Skills](https://docs.daloopa.com/docs/skills.md): Skills are specialized prompts that give a LLM instructions to run an analysis. Daloopa's Skills allow you to run slash command with a ticker, and get back a fully cited report — every number links to the underlying SEC filing in Daloopa. For example, `/earnings AAPL` pulls 8 quarters of financials, segments, KPIs, guidance vs. actuals, cost structure, and read-throughs to adjacent companies. What would take hours of pulling data and building spreadsheets takes minutes. - [Prompt Library](https://docs.daloopa.com/docs/prompt-library.md): A library of Daloopa tested prompts, categorized by use case, and are great examples of our MCP's functionality for any investor profile. - [Tool Prompts](https://docs.daloopa.com/docs/mcp-prompts.md): For developers that are interested on building their on MCP on top of Daloopa's APIs - [Partnerships](https://docs.daloopa.com/docs/partnerships.md): Integrate partner-only Daloopa workflows, including trial account provisioning for Daloopa MCP users. - [Privacy and Data Collection Disclosure for MCP Access](https://docs.daloopa.com/docs/daloopa-privacy-and-data-collection-disclosure-for-mcp-access.md) - [Snowflake](https://docs.daloopa.com/docs/snowflake.md): Daloopa's fundamental data is now available natively in your Snowflake environment via the Snowflake Marketplace. Access our data in your own workspace without building ETL pipelines or managing data movement. - [Databricks](https://docs.daloopa.com/docs/databricks.md): Daloopa's fundamental data is now available natively in your Databricks environment via the Databricks Marketplace. Access our data in your own workspace without building ETL pipelines or managing data movement. - [AWS S3](https://docs.daloopa.com/docs/aws-s3.md): Daloopa's fundamental data is now available as file-based delivery directly into a dedicated Amazon S3 bucket. Access our data in your own cloud environment without building ETL pipelines or managing data movement — ideal for teams that want raw Parquet files integrated into their own pipelines, regardless of stack. - [Security and Architecture](https://docs.daloopa.com/docs/excel-add-in-security-and-architecture.md): This page covers how the Daloopa Excel Add-In is built, what it can and cannot access within your desktop environment, and the controls that govern its behavior. It is intended to give your IT or information security team what it needs to assess the add-in and approve it for use. - [Installing & Updating the Add-In](https://docs.daloopa.com/docs/install-daloopa-excel-add-in.md) - [Using the Excel Add-In](https://docs.daloopa.com/docs/using-daloopa-excel-add-in.md) - [Connecting Your Model to Daloopa](https://docs.daloopa.com/docs/connecting-your-model.md) - [Create Rolled-Up Number](https://docs.daloopa.com/docs/daloopa-excel-add-in-create-rolled-up-number.md) - [Supported Period Formats](https://docs.daloopa.com/docs/daloopa-supported-calendar-period-formats.md) - [Scout](https://docs.daloopa.com/docs/scout.md) - [Prompt Library](https://docs.daloopa.com/docs/scout-prompt-library.md) ## API Reference - [List Companies](https://docs.daloopa.com/reference/companies_list.md): Retrieve list of companies with Live Excel Models and optional keyword filtering - [Check Company Model Status](https://docs.daloopa.com/reference/check_company_status.md): Check the data freshness signals for specified companies. Each company entry in the response distinguishes three timestamps: - `latest_datapoint_created_at`: when the latest publish notification for the company was created. Falls back to the company's live Excel model `created_at` when no active non-clientview notification exists. - `latest_datapoint_updated_at`: the latest data change for the company, computed as the max of the most recent DELETE event in FundamentalEventLog and the most recent incremental-update error in FundamentalErrors. - `model_updated_at`: when the company's Excel model was last touched. - [Get Company Fundamental Data](https://docs.daloopa.com/reference/get_company_fundamentals.md): Retrieve paginated fundamental financial data for a specific company and time periods. - [Get Fundamental Data Updates](https://docs.daloopa.com/reference/get_fundamental_updates.md): Retrieve updates and changes to fundamental financial data for a specific company since a given timestamp. - [Get Fundamental Series](https://docs.daloopa.com/reference/get_fundamentals_series.md): Look up series and company context for up to 100 fundamental IDs. IDs not in the dataset visible to the user are silently omitted from the response. - [Get Company Series Data](https://docs.daloopa.com/reference/company_series_list.md): Retrieve financial series data for a specific company with optional filtering - [Get Series Continuation Data](https://docs.daloopa.com/reference/get_series_continuation.md): Retrieve continuation data for a specific series, including changes and updates since a given timestamp. - [Bulk Add Data Warehouse Company Subscriptions](https://docs.daloopa.com/reference/bulk_add_data_warehouse_company_subscription.md): Add subscriptions to multiple companies for the authenticated user. This operation respects the user's subscription limit and syncs the local database. If the user has Snowflake and/or Databricks permissions, subscriptions are also synced to the corresponding data warehouses. If the number of requested companies exceeds the user's remaining subscription slots, only the first N companies that fit within the limit will be processed; the rest will be returned in 'skipped_limit_exceeded'. - [Get Company Model Download URL](https://docs.daloopa.com/reference/download_company_model.md): Generate a pre-signed URL to download the Excel model file for a specific company - [Get Industry Model Download URL](https://docs.daloopa.com/reference/download_industry_model.md): Generate a pre-signed URL to download the Excel model file for a specific industry model - [Get Company Industry Model Mappings](https://docs.daloopa.com/reference/get_company_industry_models.md): Retrieve the mapping between companies and their associated industry models, including ISIN identifiers and model metadata. - [Export Company Fundamentals](https://docs.daloopa.com/reference/export_company_model.md): Export file with company fundamentals metadata for a company as CSV. Supports both historical and real-time data export - [List Investing Skills](https://docs.daloopa.com/reference/list_investing_skills.md): Retrieve the catalog of available investing skills — reusable, model-initiated analytical workflows (earnings review, DCF, comps, etc.). Results can optionally be filtered by category. - [Retrieve Investing Skill](https://docs.daloopa.com/reference/retrieve_investing_skill.md): Retrieve a single investing skill by its unique name, including its full prompt content, declared inputs, and required tools. - [Company Document Lookup](https://docs.daloopa.com/reference/company_document_lookup-1.md): Retrieve paginated list of documents for a specific company, optionally filtered by quarter and filing type. Use `calendar_quarters` or `fiscal_quarters` (repeatable, mutually exclusive) to filter on one or more quarters; `fiscal_quarters` are translated to the company's calendar quarters before filtering. The legacy `period` and `periods` parameters are deprecated and fold into `calendar_quarters`. Each document in the response carries both `calendar_quarter` and `fiscal_quarter`. Results are ordered by filing date descending. - [Retrieve Document](https://docs.daloopa.com/reference/retrieve_document-1.md): Retrieve a specific document by its ID. Returns a signed URL for document access with expiration timestamp. - [Keyword Search](https://docs.daloopa.com/reference/opensearch_lightweight_search-1.md): Performs keyword search across multiple documents and returns matches without positional information for faster response times. **Key Features:** - Faster than batch search (no positional data retrieval) - Each match includes a unique match_id - Use match_id with the positional-info endpoint to get positions on demand - Supports same filtering and search options as batch search **Use Cases:** - Initial search to find relevant documents quickly - When positional information is not immediately needed - Two-step workflow: search first, then get positions for specific matches **Workflow:** 1. Use this endpoint to quickly find matching documents 2. Review results and identify matches of interest 3. Call GET /api/v2/documents/search/positional-info with match_id for precise locations - [Retrieve Document Metadata](https://docs.daloopa.com/reference/retrieve_document_metadata.md): Return structural metadata for a document: filing type, source document type, total character count, named sections with character counts, and a recommended_call hint that guides whether to fetch the whole document or a specific section next. The endpoint never returns the document body. Documents whose filing type is outside the allowlist return 200 with recommended_call set to not_supported and reason populated. Earnings call transcripts are excluded from whole-document access and return 403; use /documents/keyword-search to query transcript content. - [Retrieve Document Content](https://docs.daloopa.com/reference/retrieve_document_content.md): Return the processed flat text of a supported document (10-K, 10-Q, 8-K, News Article, Others). The response is a flat shape with no pagination and no section list; callers that need the section list or the recommended_call hint use the /metadata endpoint, and callers that need the original document file use GET /api/v2/documents/{id}. By default the response is capped at max_characters (100000) and truncated=true is set when the cap is hit. Pass full_content=true to bypass the cap. Filing types outside the allowlist return 400 with a reason; an unknown section name returns 400 with the available_sections list so the caller can recover. Earnings call transcripts are excluded from whole-document access and return 403; use /documents/keyword-search to query transcript content. - [List Taxonomy Metrics](https://docs.daloopa.com/reference/list_taxonomy_metrics-1.md): Retrieve a list of all available Taxonomy Metrics. Optionally filter by a specific company and series. - [Retrieve Taxonomy Metric](https://docs.daloopa.com/reference/retrieve_taxonomy_metric-1.md): Retrieve detailed information about a specific Taxonomy Metric by its unique identifier. - [List Taxonomy Sub-Industries](https://docs.daloopa.com/reference/list_taxonomy_sub_industries-1.md): Retrieve a list of active Taxonomy Sub-Industries and their associated companies, with optional filtering by company_id. - [Get Datapoint Consumption by date range](https://docs.daloopa.com/reference/get_datapoint_consumption-1.md): Return the user's datapoint consumption within a date window and the user's effective monthly datapoint limit. **Inputs** - `start_at` and `end_at` are both dates (in format `YYYY-MM-DD`). - Internally, `start_at` is expanded to the start of the day of that date in the current Django timezone; `end_at` is expanded to the end of the day of that date in the current Django timezone. **Defaults** - If `start_at` is omitted, it defaults to the first day of the current month at 00:00:00 (current timezone). - If `end_at` is omitted, it defaults to now (the current datetime in the current timezone). **Behavior** - The window is inclusive: `start_at ≤ timestamp ≤ end_at`. **Response** - `monthly_limit` (string): `'Unlimited'` if there is no limit for the user, the numeric limit as a string otherwise. - `consumption` (integer): total datapoints accessed in the window. - `initial_date` / `final_date` (date): the date components of the resolved `start_at` and `end_at` values for the windows - [List Datapoint Access Events by date range](https://docs.daloopa.com/reference/list_datapoint_access_events-1.md): Return the individual datapoint access events for the authenticated user within a date window. **Inputs** - `start_at` and `end_at` are **dates** (`YYYY-MM-DD`). - Internally, `start_at` expands to the start of that day in the current Django timezone; `end_at` expands to the end of that day in the current Django timezone. **Defaults** - If `start_at` is omitted, it defaults to the **first day of the current month** at 00:00:00 (current timezone). - If `end_at` is omitted, it defaults to **now** (current datetime in the current timezone). **Behavior** - The window is **inclusive**: `start_at ≤ timestamp ≤ end_at`. - Results are ordered by `timestamp` ascending. **Response** - A paginated list of datapoint access events. - [Get series consumption for a company](https://docs.daloopa.com/reference/get_series_consumption.md): Return the series consumption data for the authenticated user for a given company. **Inputs** - `company_id` is **required** (integer). **Response** - The user's current series-per-company limit. - The number of unique series the user has accessed for the company. - A list of accessed series with their IDs and names. - [Get Company Stock Prices](https://docs.daloopa.com/reference/get_company_market_data.md): Retrieve paginated daily OHLCV (Open, High, Low, Close, Volume) stock price data for a specific company. - [Add Snowflake Company Subscription](https://docs.daloopa.com/reference/add_snowflake_company_subscription.md): Add a subscription to a company for the authenticated user. This operation updates both Snowflake and the local database. - [Add Databricks Company Subscription](https://docs.daloopa.com/reference/add_databricks_company_subscription.md): Add a subscription to a company for the authenticated user. This operation updates both Databricks and the local database. - [List Webhooks](https://docs.daloopa.com/reference/list_webhooks.md): List all webhooks belonging to the authenticated user's API key. Supports optional filtering by event_type, active, and is_test query parameters. - [Create Webhook](https://docs.daloopa.com/reference/create_webhook.md): Register a new webhook for a given event type. Auth secrets are encrypted before storage. Limited to 10 webhooks per API key. - [Retrieve Webhook](https://docs.daloopa.com/reference/retrieve_webhook.md): Retrieve a single webhook by ID. The webhook must belong to the authenticated user's API key. - [Update Webhook](https://docs.daloopa.com/reference/update_webhook.md): Update an existing webhook's configuration. All fields are optional; only the provided fields will be modified. - [Delete Webhook](https://docs.daloopa.com/reference/delete_webhook.md): Permanently delete an existing webhook. The webhook must belong to the authenticated user's API key. - [List Webhook Event Types](https://docs.daloopa.com/reference/list_webhook_types.md): Returns the available webhook event types. Use this endpoint to discover which event types can be used when configuring or testing webhooks. - [Get Sample Payload for Webhook](https://docs.daloopa.com/reference/get_webhook_sample_payload.md): Returns a sample payload matching the webhook's configured event type. The payload uses static example data and includes 'test': true. Fundamental events (clientview_updated, incremental_update, series_updated) carry a 'series' field; document_added carries a 'document' object instead. Only the webhook owner can access this endpoint. - [Test Webhook Delivery](https://docs.daloopa.com/reference/test_webhook_delivery.md): Triggers a synchronous test delivery to the webhook's configured URL using a sample payload with 'test': true. Returns immediate feedback including the HTTP status code, response body (truncated to 2000 chars), and round-trip duration in milliseconds. Only the webhook owner can trigger a test delivery. Uses a 10-second timeout. - [List Webhook Delivery History](https://docs.daloopa.com/reference/list_webhook_deliveries.md): Returns delivery history in reverse chronological order. Each entry includes the timestamp, event type, company ID, response status, response body (truncated to 1000 characters), test flag, and round-trip duration in milliseconds. Supports standard DRF limit/offset pagination (default page size: 500, max: 500). Optionally filter by webhook_id and/or is_test. Only deliveries for webhooks owned by the authenticated user are returned. - [Create Partnership User](https://docs.daloopa.com/reference/create_partnership_user.md): Create a partnership pre-account for the given email under the authenticated API key's partnership program. A sign-up email is sent to the user with a link to complete account creation. The pre-account expires 30 days after creation. The monthly datapoint limit is determined by the chosen plan (BASE or PLUS).