Skip to main content
The substring function extracts a substring from a source string starting at a specified position. Use this function to parse fixed-format logs, extract specific segments from structured strings, or truncate text fields.

For users of other query languages

If you come from other query languages, this section explains how to adjust your existing queries to achieve the same results in APL.
In Splunk SPL, you use the substr function. APL’s substring provides similar functionality with zero-based indexing.
| eval extracted=substr(field, 5, 10)
Note: Splunk uses 1-based indexing while APL uses 0-based indexing.
In ANSI SQL, you use SUBSTRING with similar syntax. APL’s substring provides the same functionality.
SELECT SUBSTRING(field, 5, 10) AS extracted FROM logs;

Usage

Syntax

substring(source, startingIndex, length)

Parameters

NameTypeRequiredDescription
sourcestringYesThe source string to extract from.
startingIndexintYesThe zero-based starting position.
lengthintNoThe number of characters to extract. If omitted, extracts to the end.

Returns

Returns the extracted substring. Returns empty string if startingIndex is beyond the string length.

Use case examples

  • Log analysis
  • OpenTelemetry traces
  • Security logs
Extract specific segments from fixed-format URIs or identifiers.Query
['sample-http-logs']
| extend api_version = substring(uri, 1, 4)
| where api_version == 'api/'
| extend endpoint = substring(uri, 5, 20)
| summarize request_count = count() by endpoint, method
| sort by request_count desc
| limit 10
Run in PlaygroundOutput
endpointmethodrequest_count
usersGET2341
ordersPOST1987
productsGET1654
This query extracts API endpoints from URIs by taking specific character ranges, enabling analysis of API usage patterns.
  • extract: Extracts substrings using regex. Use this when you need pattern-based extraction rather than position-based.
  • split: Splits strings by delimiters. Use this when you need to tokenize rather than extract by position.
  • strlen: Returns string length. Use this to calculate positions relative to string length.
  • indexof: Finds substring positions. Use this to find dynamic starting positions for substring extraction.