Skip to Content

Field Reference

Complete reference for the data objects returned by the Codelloy External API. Fields marked Response only — server-controlled are computed by the backend and cannot be set or overridden by the caller (any value supplied in the request body is silently ignored or overwritten).


Short URL Object

The primary object returned by POST /shortenedUrl/save, POST /shortenedUrl/bulkSave, and the list endpoint.

FieldTypeDirectionDescription
urlstringRequest + ResponseDestination URL. Required on create.
shortCodestringRequest + ResponseUnique alias for the short link. 7–50 characters, alphanumeric / hyphen / underscore only (regex ^[a-zA-Z0-9_-]{7,50}$). Auto-generated when omitted on create; required on update.
shortLinkNamestringRequest + ResponseHuman-readable label shown in the dashboard list view. Optional but strongly recommended for API-created links.
smartLinkstringResponse onlyThe full short URL (e.g. https://re.codelloy.com/spring-sale). Reflects your active custom domain when one is set.
isActivebooleanRequest + ResponseDefaults to true. false archives the link (HTTP 410 EN002 at click time).
utmSourcestringRequest + ResponseUTM source tag appended at click time.
utmCampaignstringRequest + ResponseUTM campaign tag.
utmMediumstringRequest + ResponseUTM medium tag.
enableCustomMetadatabooleanRequest + ResponseWhen true, the customMetadata* fields override the destination URL’s Open Graph preview. Requires the Metadata Preview feature on your plan.
customMetadataTitlestringRequest + ResponseOverride title for link previews.
customMetadataDescriptionstringRequest + ResponseOverride description for link previews.
customMetadataImageUrlstringRequest + ResponseOverride image URL for link previews.
effectivePreviewMetadataobject<string, string>Response onlyResolved preview metadata after applying overrides — title, description, imageUrl keys. Reflects what social-sharing surfaces actually see.
deepLinksarrayRequest + ResponseArray of DeepLink objects (see below). Omit or pass [] for a plain redirect-only short URL.
createdAtstringResponse onlyJava LocalDateTime (e.g. "2026-05-15T10:30:00.742912") — no Z suffix, microsecond precision, no timezone. Always interpret as UTC. Parse with a LocalDateTime / naive-datetime strategy on the client.
updatedAtstringResponse onlySame shape as createdAt, for the most recent write.
createdBystringResponse onlyEither an email (dashboard-created) or api-key:<label> (External API-created). See audit attribution.
updatedBystringResponse onlySame shape as createdBy, for the most recent write.
createdViaenumResponse only — server-controlledINTERNAL (dashboard-created) or EXTERNAL (API-created). Values supplied in the request body are silently stripped on save. Filterable on the list endpoint via the query DSLquery=createdVia=EXTERNAL.
lastModifiedViaenumResponse only — server-controlledSame shape as createdVia, for the most recent write. A row created via the dashboard and later updated via the API has createdVia=INTERNAL, lastModifiedVia=EXTERNAL. Filterable via the same DSL field.

Note: Fields with no value (null) are omitted from the JSON response.


One entry in the Short URL Object’s deepLinks[] array. Each entry binds a registered Mobile App to a per-platform deep-link configuration.

FieldTypeDirectionDescription
mobileAppIdstringRequired on request12-character base64-style ID from your Manage Apps dashboard (charset includes [A-Za-z0-9+/], e.g. "TgdAhWK+24tg"). Treat as opaque — don’t URL-encode or split. Null / blank / unknown values return DL001.
deeplinkUrlstringRequest + ResponseCustom-scheme URI to open the app (e.g. myapp://product/123).
fallbackUrlstringRequest + ResponseWeb URL used when fallbackEnabled=true and the app is not installed.
linkBehaviourstringRequest + Response"app" (try deep link first) or "webBrowser" (skip the app, go straight to url).
fallbackEnabledbooleanRequest + ResponseWhen true, prefer fallbackUrl over the Store URL on app-not-installed.
platformstringResponse only — server-controlledReflects the registered MobileApp.platform enum ("IOS" / "ANDROID" / "WEB"). Values supplied in request bodies are silently overwritten on save.
storeUrlstringResponse only — server-controlledReflects the current MobileApp.storeUrl from your Manage Apps registration. Edits are picked up immediately on the next read. Values supplied in the request body are silently overwritten on save.

Pagination Object

Returned by the list endpoint. The envelope is {response: {data: [...], page: {...}}}.

FieldTypeDescription
dataarrayArray of Short URL Objects for the current page.
page.sizeintegerNumber of records per page (matches the size request param).
page.numberintegerCurrent page number (zero-based).
page.totalElementsintegerTotal number of records matching the query.
page.totalPagesintegerTotal number of pages available.

Response Envelope

Every Codelloy API response is wrapped in the CodelloyResponse envelope:

FieldTypeDescription
responseobjectThe result payload on success. Omitted on failure.
errorsarrayA non-empty array of Error objects on failure. Omitted on success.

Error Object

FieldTypeDescription
codestringMachine-readable error code (e.g. VE001, DL001, SML005). See API Errors for the full catalogue.
messagestringHuman-readable description. May contain field paths for validation failures.
detailsobject<string, any>Optional structured payload — present on quota errors, deep-link validation, rate-limit responses, etc. Field shape varies by code; see API Errors.
Last updated on