---
id: object/codeunit/9121
type: object
title: Codeunit 9121 "SharePoint Graph Uri Builder"
summary: Codeunit 9121 "SharePoint Graph Uri Builder" in System Application (System.Integration.Sharepoint). 27 public procedures. Introduced in BC28, still in BC30, changed in BC29.
tier: official
language: en
tags:
  - codeunit
  - system application
versions:
  introduced: "28"
  last_changed: "29"
  deprecated: null
review:
  state: derived
  by: null
  at: null
  flags: []
generated:
  at: "2026-10-11T00:31:51.816Z"
  pipeline: 0.2.0
  prompts: {}
  input_hash: 59b52c32d705c5dcfcc7246fc2740664dc7ea8c583aa9cf22caa804799a44a0c
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/System%20Application/App/SharePoint/src/graph/helpers/SharePointGraphUriBuilder.Codeunit.al
    title: src/System Application/App/SharePoint/src/graph/helpers/SharePointGraphUriBuilder.Codeunit.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
  changes:
    - change/bcapps/8318
object_type: codeunit
object_id: 9121
name: SharePoint Graph Uri Builder
namespace: System.Integration.Sharepoint
app: System Application
extends: null
first_version: "28"
last_version: "30"
present_in:
  - "28"
  - "29"
  - "30"
changed_in:
  - "29"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 0
  procedures: 33
  events: 0
  subscribers: 0
relations:
  out: 0
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 0
  calls: 4
  called_by: 2
  implements: 0
---

# Codeunit 9121 "SharePoint Graph Uri Builder"

> Codeunit 9121 "SharePoint Graph Uri Builder" in System Application (System.Integration.Sharepoint). 27 public procedures. Introduced in BC28, still in BC30, changed in BC29.

System Application · System.Integration.Sharepoint · BC28-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/System%20Application/App/SharePoint/src/graph/helpers/SharePointGraphUriBuilder.Codeunit.al) · facts from BC29

## Properties

| Property | Value |
|---|---|
| Access | Internal |

## Procedures

- `Initialize(NewSiteId: Text; NewRequestHelper: Codeunit "SharePoint Graph Req. Helper")`: Initializes the Graph URI Builder with a specific request helper.
- `GetSiteByHostAndPathEndpoint(HostName: Text; RelativePath: Text): Text`: Gets the endpoint for getting a site by hostname and path.
- `GetSiteEndpoint(): Text`: Gets the endpoint for getting a site.
- `GetListsEndpoint(): Text`: Gets the endpoint for getting all lists.
- `GetListEndpoint(ListId: Text): Text`: Gets the endpoint for getting a list by ID.
- `GetListItemsEndpoint(ListId: Text): Text`: Gets the endpoint for getting items in a list.
- `GetCreateListItemEndpoint(ListId: Text): Text`: Gets the endpoint for creating an item in a list.
- `GetListItemByIdEndpoint(ListId: Text; ItemId: Text): Text`: Gets the endpoint for getting a single list item by ID.
- `GetUpdateListItemFieldsEndpoint(ListId: Text; ItemId: Text): Text`: Gets the endpoint for updating list item fields.
- `GetDriveEndpoint(): Text`: Gets the endpoint for getting the default drive.
- `GetDrivesEndpoint(): Text`: Gets the endpoint for getting all drives.
- `GetDriveRootEndpoint(): Text`: Gets the endpoint for getting the root of the default drive.
- `GetDriveRootChildrenEndpoint(): Text`: Gets the endpoint for getting the children of the root folder.
- `GetDriveItemByPathEndpoint(ItemPath: Text): Text`: Gets the endpoint for getting an item by path.
- `GetDriveItemByIdEndpoint(ItemId: Text): Text`: Gets the endpoint for getting an item by ID.
- `GetDriveItemChildrenByIdEndpoint(ItemId: Text): Text`: Gets the endpoint for getting the children of an item by ID.
- `GetDriveItemChildrenByPathEndpoint(ItemPath: Text): Text`: Gets the endpoint for getting the children of an item by path.
- `GetDriveItemContentByIdEndpoint(ItemId: Text): Text`: Gets the endpoint for getting the content of an item by ID.
- `GetDriveItemContentByPathEndpoint(ItemPath: Text): Text`: Gets the endpoint for getting the content of an item by path.
- `GetUploadEndpoint(FolderPath: Text; FileName: Text): Text`: Gets the endpoint for uploading content to an item.
- `AddOptionalParametersToEndpoint(BaseEndpoint: Text; GraphOptionalParameters: Codeunit "Graph Optional Parameters"): Text`: Adds OData query parameters to an endpoint
- `GetSpecificDriveRootEndpoint(DriveId: Text): Text`: Gets the endpoint for getting the root of a specific drive.
- `GetSpecificDriveRootChildrenEndpoint(DriveId: Text): Text`: Gets the endpoint for getting the children of the root folder of a specific drive.
- `GetSpecificDriveItemChildrenByPathEndpoint(DriveId: Text; ItemPath: Text): Text`: Gets the endpoint for getting the children of an item by path in a specific drive.
- `GetSpecificDriveUploadEndpoint(DriveId: Text; FolderPath: Text; FileName: Text): Text`: Gets the endpoint for uploading content to an item in a specific drive.
- `GetSpecificDriveEndpoint(DriveId: Text): Text`: Gets the endpoint for getting a specific drive by ID.
- `GetCopyItemEndpoint(ItemId: Text): Text`: Gets the endpoint for copying a drive item.

Plus 6 local procedures.

## Calls

From the extracted call graph of BC29 (graphify-al on the snapshot checkout): calls whose target is known from a declared type or an `Object::"Name"` argument. Interface dispatch and calls through events are not counted, so the list is not complete.

- [Codeunit 3060 "Uri"](../codeunit/3060.md) (4 calls: `AddOptionalParametersToEndpoint → GetAbsoluteUri`, `AddOptionalParametersToEndpoint → Init`, `EscapeDataString → EscapeDataString`, …)
- [Codeunit 3061 "Uri Builder"](../codeunit/3061.md) (4 calls: `AddOptionalParametersToEndpoint → AddODataQueryParameter`, `AddOptionalParametersToEndpoint → AddQueryParameter`, `AddOptionalParametersToEndpoint → GetUri`, …)
- [Codeunit 9353 "Graph Optional Parameters"](../codeunit/9353.md) (4 calls: `AddOptionalParametersToEndpoint → GetODataQueryParameters`, `AddOptionalParametersToEndpoint → GetQueryParameters`, `HasParameters → GetODataQueryParameters`, …)
- [Codeunit 9123 "SharePoint Graph Req. Helper"](../codeunit/9123.md) (1 call: `GetGraphApiBaseUrl → GetGraphApiBaseUrl`)

## Called by

- [Codeunit 9120 "SharePoint Graph Client Impl."](../codeunit/9120.md) (21 calls: `CopyItem → GetCopyItemEndpoint`, `CreateFolder → GetSpecificDriveItemChildrenByPathEndpoint`, `CreateFolder → GetSpecificDriveRootChildrenEndpoint`, …)
- [Codeunit 9123 "SharePoint Graph Req. Helper"](../codeunit/9123.md) (1 call: `PrepareEndpoint → AddOptionalParametersToEndpoint`)

## Recent changes

- 2026-08-17 [#8318 SharePoint Graph Module - extend functionality with additional methods](../../changes/bcapps/8318.md) (main, BC30, feature)

## Across versions

- Present in: BC28-30
- Changed (declaration) in: BC29

Source: AL metadata extracted from the code (names, ids, signatures, properties); no code bodies (D10).

## Ask your agent

Procedure bodies are not stored here (D10). The call sections above are our own, per object, from the BC29 call graph. For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: `bcatlas_resolve_node(object_type: "codeunit", object_name: "SharePoint Graph Uri Builder")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
