which API could extract the PN17 / GN3 pdf file using python?

Options
CHO
CHO Newcomer
image.png
  1. using different ISIN code as input, to download if the company have this PN17 pdf file. which api shall i use to get the pdf file.
  2. and also before what credentials i need to provide and if so where do i get the credentials from?

Answers

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    @CHO

    Thank you for reaching out to us.

    Yes, you can use the Filings API with Python. Please refer to the following articles.

    The API uses an organization PermID so you need to convert ISINs to organization PermIDs. Please refer to the articles above.

    identifier = "BERM.KL"
    start = "2025-06-01T00:00:00Z"
    end = "2025-06-30T23:59:59Z"
    response = filings.search.Definition(
        query = FilingsQuery().orgid(SymbolLookup(ric=identifier).convert())
                              .start_date(start)
                              .end_date(end)
                              .limit(100)
                              .graphQL
    ).get_data()
    response.data.df
    

    The output is:

    image.png

    However, you may need the Data Platform account to access the Filings API. Please contact your LSEG account team or Sales team directly for more information.

  • CHO
    CHO Newcomer
    edited July 1

    @Jirapongse Currently i using the SDK for refinitiv data platform, and also i running python in alteryx the latest version for refinitiv data platform is incompatible to use the fillinf API, version 1.0.0a21. What other option can i do, kindly guide me with code, thank you.

    Here is the code:

    import refinitiv.dataplatform as rdp
    from refinitiv.dataplatform.content import filings

    rdp.open_session("api key..")

    all_filings = []

    start = "2025-06-01T00:00:00Z"
    end = "2025-06-30T23:59:59Z"

    for permid in permids["Organization PermID"].unique():
    try:
    query = filings.search.Definition(
    query=filings.FilingQuery()
    .orgidSymbolLookup(ric=permid).convert()
    .start_date(start)
    .end_date(end)
    .limit(100)
    .graphQL()
    )
    query.get_data()
    result = query.data.df
    result["Organization PermID"] = permid
    all_filings.append(result)

    except Exception as e:
    print(f"Failed to fetch filings for {permid}: {e}")
  • Jirapongse
    Jirapongse ✭✭✭✭✭

    According to the code that uses only an application key, you are using the desktop session.

    I tested the code and it doesn't work on my desktop session. It returns <NA>.

    image.png
  • CHO
    CHO Newcomer

    @Jirapongsecan u guide me how to get or create the RDP App key? i currently using the Refinitiv Workspace App Key.

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    The platform session (RDP) requires an username, password, and application key. All RDP APIs are available on the API docs.

    Please contact your LSEG account team or Sales team directly to verify this.

  • CHO
    CHO Newcomer

    the username, password, and the application key, is what i use to login and the api key is what generated from the refinitiv app key generator?

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    @CHO

    Moreover, please use the LSEG Data Library for Python instead.

    The samples are available on GitHub.

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    @CHO

    The API key must have the EDP API.

    image.png
  • CHO
    CHO Newcomer

    Hi [Name],

    Just checking—am I able to run this using Python within Alteryx?

    I want to clarify because I’m not sure if the expectation is that we’re using Python externally or through Alteryx itself.

    If it's within Alteryx, just to note that our current SDK version is refinitiv-dataplatform==1.0.0a21, which is quite outdated. This might explain why the code provided doesn’t run smoothly on our end.

    The purpose of doing all this is to input an ISIN code and extract the filing listings from Refinitiv—specifically to check whether the company has any PN17 filings—so that we can flag them accordingly in our Alteryx workflow.

    If possible, could we have a quick call to go through this together? I’d really appreciate your guidance on how we can get this working effectively.

    Thanks and looking forward to your response!

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    I am not familiar with Alteryx.

    For any further assistance, feel free to contact your LSEG account team or Sales team directly. The account team can recommend the product that best suits your requirements.

  • CHO
    CHO Newcomer
    edited July 3

    how about can u write a code for us to just extract the listing of fillings, input is a kist of ISIN code, output will the the listing of fillings. like from package to import and what code need to be include the flow, so i able to output the output below.

    image.png
  • Jirapongse
    Jirapongse ✭✭✭✭✭

    @CHO

    This forum doesn't provide the coding service. We can share the simple snippet code that demonstrates how to use our APIs. For example:

    identifier = "BERM.KL"
    start = "2025-06-01T00:00:00Z"
    end = "2025-06-30T23:59:59Z"
    response = filings.search.Definition(
    query = FilingsQuery().orgid(SymbolLookup(ric=identifier).convert())
    .start_date(start)
    .end_date(end)
    .limit(100)
    .graphQL
    ).get_data()
    response.data.df

    For coding services, you may contact your LSEG account team or sales team directly to request professional services. The Professional Services group can review your source code or assist with implementing the solution for an additional fee.

  • Naqib
    Naqib Newcomer

    @Jirapongse

    Hi, I noticed in this documentation

    Using AI modeling to interpret 10-Q Filings | Devportal

    There's a setup requiring running these notebooks to import the modules, but I can't seem to locate the notebooks, where could I possibly locate them? Thank you

    Screenshot 2025-07-04 083813.png
  • Jirapongse
    Jirapongse ✭✭✭✭✭

    @Naqib

    Those files are on GitHub.

  • Naqib
    Naqib Newcomer
    edited July 4

    @Jirapongse

    Thank you, I found the necessary files

    I followed the documentation and now able to run the Filings API. However, the response returns empty, am I missing a preceding step?

    image.png
  • Jirapongse
    Jirapongse ✭✭✭✭✭

    @Naqib

    The result is similar to me when using the desktop.workspace session.

    You need to use the platform.rpd session to retrieve data. The platform.rdp session requires an username, password, and application key. The platform.rdp session retrieves data directly from the Data Platform APIs.

    You can change the configurations in the refinitiv-data.config.json file to use the platform.rdp session or use the following code.

    import refinitiv.data as rd
    from refinitiv.data import session
    
    session = rd.session.platform.Definition(
        app_key = APP_KEY, 
        grant = rd.session.platform.GrantPassword(
            username = RDP_LOGIN, 
            password = RDP_PASSWORD
        )
    ).get_session()

    session.open()

    rd.session.set_default(session)