Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,4 @@ jobs:
run: |
bun run build:canary
env:
NODE_OPTIONS: --max-old-space-size=10240 --expose-gc
NODE_OPTIONS: --max-old-space-size=12288 --expose-gc
2 changes: 1 addition & 1 deletion .github/workflows/canary.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ jobs:
run: bun run build:canary
env:
VITE_PORTAL_GATEWAY_BASE_URL: 'https://m.longbridge.xyz'
NODE_OPTIONS: --max-old-space-size=10240 --expose-gc
NODE_OPTIONS: --max-old-space-size=12288 --expose-gc

- name: Upload to Aliyun OSS
run: |
Expand Down
232 changes: 232 additions & 0 deletions docs/en/docs/fundamental/fundamental/business_segments.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,232 @@
---
slug: business-segments
title: Business Segments
sidebar_position: 21
language_tabs: false
toc_footers: []
includes: []
search: true
highlight_theme: ''
headingLevel: 2
---

Get the current-period revenue segment breakdown for a listed company.

<CliCommand>
longbridge business-segments AAPL.US
longbridge business-segments 700.HK
</CliCommand>

<SDKLinks module="fundamental" klass="FundamentalContext" method="business_segments" />


## Parameters

> **SDK method parameters.**

| Name | Type | Required | Description |
| ---- | ---- | -------- | ----------- |
| symbol | string | YES | Security symbol, e.g. `AAPL.US` |

## Request Example

<Tabs groupId="request-example">
<TabItem value="python" label="Python">

```python
from longbridge.openapi import FundamentalContext, Config, OAuthBuilder

oauth = OAuthBuilder("your-client-id").build(lambda url: print("Visit:", url))
config = Config.from_oauth(oauth)
ctx = FundamentalContext(config)

resp = ctx.business_segments("AAPL.US")
print(resp)
```

</TabItem>
<TabItem value="python-async" label="Python (async)">

```python
import asyncio
from longbridge.openapi import AsyncFundamentalContext, Config, OAuthBuilder

async def main() -> None:
oauth = await OAuthBuilder("your-client-id").build_async(lambda url: print("Visit:", url))
config = Config.from_oauth(oauth)
ctx = AsyncFundamentalContext.create(config)

resp = await ctx.business_segments("AAPL.US")
print(resp)

if __name__ == "__main__":
asyncio.run(main())
```

</TabItem>
<TabItem value="nodejs" label="Node.js">

```javascript
const { Config, FundamentalContext, OAuth } = require('longbridge')

async function main() {
const oauth = await OAuth.build('your-client-id', (_, url) => {
console.log('Open this URL to authorize: ' + url)
})
const config = Config.fromOAuth(oauth)
const ctx = FundamentalContext.new(config)
const resp = await ctx.businessSegments('AAPL.US')
console.log(resp)
}
main().catch(console.error)
```

</TabItem>
<TabItem value="java" label="Java">

```java
import com.longbridge.*;
import com.longbridge.fundamental.*;

class Main {
public static void main(String[] args) throws Exception {
try (OAuth oauth = new OAuthBuilder("your-client-id").build(url -> System.out.println("Open to authorize: " + url)).get();
Config config = Config.fromOAuth(oauth);
FundamentalContext ctx = FundamentalContext.create(config)) {
var resp = ctx.getBusinessSegments("AAPL.US").get();
System.out.println(resp);
}
}
}
```

</TabItem>
<TabItem value="rust" label="Rust">

```rust
use std::sync::Arc;
use longbridge::{oauth::OAuthBuilder, fundamental::FundamentalContext, Config};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let oauth = OAuthBuilder::new("your-client-id").build(|url| println!("Open: {url}")).await?;
let config = Arc::new(Config::from_oauth(oauth));
let ctx = FundamentalContext::new(config);
let resp = ctx.business_segments("AAPL.US").await?;
println!("{:?}", resp);
Ok(())
}
```

</TabItem>
<TabItem value="cpp" label="C++">

```cpp
#include <iostream>
#include <longbridge.hpp>

using namespace longbridge;
using namespace longbridge::fundamental;

int main() {
OAuthBuilder("your-client-id").build(
[](const std::string& url) { std::cout << "Open: " << url << std::endl; },
[](auto res) {
if (!res) return;
Config config = Config::from_oauth(*res);
FundamentalContext ctx = FundamentalContext::create(config);
ctx.business_segments("AAPL.US", [](auto resp) {
if (resp) std::cout << "OK" << std::endl;
});
});
std::cin.get();
}
```

</TabItem>
<TabItem value="go" label="Go">

```go
package main

import (
"context"
"fmt"
"log"

"github.com/longbridge/openapi-go/config"
"github.com/longbridge/openapi-go/oauth"
"github.com/longbridge/openapi-go/fundamental"
)

func main() {
o := oauth.New("your-client-id").
OnOpenURL(func(url string) { fmt.Println("Open this URL to authorize:", url) })
if err := o.Build(context.Background()); err != nil {
log.Fatal(err)
}
conf, err := config.New(config.WithOAuthClient(o))
if err != nil {
log.Fatal(err)
}
c, err := fundamental.NewFromCfg(conf)
if err != nil {
log.Fatal(err)
}
defer c.Close()
resp, err := c.BusinessSegments(context.Background(), "AAPL.US")
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", resp)
}
```

</TabItem>
</Tabs>

## Response


### Response Example

```json
{
"code": 0,
"message": "success",
"data": {
"date": "2024Q4",
"total": "124300000000",
"currency": "USD",
"business": [
{"name": "iPhone", "percent": "56.19"},
{"name": "Services", "percent": "21.96"},
{"name": "Mac", "percent": "8.04"},
{"name": "iPad", "percent": "7.00"},
{"name": "Wearables", "percent": "6.81"}
]
}
}
```

### Response Status

| Status | Description | Schema |
| ------ | ----------- | ------ |
| 200 | Success | [BusinessSegmentsResponse](#BusinessSegmentsResponse) |
| 400 | Bad request | None |

## Schemas

### BusinessSegmentsResponse

<a id="BusinessSegmentsResponse"></a>

| Name | Type | Required | Description |
| ---- | ---- | -------- | ----------- |
| date | string | false | Reporting period label, e.g. `2024Q4` |
| total | string | false | Total revenue for the period (string value) |
| currency | string | false | Currency code, e.g. `USD` |
| business | array | false | Business segment list |
| business[].name | string | false | Segment name |
| business[].percent | string | false | Revenue share (0–1 decimal) |
Loading
Loading