{
  "openapi": "3.0.1",
  "info": {
    "title": "GLEIF LEI Lookup & Corporate Ownership Graph API (KYB)",
    "description": "LEI lookup and corporate ownership API: resolve a company name to its GLEIF LEI and traverse parent/child relationships into a normalized ownership graph. Map corporate hierarchies and beneficial ownership for KYB/AML. Keyless, open-license.",
    "version": "1.1",
    "x-build-id": "iWeOYHHUoOpREvXkK"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/malonestar~gleif-ownership-graph/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-malonestar-gleif-ownership-graph",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/malonestar~gleif-ownership-graph/runs": {
      "post": {
        "operationId": "runs-sync-malonestar-gleif-ownership-graph",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/malonestar~gleif-ownership-graph/run-sync": {
      "post": {
        "operationId": "run-sync-malonestar-gleif-ownership-graph",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "mode": {
            "title": "Mode",
            "enum": [
              "search",
              "graph"
            ],
            "type": "string",
            "description": "search = find LEI candidates by name. graph = build the ownership graph (parents + children) around an entity.",
            "default": "graph"
          },
          "name": {
            "title": "Company name",
            "type": "string",
            "description": "Company name to search for (used as the seed in graph mode when no LEI is given). GLEIF matches the REGISTERED legal name, so \"Siemens Aktiengesellschaft\" resolves and \"Siemens AG\" does not; candidates are relevance-graded and the chosen match is reported on every row.",
            "default": "Apple Inc"
          },
          "lei": {
            "title": "LEI (optional seed)",
            "type": "string",
            "description": "Exact 20-character LEI to build the graph around. Overrides name in graph mode. An unknown LEI fails the run loudly rather than returning an empty graph."
          },
          "includeChildren": {
            "title": "Include subsidiaries",
            "type": "boolean",
            "description": "Include direct children (subsidiaries) in the graph.",
            "default": true
          },
          "maxChildren": {
            "title": "Max subsidiaries",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Maximum number of direct subsidiaries to return. When GLEIF reports more than this, direct_children_truncated is set to true so a partial graph is never presented as complete.",
            "default": 100
          },
          "maxCandidates": {
            "title": "Max search candidates",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Max LEI candidates to return in search mode.",
            "default": 10
          },
          "includeUltimateChildren": {
            "title": "Include indirect subsidiaries",
            "type": "boolean",
            "description": "Also return ultimate (indirect) subsidiaries - entities this one controls through intermediate holdings. Adds rows, so it adds cost.",
            "default": false
          },
          "maxUltimateChildren": {
            "title": "Max indirect subsidiaries",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Maximum number of ultimate (indirect) subsidiaries to return.",
            "default": 100
          },
          "resolveOwnershipChain": {
            "title": "Resolve the ownership chain",
            "type": "boolean",
            "description": "Walk direct-parent edges upward from the seed to the top of its group and report the full LEI path and its depth. Adds no rows.",
            "default": true
          },
          "includeIsins": {
            "title": "Include ISIN mapping",
            "type": "boolean",
            "description": "Fetch the ISINs mapped to the seed LEI (isin_count and isins_sample). One extra request; adds no rows.",
            "default": false
          },
          "maxIsins": {
            "title": "Max ISINs",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Maximum number of ISINs to list in isins_sample.",
            "default": 50
          },
          "strictNameMatch": {
            "title": "Require an exact name match",
            "type": "boolean",
            "description": "Fail the run instead of guessing when the company name has no exact GLEIF legal-name match. Recommended for automated KYB pipelines, where silently profiling the wrong company is worse than an error.",
            "default": false
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}