> ## Documentation Index
> Fetch the complete documentation index at: https://edgeful.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# report catalog

> list the report pages settings refer to (surface report): slug, name, markets, sub-reports, categories and whether your plan can run each; with a market, the standard session ids the defaults accept for each page there. with surface wip or screener, list what a What's in Play or screener template is composed from instead. these slugs name pages, not report endpoints.



## OpenAPI

````yaml /openapi-public.json get /v1/settings/report-catalog
openapi: 3.1.0
info:
  title: Edgeful API
  description: >-
    Public API reference for Edgeful market analysis. The bearer token is your
    Edgeful API key. Reports support the docs playground. Report responses
    include row-level output in `detailed` only when your plan includes
    row-level detail.
  version: 1.0.0
servers:
  - url: https://api.edgeful.com
    description: Production
security:
  - BearerAuth: []
tags:
  - name: reports
  - name: discovery
  - name: live data
  - name: settings
  - name: custom reports
paths:
  /v1/settings/report-catalog:
    get:
      tags:
        - settings
      summary: report catalog
      description: >-
        list the report pages settings refer to (surface report): slug, name,
        markets, sub-reports, categories and whether your plan can run each;
        with a market, the standard session ids the defaults accept for each
        page there. with surface wip or screener, list what a What's in Play or
        screener template is composed from instead. these slugs name pages, not
        report endpoints.
      operationId: list_report_catalog
      parameters:
        - name: market
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                enum:
                  - futures
                  - stock
                  - forex
                  - crypto
              - const: all
                type: string
              - type: 'null'
            description: >-
              cut the catalog to one market; all is a market of the wip and
              screener surfaces only.
            title: Market
          description: >-
            cut the catalog to one market; all is a market of the wip and
            screener surfaces only.
        - name: surface
          in: query
          required: false
          schema:
            enum:
              - report
              - wip
              - screener
            type: string
            description: >-
              report lists report pages; wip or screener lists what those
              templates are composed from.
            default: report
            title: Surface
          description: >-
            report lists report pages; wip or screener lists what those
            templates are composed from.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportCatalogResponse'
        '400':
          description: >-
            The request names a value Edgeful cannot use; `detail` says which
            values are valid.
          content:
            application/json:
              examples:
                refused:
                  summary: refused
                  value:
                    detail: NQX is not a futures ticker Edgeful knows.
        '403':
          description: Valid API key, but the account has no API-enabled subscription.
          content:
            application/json:
              examples:
                missing_entitlement:
                  summary: missing entitlement
                  value:
                    detail:
                      detail: No active subscription with API access found.
                      code: missing_entitlement
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - BearerAuth: []
      x-codeSamples:
        - lang: curl
          label: cURL
          source: |-
            curl --request GET \
              --url 'https://api.edgeful.com/v1/settings/report-catalog' \
              --header 'Authorization: Bearer <api-key>'
        - lang: python
          label: Python
          source: |-
            import requests

            url = "https://api.edgeful.com/v1/settings/report-catalog"
            headers = {"Authorization": "Bearer <api-key>"}

            response = requests.get(url, headers=headers)
            print(response.json())
        - lang: javascript
          label: JavaScript
          source: |-
            const url = "https://api.edgeful.com/v1/settings/report-catalog";
            const options = {
              method: "GET",
              headers: { Authorization: "Bearer <api-key>" },
            };

            const response = await fetch(url, options);
            const data = await response.json();
            console.log(data);
        - lang: php
          label: PHP
          source: >-
            <?php

            $ch =
            curl_init("https://api.edgeful.com/v1/settings/report-catalog");

            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");

            curl_setopt($ch, CURLOPT_HTTPHEADER, ["Authorization: Bearer
            <api-key>"]);

            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

            $response = curl_exec($ch);

            curl_close($ch);

            echo $response;
        - lang: go
          label: Go
          source: |-
            package main

            import (
                "fmt"
                "io"
                "net/http"
            )

            func main() {
                req, _ := http.NewRequest("GET", "https://api.edgeful.com/v1/settings/report-catalog", nil)
                req.Header.Set("Authorization", "Bearer <api-key>")
                resp, _ := http.DefaultClient.Do(req)
                defer resp.Body.Close()
                body, _ := io.ReadAll(resp.Body)
                fmt.Println(string(body))
            }
        - lang: java
          label: Java
          source: >-
            import java.net.URI;

            import java.net.http.HttpClient;

            import java.net.http.HttpRequest;

            import java.net.http.HttpResponse;


            HttpClient client = HttpClient.newHttpClient();

            HttpRequest request = HttpRequest.newBuilder()
                .uri(URI.create("https://api.edgeful.com/v1/settings/report-catalog"))
                .header("Authorization", "Bearer <api-key>")
                .method("GET", HttpRequest.BodyPublishers.noBody())
                .build();
            HttpResponse<String> response = client.send(request,
            HttpResponse.BodyHandlers.ofString());

            System.out.println(response.body());
        - lang: ruby
          label: Ruby
          source: >-
            require "net/http"

            require "uri"


            uri = URI("https://api.edgeful.com/v1/settings/report-catalog")

            request = Net::HTTP::Get.new(uri)

            request["Authorization"] = "Bearer <api-key>"


            response = Net::HTTP.start(uri.hostname, uri.port, use_ssl:
            uri.scheme == "https") do |http|
              http.request(request)
            end

            puts response.body
components:
  schemas:
    ReportCatalogResponse:
      properties:
        count:
          anyOf:
            - type: integer
            - type: 'null'
          title: Count
          description: 'report surface: number of families listed.'
        families:
          anyOf:
            - items:
                $ref: '#/components/schemas/CatalogFamily'
              type: array
            - type: 'null'
          title: Families
          description: 'report surface: the report pages.'
        surface:
          anyOf:
            - type: string
            - type: 'null'
          title: Surface
          description: 'wip or screener surfaces: the surface described.'
        markets:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Markets
          description: 'wip or screener surfaces: the markets listed.'
        sessions:
          anyOf:
            - $ref: '#/components/schemas/JsonValue'
            - type: 'null'
          description: 'wip or screener surfaces: sessions per market.'
        tickers:
          anyOf:
            - $ref: '#/components/schemas/JsonValue'
            - type: 'null'
          description: 'wip or screener surfaces: tickers per market.'
        reports:
          anyOf:
            - $ref: '#/components/schemas/JsonValue'
            - type: 'null'
          description: >-
            wip or screener surfaces: report keys with their exclusions or
            suffix rule.
        customizations:
          anyOf:
            - $ref: '#/components/schemas/JsonValue'
            - type: 'null'
          description: >-
            wip or screener surfaces: customization setting keys with fields,
            options and defaults.
        filters:
          anyOf:
            - $ref: '#/components/schemas/JsonValue'
            - type: 'null'
          description: 'wip surface: the percentage range.'
        min_reports:
          anyOf:
            - type: integer
            - type: 'null'
          title: Min Reports
          description: 'screener surface: fewest reports per template.'
        max_reports:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Reports
          description: 'screener surface: most reports per template.'
      additionalProperties: true
      type: object
      title: ReportCatalogResponse
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    CatalogFamily:
      properties:
        slug:
          type: string
          title: Slug
          description: report page slug.
        name:
          type: string
          title: Name
          description: display name.
        availability:
          type: string
          title: Availability
          description: the family's market availability rule.
        markets:
          items:
            type: string
          type: array
          title: Markets
          description: markets the page is available on.
        sub_reports:
          items:
            type: string
          type: array
          title: Sub Reports
          description: sub-report slugs.
        categories:
          items:
            type: string
          type: array
          title: Categories
          description: catalog categories.
        runnable:
          type: boolean
          title: Runnable
          description: >-
            whether this credential's plan can run the family's report
            endpoints.
        sessions:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Sessions
          description: >-
            with a market: the standard session ids the defaults accept for the
            page there.
      additionalProperties: true
      type: object
      required:
        - slug
        - name
        - availability
        - markets
        - sub_reports
        - categories
        - runnable
      title: CatalogFamily
    JsonValue: {}
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: >-
        Send your Edgeful API key in the Authorization header as `Bearer
        <api-key>` (for example, `Bearer ef_live_<random>`).

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.