API Referenceproject-api

DyLy Project API

DyLy Project API

Version
v1
Server
https://dyly-api.lilacwells.dev/api/v1

projects

delete/projects/{project_id}

delete project

#delete-projects

Permanently deletes a project and all associated resources including domains, API keys, and short links. This operation cannot be undone.

Behavior

  • All custom domains associated with the project are removed
  • All API keys (primary and secondary) are revoked
  • All short links created under this project are deleted
  • The operation is idempotent - calling delete on an already deleted project returns 404

Rate limiting

  • Subject to rate limiting based on the user's plan

Parameters

project_idpathrequired

The unique identifier (UUID v4) of the project to delete. Must be a valid UUID format.

string / uuid

Authorizationheaderrequired

HTTP Basic authentication header. Format: Authorization: Basic base64(clientId:clientSecret) where clientId and clientSecret are the API credentials that have permission to delete the project.

string

Responses

204

Project successfully deleted. No content returned.

400application/json

Invalid request. The project_id parameter does not match the required UUID format or other validation failed.

object

  • errorCoderequiredstring

    A stable, machine-readable error code that identifies the specific type of error.

  • errorMessagerequiredstring

    A human-readable message that describes the error. This message may contain additional context about what went wrong.

  • correlationIdrequiredstring / uuid

    A unique identifier (UUID) for this request that can be used to trace the error in server logs. Include this ID when contacting support. This value matches the X-Correlation-Id response header.

401application/json

Unauthorized. The Authorization header is missing, malformed, or contains invalid credentials.

object

  • errorCoderequiredstring

    A stable, machine-readable error code that identifies the specific type of error.

  • errorMessagerequiredstring

    A human-readable message that describes the error. This message may contain additional context about what went wrong.

  • correlationIdrequiredstring / uuid

    A unique identifier (UUID) for this request that can be used to trace the error in server logs. Include this ID when contacting support. This value matches the X-Correlation-Id response header.

403application/json

Forbidden. The authenticated client does not have permission to delete this project.

object

  • errorCoderequiredstring

    A stable, machine-readable error code that identifies the specific type of error.

  • errorMessagerequiredstring

    A human-readable message that describes the error. This message may contain additional context about what went wrong.

  • correlationIdrequiredstring / uuid

    A unique identifier (UUID) for this request that can be used to trace the error in server logs. Include this ID when contacting support. This value matches the X-Correlation-Id response header.

404application/json

Project not found. The specified project_id does not exist or has already been deleted.

object

  • errorCoderequiredstring

    A stable, machine-readable error code that identifies the specific type of error.

  • errorMessagerequiredstring

    A human-readable message that describes the error. This message may contain additional context about what went wrong.

  • correlationIdrequiredstring / uuid

    A unique identifier (UUID) for this request that can be used to trace the error in server logs. Include this ID when contacting support. This value matches the X-Correlation-Id response header.

429application/json

Too many requests. Rate limit exceeded for the current user or project.

The edge aggregate rate limiter can also reject the request before it is forwarded to Azure. An edge rejection uses the existing errorResponse body with errorCode set to EDGE_RATE_LIMITED, allowing clients to distinguish it from the existing Function rate-limit response.

For an edge rejection, Retry-After is a positive integer number of seconds (delta-seconds) representing the recommended wait until the current decision window ends. It does not guarantee that a retry will be accepted after that time. In particular, a route-wide limit is shared, so other sources may consume capacity while the client waits and the retry may receive another 429.

Edge aggregate rate limiting is a coarse control and does not provide client-specific remaining-capacity information. Edge rejections do not include RateLimit-Limit, RateLimit-Remaining, or RateLimit-Reset, preventing clients from inferring the service's aggregate processing capacity or remaining quota.

object

  • errorCoderequiredstring

    A stable, machine-readable error code that identifies the specific type of error.

  • errorMessagerequiredstring

    A human-readable message that describes the error. This message may contain additional context about what went wrong.

  • correlationIdrequiredstring / uuid

    A unique identifier (UUID) for this request that can be used to trace the error in server logs. Include this ID when contacting support. This value matches the X-Correlation-Id response header.

500application/json

Internal server error. An unexpected error occurred while processing the request.

object

  • errorCoderequiredstring

    A stable, machine-readable error code that identifies the specific type of error.

  • errorMessagerequiredstring

    A human-readable message that describes the error. This message may contain additional context about what went wrong.

  • correlationIdrequiredstring / uuid

    A unique identifier (UUID) for this request that can be used to trace the error in server logs. Include this ID when contacting support. This value matches the X-Correlation-Id response header.

get/projects/{project_id}

get project

#get-project

Retrieves detailed information about a specific project including its configuration, domains, and plan details.

Response

  • Returns project metadata including projectId, name, registered domains, and active plan
  • Domain list includes the default subdomain and any custom domains

Rate limiting

  • Subject to rate limiting based on the user's plan

Parameters

project_idpathrequired

The unique identifier (UUID v4) of the project to retrieve. Must be a valid UUID format.

string / uuid

Authorizationheaderrequired

HTTP Basic authentication header. Format: Authorization: Basic base64(clientId:clientSecret) where clientId and clientSecret are the API credentials that have read permission for the project.

string

Responses

200application/json

Project details retrieved successfully.

object

  • projectIdstring / uuid

    The globally unique identifier (UUID v4) of the project. Used to reference this project in API operations.

  • namestring

    The display name of the project as set by the user.

  • domainsarray

    List of domains registered for this project. Includes the default subdomain (e.g., <subDomainString>.dyly.dev) and any custom domains that have been added and validated.

    array

    List of domains registered for this project. Includes the default subdomain (e.g., <subDomainString>.dyly.dev) and any custom domains that have been added and validated.

    Items

    string

  • planstring

    The subscription plan tier for this project. Determines available features, rate limits, and quotas. Possible values: Free, Standard.

  • fallbackUrlstring

    Optional fallback URL where users are redirected when a short link is not found, expired, or one-time link has already been used. Only present if configured.

400application/json

Invalid request. The project_id parameter does not match the required UUID format or other validation failed.

object

  • errorCoderequiredstring

    A stable, machine-readable error code that identifies the specific type of error.

  • errorMessagerequiredstring

    A human-readable message that describes the error. This message may contain additional context about what went wrong.

  • correlationIdrequiredstring / uuid

    A unique identifier (UUID) for this request that can be used to trace the error in server logs. Include this ID when contacting support. This value matches the X-Correlation-Id response header.

401application/json

Unauthorized. The Authorization header is missing, malformed, or contains invalid credentials.

object

  • errorCoderequiredstring

    A stable, machine-readable error code that identifies the specific type of error.

  • errorMessagerequiredstring

    A human-readable message that describes the error. This message may contain additional context about what went wrong.

  • correlationIdrequiredstring / uuid

    A unique identifier (UUID) for this request that can be used to trace the error in server logs. Include this ID when contacting support. This value matches the X-Correlation-Id response header.

403application/json

Forbidden. The authenticated client does not have permission to read this project or rate limit exceeded.

object

  • errorCoderequiredstring

    A stable, machine-readable error code that identifies the specific type of error.

  • errorMessagerequiredstring

    A human-readable message that describes the error. This message may contain additional context about what went wrong.

  • correlationIdrequiredstring / uuid

    A unique identifier (UUID) for this request that can be used to trace the error in server logs. Include this ID when contacting support. This value matches the X-Correlation-Id response header.

404application/json

Project not found. The specified project_id does not exist.

object

  • errorCoderequiredstring

    A stable, machine-readable error code that identifies the specific type of error.

  • errorMessagerequiredstring

    A human-readable message that describes the error. This message may contain additional context about what went wrong.

  • correlationIdrequiredstring / uuid

    A unique identifier (UUID) for this request that can be used to trace the error in server logs. Include this ID when contacting support. This value matches the X-Correlation-Id response header.

429application/json

Too many requests. Rate limit exceeded for the current user or project.

The edge aggregate rate limiter can also reject the request before it is forwarded to Azure. An edge rejection uses the existing errorResponse body with errorCode set to EDGE_RATE_LIMITED, allowing clients to distinguish it from the existing Function rate-limit response.

For an edge rejection, Retry-After is a positive integer number of seconds (delta-seconds) representing the recommended wait until the current decision window ends. It does not guarantee that a retry will be accepted after that time. In particular, a route-wide limit is shared, so other sources may consume capacity while the client waits and the retry may receive another 429.

Edge aggregate rate limiting is a coarse control and does not provide client-specific remaining-capacity information. Edge rejections do not include RateLimit-Limit, RateLimit-Remaining, or RateLimit-Reset, preventing clients from inferring the service's aggregate processing capacity or remaining quota.

object

  • errorCoderequiredstring

    A stable, machine-readable error code that identifies the specific type of error.

  • errorMessagerequiredstring

    A human-readable message that describes the error. This message may contain additional context about what went wrong.

  • correlationIdrequiredstring / uuid

    A unique identifier (UUID) for this request that can be used to trace the error in server logs. Include this ID when contacting support. This value matches the X-Correlation-Id response header.

500application/json

Internal server error. An unexpected error occurred while processing the request.

object

  • errorCoderequiredstring

    A stable, machine-readable error code that identifies the specific type of error.

  • errorMessagerequiredstring

    A human-readable message that describes the error. This message may contain additional context about what went wrong.

  • correlationIdrequiredstring / uuid

    A unique identifier (UUID) for this request that can be used to trace the error in server logs. Include this ID when contacting support. This value matches the X-Correlation-Id response header.

put/projects/{project_id}

update project

#update-project

Updates the configuration of an existing project. Allows modification of project name and fallback URL settings.

Updatable fields

  • name: The display name of the project
  • fallbackUrl: Optional URL to redirect users when a short link is not found or expired

Validation

  • Project name must follow the naming pattern (start with letter, alphanumeric with spaces/hyphens/underscores, 1-32 characters)
  • Fallback URL must be a valid absolute HTTP(S) URL if provided
  • Empty request body is accepted (no fields will be updated)

Rate limiting

  • Subject to rate limiting based on the user's plan

Parameters

project_idpathrequired

The unique identifier (UUID v4) of the project to update. Must be a valid UUID format.

string / uuid

Authorizationheaderrequired

HTTP Basic authentication header. Format: Authorization: Basic base64(clientId:clientSecret) where clientId and clientSecret are the API credentials that have update permission for the project.

string

Request body

Optional ยท application/json

object

  • namestring

    The display name of the project. Must start with a letter, followed by letters, digits, spaces, hyphens, or underscores, and end with a letter or digit. Length: 1-32 characters.

  • fallbackUrlstring

    Optional fallback URL where users are redirected when a short link is not found, expired, or one-time link has already been used. Must be a valid absolute HTTP or HTTPS URL.

Responses

200application/json

Project updated successfully. Returns the updated project details.

object

  • projectIdstring / uuid

    The globally unique identifier (UUID v4) of the project. Used to reference this project in API operations.

  • namestring

    The display name of the project as set by the user.

  • domainsarray

    List of domains registered for this project. Includes the default subdomain (e.g., <subDomainString>.dyly.dev) and any custom domains that have been added and validated.

    array

    List of domains registered for this project. Includes the default subdomain (e.g., <subDomainString>.dyly.dev) and any custom domains that have been added and validated.

    Items

    string

  • planstring

    The subscription plan tier for this project. Determines available features, rate limits, and quotas. Possible values: Free, Standard.

  • fallbackUrlstring

    Optional fallback URL where users are redirected when a short link is not found, expired, or one-time link has already been used. Only present if configured.

400application/json

Invalid request. The project_id parameter or request body does not meet validation requirements.

object

  • errorCoderequiredstring

    A stable, machine-readable error code that identifies the specific type of error.

  • errorMessagerequiredstring

    A human-readable message that describes the error. This message may contain additional context about what went wrong.

  • correlationIdrequiredstring / uuid

    A unique identifier (UUID) for this request that can be used to trace the error in server logs. Include this ID when contacting support. This value matches the X-Correlation-Id response header.

401application/json

Unauthorized. The Authorization header is missing, malformed, or contains invalid credentials.

object

  • errorCoderequiredstring

    A stable, machine-readable error code that identifies the specific type of error.

  • errorMessagerequiredstring

    A human-readable message that describes the error. This message may contain additional context about what went wrong.

  • correlationIdrequiredstring / uuid

    A unique identifier (UUID) for this request that can be used to trace the error in server logs. Include this ID when contacting support. This value matches the X-Correlation-Id response header.

403application/json

Forbidden. The authenticated client does not have permission to update this project or rate limit exceeded.

object

  • errorCoderequiredstring

    A stable, machine-readable error code that identifies the specific type of error.

  • errorMessagerequiredstring

    A human-readable message that describes the error. This message may contain additional context about what went wrong.

  • correlationIdrequiredstring / uuid

    A unique identifier (UUID) for this request that can be used to trace the error in server logs. Include this ID when contacting support. This value matches the X-Correlation-Id response header.

404application/json

Project not found. The specified project_id does not exist.

object

  • errorCoderequiredstring

    A stable, machine-readable error code that identifies the specific type of error.

  • errorMessagerequiredstring

    A human-readable message that describes the error. This message may contain additional context about what went wrong.

  • correlationIdrequiredstring / uuid

    A unique identifier (UUID) for this request that can be used to trace the error in server logs. Include this ID when contacting support. This value matches the X-Correlation-Id response header.

429application/json

Too many requests. Rate limit exceeded for the current user or project.

The edge aggregate rate limiter can also reject the request before it is forwarded to Azure. An edge rejection uses the existing errorResponse body with errorCode set to EDGE_RATE_LIMITED, allowing clients to distinguish it from the existing Function rate-limit response.

For an edge rejection, Retry-After is a positive integer number of seconds (delta-seconds) representing the recommended wait until the current decision window ends. It does not guarantee that a retry will be accepted after that time. In particular, a route-wide limit is shared, so other sources may consume capacity while the client waits and the retry may receive another 429.

Edge aggregate rate limiting is a coarse control and does not provide client-specific remaining-capacity information. Edge rejections do not include RateLimit-Limit, RateLimit-Remaining, or RateLimit-Reset, preventing clients from inferring the service's aggregate processing capacity or remaining quota.

object

  • errorCoderequiredstring

    A stable, machine-readable error code that identifies the specific type of error.

  • errorMessagerequiredstring

    A human-readable message that describes the error. This message may contain additional context about what went wrong.

  • correlationIdrequiredstring / uuid

    A unique identifier (UUID) for this request that can be used to trace the error in server logs. Include this ID when contacting support. This value matches the X-Correlation-Id response header.

500application/json

Internal server error. An unexpected error occurred while processing the request.

object

  • errorCoderequiredstring

    A stable, machine-readable error code that identifies the specific type of error.

  • errorMessagerequiredstring

    A human-readable message that describes the error. This message may contain additional context about what went wrong.

  • correlationIdrequiredstring / uuid

    A unique identifier (UUID) for this request that can be used to trace the error in server logs. Include this ID when contacting support. This value matches the X-Correlation-Id response header.