Skip to main content

Data Types

This page documents all shared data types used across the OpenLynk SDKs. Each type is shown with its field names and types for every supported platform.

Returned by createLink() in all SDKs.

FieldFlutter (Dart)iOS (Swift)Android (Kotlin)Android (Java)Description
idStringStringStringStringUnique link ID (UUID)
slugStringStringStringStringURL slug (e.g., abc123)
urlStringStringStringStringFull shareable URL
destinationStringStringStringStringThe destination path provided when creating the link
metadataMap<String, dynamic>[String: Any]Map<String, Any>Map<String, Object>All metadata including system-generated fields

Example:

{
"id": "550e8400-e29b-41d4-a716-446655440000",
"slug": "abc123",
"url": "https://myapp.openlynk.to/abc123",
"destination": "/product/123?ref=share",
"metadata": {
"campaign": "summer-sale",
"destination_path": "/product/123",
"destination_full": "/product/123?ref=share",
"created_via": "sdk"
}
}

Passed to the onDeepLink callback when a deep link opens the app.

FieldFlutter (Dart)iOS (Swift)Android (Kotlin/Java)Description
originalUri / originalURLUriURLUriThe URL that opened the app
destinationStringStringStringFull destination with query parameters
destinationPathStringStringStringPath only (e.g., /product/123)
parametersMap<String, dynamic>[String: Any]Map<String, Any>Custom metadata (excluding internal fields)
metadataMap<String, dynamic>[String: Any]Map<String, Any>Full metadata object including system fields
linkIdStringStringStringOpenLynk link ID
slugStringStringStringURL slug

:::tip parameters vs metadata Use parameters when you only need the custom metadata you attached when creating the link. Use metadata when you need access to system-generated fields like destination_path, destination_full, and created_via. :::


Passed to the onRestoredLinks callback when deferred links are restored after app installation.

FieldFlutter (Dart)iOS (Swift)Android (Kotlin/Java)Description
pendingLinkIdStringStringStringID of the pending link record
originalUrlStringStringStringURL the user originally clicked
destinationUrlStringStringStringDestination URL
destinationPathString?String?String?Path only (e.g., /product/123)
destinationString?String?String?Full destination with parameters
parametersMap<String, dynamic>?[String: Any]?Map<String, Any>?Custom metadata for easy access
metadataMap<String, dynamic>[String: Any]Map<String, Any>Full metadata object
linkIdStringStringStringOriginal link ID

Flutter-Only UTM Getters

The Flutter SDK provides convenience getters on RestoredLink for UTM parameters:

GetterTypeDescription
utmSourceString?Value of utm_source from metadata
utmCampaignString?Value of utm_campaign from metadata
utmMediumString?Value of utm_medium from metadata
utmTermString?Value of utm_term from metadata
utmContentString?Value of utm_content from metadata

On other platforms, access UTM parameters directly from the metadata map.


LinkDetails

Returned by getLinkBySlug() in all SDKs.

FieldFlutter (Dart)iOS (Swift)Android (Kotlin/Java)Description
idStringStringStringLink ID
slugStringStringStringURL slug
destinationWebUrlStringStringStringWeb fallback URL
destinationPathStringStringStringPath only (e.g., /product/123)
destinationStringStringStringFull destination with parameters
parametersMap<String, dynamic>[String: Any]Map<String, Any>Extracted custom parameters
metadataMap<String, dynamic>[String: Any]Map<String, Any>Full metadata object

What's Next?