# hclapi > A declarative backend engine that turns HCL manifests into HTTP APIs. ## Documentation - [hclapi openapi](/hclapi/cli/hclapi-openapi.md) - [hclapi serve](/hclapi/cli/hclapi-serve.md) - [hclapi version](/hclapi/cli/hclapi-version.md) - [hclapi](/hclapi/cli/hclapi.md) - [Execution context](/hclapi/docs/concepts/context.md): The request-scoped ctx object and the data exposed by requests and completed pipeline steps. - [Errors](/hclapi/docs/concepts/errors.md): RFC 9457 Problem Details returned by hclapi for ingress, validation, and pipeline failures. - [Expressions](/hclapi/docs/concepts/expressions.md): Request-time HCL expressions for context access, conditions, interpolation, argument mapping, and response construction. - [Request lifecycle](/hclapi/docs/concepts/lifecycle.md): How hclapi validates manifests at boot and executes the same fixed pipeline for each request. - [Pipelines and steps](/hclapi/docs/concepts/pipelines.md): The ordered step model inside endpoints, including execution rules, outputs, and failure behavior. - [Introduction](/hclapi/docs/index.md): A declarative backend engine that turns HCL manifests, SQL, and Starlark into HTTP APIs. - [Installation](/hclapi/docs/installation.md): Install hclapi on Linux, macOS, Windows, or run it with Docker and Docker Compose. - [Patterns](/hclapi/docs/patterns.md): Recurring pipeline patterns referenced across endpoint configurations. - [Quickstart](/hclapi/docs/quickstart.md): Create a manifest, start hclapi, and call two working endpoints. - [Why hclapi](/hclapi/docs/why.md): Where hclapi fits, what it provides, and where a general-purpose backend is a better fit. - [Go integration](/hclapi/guides/go.md): Embed hclapi into an existing Go application, register native steps, configure the engine, and customize error handling. - [OpenAPI configuration](/hclapi/openapi/configuration.md): OpenAPI document metadata, target servers, tags, and endpoint handler options are configured using standard HCL blocks. - [OpenAPI overview](/hclapi/openapi/overview.md): hclapi statically analyzes your manifest Abstract Syntax Tree (AST) at boot time to compile a strict, 100% compliant OpenAPI 3.1 specification. You don't need to maintain separate YAML files, write code annotations, or run external generators. The HCL manifest is the API contract. Additionally, no hidden routes are mounted behind your back. If an OpenAPI endpoint or interactive documentation portal is served by your application, it's explicitly declared as an endpoint block. - [Interactive renderers](/hclapi/openapi/renderers.md): hclapi embeds 4 interactive documentation UI renderers directly inside the single binary. Renderers are served by declaring an endpoint with an openapi {} block. ## Manifest - [Files and merging](/hclapi/docs/manifest/structure.md): How hclapi discovers HCL files, scans directories, and merges manifests into one service definition. - [server](/hclapi/docs/manifest/server.md): Transport-level listener, timeouts, request size limits, and child blocks. - [connection](/hclapi/docs/manifest/connections.md): Configure database, cache, and storage connections, pool sizing, lifecycle policies, and supported drivers. - [schema](/hclapi/docs/manifest/schemas.md): Declares structural, type, and semantic validation rules for incoming requests. Validation runs during request ingress before the pipeline begins execution. - [endpoint](/hclapi/docs/manifest/endpoints.md): Bind an HTTP method and path to request validation and a pipeline. - [Types and schema constraints](/hclapi/docs/manifest/types.md): hclapi features a strongly typed schema and configuration system. Types are verified at boot time during manifest parsing and enforced at request ingress before pipeline execution. - [env](/hclapi/docs/manifest/functions/system/env.md): Read the value of an environment variable from the host operating system. - [uuid / uuid_v4](/hclapi/docs/manifest/functions/system/uuid.md): Generate a cryptographically secure random UUID version 4 string; uuid is an alias to uuid_v4. - [uuid_v7](/hclapi/docs/manifest/functions/system/uuid_v7.md): Generate a time-ordered UUID version 7 string (RFC 9562). - [now](/hclapi/docs/manifest/functions/system/now.md): Return the current system timestamp in UTC formatted according to RFC 3339. - [problem](/hclapi/docs/manifest/functions/system/problem.md): Constructs an RFC 9457 compliant Problem Details error payload. Supports both positional shorthand for common errors and map syntax for structured validation errors and custom metadata extensions. - [json_encode](/hclapi/docs/manifest/functions/encoding/json_encode.md): Serialize HCL data structures into a valid JSON string. - [json_decode](/hclapi/docs/manifest/functions/encoding/json_decode.md): Parse a JSON string into corresponding HCL primitives, lists, or maps. - [base64_encode](/hclapi/docs/manifest/functions/encoding/base64_encode.md): Encode a string using standard RFC 4648 Base64 encoding. - [base64_decode](/hclapi/docs/manifest/functions/encoding/base64_decode.md): Decode a standard Base64 encoded string back to plain text. - [url_encode](/hclapi/docs/manifest/functions/encoding/url_encode.md): Percent-encode a string for inclusion in a URL query parameter. - [url_decode](/hclapi/docs/manifest/functions/encoding/url_decode.md): Decode a URL percent-encoded string. - [lower](/hclapi/docs/manifest/functions/strings/lower.md): Convert all characters in a string to lowercase. - [upper](/hclapi/docs/manifest/functions/strings/upper.md): Convert all characters in a string to uppercase. - [trim_space](/hclapi/docs/manifest/functions/strings/trim_space.md): Remove leading and trailing whitespace from a string. - [trim](/hclapi/docs/manifest/functions/strings/trim.md): Remove characters defined in cutset from both ends of a string. - [trim_prefix](/hclapi/docs/manifest/functions/strings/trim_prefix.md): Remove a prefix from the start of a string if present. - [trim_suffix](/hclapi/docs/manifest/functions/strings/trim_suffix.md): Remove a suffix from the end of a string if present. - [split](/hclapi/docs/manifest/functions/strings/split.md): Split a string into a list of substrings separated by separator. - [join](/hclapi/docs/manifest/functions/strings/join.md): Concatenate elements in a list of strings using a separator. - [replace](/hclapi/docs/manifest/functions/strings/replace.md): Replace all occurrences of a search string with a replacement string. - [format](/hclapi/docs/manifest/functions/strings/format.md): Format a string using standard printf-style verbs. - [coalesce](/hclapi/docs/manifest/functions/collections/coalesce.md): Return the first argument that is not null and not an empty string. - [length](/hclapi/docs/manifest/functions/collections/length.md): Return the number of elements in a list, keys in a map, or characters in a string. - [merge](/hclapi/docs/manifest/functions/collections/merge.md): Merge two or more maps with later values taking precedence. - [lookup](/hclapi/docs/manifest/functions/collections/lookup.md): Retrieve a map value with a fallback default. - [keys](/hclapi/docs/manifest/functions/collections/keys.md): Return all keys from a map, sorted lexically. - [values](/hclapi/docs/manifest/functions/collections/values.md): Return all values from a map. - [contains](/hclapi/docs/manifest/functions/collections/contains.md): Determine whether a list contains a specific value. - [sha256](/hclapi/docs/manifest/functions/cryptography/sha256.md): Compute a SHA-256 cryptographic hash of a string. - [md5](/hclapi/docs/manifest/functions/cryptography/md5.md): Compute the MD5 checksum of a string. - [hmac_sha256](/hclapi/docs/manifest/functions/cryptography/hmac_sha256.md): Compute an HMAC-SHA256 signature for a payload using a shared secret key. - [min](/hclapi/docs/manifest/functions/math/min.md): Return the smallest value from a sequence of numbers. - [max](/hclapi/docs/manifest/functions/math/max.md): Return the largest value from a sequence of numbers. - [abs](/hclapi/docs/manifest/functions/math/abs.md): Return the absolute value of a number. - [ceil](/hclapi/docs/manifest/functions/math/ceil.md): Round a floating-point number up to the nearest integer. - [floor](/hclapi/docs/manifest/functions/math/floor.md): Round a floating-point number down to the nearest integer. - [parse_int](/hclapi/docs/manifest/functions/math/parse_int.md): Parse an integer from a string representation in a base from 2 to 36. ## Pipeline steps - [sql](/hclapi/docs/steps/sql.md): Execute parameterized SQL queries and mutations with deterministic outputs and database error handling. - [starlark](/hclapi/docs/steps/starlark.md): Execute sandboxed Starlark for data transformation, filtering, and business logic. - [redis](/hclapi/docs/steps/redis.md): Execute Redis or Valkey key-value commands from a pipeline. - [transaction](/hclapi/docs/steps/transaction.md): Group multiple SQL steps into one atomic transaction with rollback semantics. - [parallel](/hclapi/docs/steps/parallel.md): Execute independent pipeline branches concurrently and join their results. - [go](/hclapi/docs/steps/go.md): Invoke a native Go function registered on the hclapi engine. - [respond](/hclapi/docs/steps/respond.md): Terminate a pipeline and define the HTTP status, headers, and response body.