REST API Best Practices

APIs Are Not Just Technical Interfaces—They Are Business Interfaces

REST APIs have been treated as developer utilities for too long and are isolated from larger businesses, security, and compliance strategies. But in today’s digital-first economy, APIs are not mere data conduits—they are your business’s operational lifelines. They expose core business logic, connect ecosystems, and shape the digital experience that customers and partners rely on. To treat them purely as technical constructs is to ignore their actual value—and the risks that come with it.

APIs as the Frontline of Digital Trust

Every API call is a transaction of trust. Whether a banking app fetches transaction history or a logistics system updates delivery statuses, these interactions reveal sensitive data, invoke critical processes, and impact customer experience in real time. An API that leaks data or behaves inconsistently erodes confidence in the application and the organization. Security and trust are built not at the firewall but within each endpoint’s design.

Business Continuity Depends on API Integrity

APIs underpin enterprise workflows, partner integrations, customer apps, and internal automation. A misconfigured or poorly governed API can shut down revenue streams, violate service-level agreements (SLAs), or expose sensitive information without triggering a traditional incident alert. As a result, every CISO and CFO must understand APIs not just as software artifacts but as critical infrastructure that demands the same resilience, compliance, and risk oversight as physical systems or financial processes.

The Business Cost of Insecure or Unstable APIs

When APIs go wrong, the damage isn’t confined to logs and latency charts. There are direct and measurable consequences: data breaches, legal exposure, compliance violations, reputational loss, and customer churn. Each poorly secured or undocumented endpoint is an open invitation for attackers—and a liability waiting to be exploited. Security teams must treat every API design decision as a policy decision. Likewise, finance leaders must evaluate APIs as a line item in DevOps and as part of the enterprise risk register.

Elevating the API Conversation to the Executive Table

API strategy is no longer a backroom concern for engineering. It must be part of the boardroom dialogue. This shift demands a new level of collaboration between CISOs, CFOs, and developers. This coalition views APIs as enablers of growth, targets for attackers, and the connective tissue of modern business. REST API best practices are no longer optional or solely technical—they are competitive differentiators and compliance imperatives.

This article will explore REST API best practices from a business-first, security-anchored perspective, highlighting what forward-thinking security leaders need to know to build trust, ensure resilience, and stay ahead of regulatory scrutiny.

Design for Predictability, Not Just Functionality

APIs succeed not when they work once, but when they work consistently and reliably every time. Functionality is expected; predictability is what builds confidence. From developers to automated systems, REST API consumers rely on consistent behavior, response formats, and error semantics. Yet too many APIs prioritize “getting the job done” over “getting it done consistently,” undermining stability, trust, and scalability. In regulated industries, inconsistency isn’t just frustrating—it’s dangerous.

Predictability as a Strategic Asset

Predictability isn’t merely a developer convenience; it’s a business enabler. When APIs behave consistently across endpoints, teams can automate more aggressively, integrate faster, and onboard partners with fewer errors. Predictable APIs reduce the need for defensive coding, lower support costs, and decrease the surface area for misconfiguration—a key concern for security-conscious enterprises. CISOs and CFOs should view predictability as a control that enhances agility and reduces operational risk.

Naming Conventions and URL Structure Should Reflect Domain Logic

A predictable API starts with intuitive, domain-aligned URL structures. Resource names should mirror business objects, not implementation details. Use nouns for resources (`/users`, `/transactions`) and hierarchical structures that reflect real-world relationships (`/accounts/{accountId}/transactions`). Predictable URL patterns enable programmatic exploration and reduce the need for extensive documentation lookup, boosting developer velocity and minimizing error rates.

Consistent HTTP Verb Usage Is More Than a Best Practice

Using `GET` for reads, `POST` for creation, `PUT` for updates, and `DELETE` for removal isn’t just REST dogma—it’s how clients form expectations. Deviating from these norms, such as using `POST` for idempotent updates or `GET` to trigger side effects, introduces ambiguity. That ambiguity can lead to data loss, double charges, or unauthorized changes—outcomes that trigger audit flags and erode compliance.

Standardized Response Structures Improve Reliability and Alerting

Every API response should follow a consistent format, especially for error handling. Wrap responses in predictable envelopes (e.g., always include `status`, `message`, `data`) and define a schema for error codes that maps cleanly to user actions or remediation steps. Consistency in response bodies allows automated systems to react to failures intelligently and reliably—an essential capability in complex, interconnected environments.

Versioning Should Preserve Behavioral Expectations

Adding new features shouldn’t change the rules of engagement for existing consumers. When change is necessary, explicitly update the version and ensure that behavior remains stable within each version boundary. Avoid silent breakage, undocumented shifts in data format, or behavior that varies based on input data patterns. Predictability in versioning is especially critical in industries with long-lived clients or certified integrations.

Predictive APIs are less about satisfying developers and more about securing business continuity. CISOs should champion consistency as a risk-reduction strategy. CFOs should see the cost savings in fewer integration delays and support escalations. Predictability turns APIs from black boxes into dependable building blocks—key for any organization serious about secure, scalable digital transformation.

Authentication and Authorization Are Non-Negotiable

In the era of API-driven ecosystems, authentication and authorization aren’t optional—they are the frontline defense. Yet, many organizations still treat them as implementation afterthoughts rather than strategic design pillars. For CISOs and CFOs, the implications go far beyond technical correctness. Weak or inconsistent access controls can compromise regulatory compliance, breach confidentiality agreements, and lead to devastating data exposures.

Authentication Must Be Context-Aware

Static API keys and basic token-based auth are no longer sufficient for modern security demands. Authentication must consider the context of each request, including who is making it, from where, when, and how frequently. Implement adaptive authentication strategies that analyze behavioral signals, device metadata, and IP reputation in real time. Risk scoring at the authentication layer helps prevent credential abuse and automate escalation paths, such as requiring multi-factor authentication (MFA) or triggering fraud detection.

Authorization Should Be Granular, Not Binary

Too many APIs implement binary authorization—either you have access or you don’t. This outdated model crumbles under the weight of modern, role-based, attribute-based, or policy-based access control (RBAC, ABAC, PBAC)—design APIs with fine-grained permissions baked into endpoints. For example, a user might be able to `GET` a record but not `DELETE` it, or update only specific fields based on business rules. Implementing policy enforcement points within the API logic, closely tied to the identity context, makes your authorization model scalable and auditable.

Never Trust Frontend-Only Enforcement

A recurring security flaw: assuming the frontend UI will enforce access constraints. APIs must validate every request independently of the client’s behavior. Never rely on hidden form fields, frontend route logic, or client-side JavaScript to restrict access. Attackers don’t use your UI—they craft direct HTTP calls. Enforce access policies at the API gateway and within application logic to eliminate bypass paths.

Token Hygiene Is as Critical as Password Hygiene

Tokens are modern credentials. Please treat them with the same security rigor as passwords. Implement short token lifespans, rotate secrets frequently, and require proof of possession for high-privilege operations. Audit token usage patterns to detect anomalies, such as tokens from unexpected geographies or multiple tokens tied to a single identity used in parallel. Ensure that tokens carry the minimum necessary privileges and adhere to the principle of least privilege from issuance to revocation.

Authentication and authorization aren’t just checkboxes—they’re continuous, adaptive disciplines that must evolve in response to the ever-changing threat landscape. CISOs must advocate for investments in modern identity infrastructure, while CFOs must acknowledge that inadequate access control isn’t only a security risk but also a material business risk. APIs that fail to verify and validate access appropriately aren’t just insecure—they’re liabilities in motion.

Schema-First API Development Builds Organizational Alignment

In most organizations, APIs are the connective tissue between teams, systems, and services—but without a shared blueprint, that tissue tears under the strain of growth. Schema-first API development flips the typical build-first, document-later mindset by prioritizing contract definition before any code is written. This discipline does more than streamline engineering for security-conscious and compliance-driven organizations—it fosters clarity, consistency, and accountability across departments.

Contracts Before Code: Aligning Business and Security Goals

When teams define API schemas upfront—using standards like OpenAPI or AsyncAPI—they force early alignment on what data is exposed, who needs it, and why. This clarity is not just technical—it becomes a live contract between product owners, security teams, legal counsel, and developers. For CISOs, this is a critical leverage point: schemas serve as a design-time enforcement mechanism for security principles such as least privilege, data minimization, and trust boundaries.

Security as a Stakeholder, Not a Reviewer

Schema-first development brings security teams into the conversation before implementation, not after. When API contracts are agreed upon collaboratively, InfoSec can assess exposure risks early: Are sensitive fields encrypted in transit? Are there nested data structures that leak unnecessary details? By shifting left into the design phase, security reviews become proactive and preventative, reducing the number of reactive patches and incident responses downstream.

Eliminating Shadow APIs Through Visibility

Schema-first methodologies inherently generate machine-readable, version-controlled artifacts. These artifacts serve as the single source of truth, feeding automated documentation, mocking tools, and validation tests. More importantly for CISOs, they feed API discovery tools that help inventory and govern endpoints. This visibility drastically reduces the likelihood of undocumented or “shadow” APIs slipping into production, one of the leading causes of modern data breaches.

Enabling Governance Through Automation

When schemas are the cornerstone of development, governance is no longer manual—it’s programmable. Policies for naming conventions, pagination, error formats, and versioning can be enforced through CI/CD pipelines. Automated linters and validators ensure that every API pull request adheres to security and design standards before it is merged into production. For CFOs and security leaders, this translates to lower compliance costs and fewer surprises during audits.

Schema-first API development isn’t just an engineering best practice—it’s a governance strategy. By committing to schemas upfront, organizations codify their security posture, reduce operational chaos, and build APIs that are as predictable as they are powerful. In a world where APIs increasingly define enterprise risk, schema-first design is the discipline that ensures your interfaces don’t become your liabilities.

Schema-First API Development Builds Organizational Alignment

While API development often starts in code and ends in documentation, that sequence leaves a costly gap that can fracture alignment between engineering, security, compliance, and business stakeholders. Schema-first API development flips this script by using the API contract as a strategic blueprint that fosters collaboration, transparency, and compliance from day one. For CISOs and security-minded leaders, schema-first isn’t a development methodology—it’s an enterprise alignment strategy.

Start with the Contract, Not the Code

Defining your API schema before implementation establishes a contract between internal teams and external consumers. It clarifies business logic, security boundaries, and data exposure before committing runtime behavior. For CISOs, this upfront visibility creates a checkpoint to ensure the API aligns with organizational security principles, like zero trust, data minimization, and least privilege access, before vulnerabilities enter the codebase.

Cross-Functional Alignment Through API Design

When schema-first design is practiced, API development ceases to be a siloed engineering task and becomes a cross-functional conversation. Legal, compliance, product, and InfoSec teams can review and sign off on schemas before development begins. This pre-code consensus prevents downstream rework, mitigates risk, and ensures that APIs are both functionally correct and ethically and legally sound.

API Governance by Design, Not Enforcement

Schemas act as an enforcement mechanism for governance policies—naming conventions, error handling formats, required fields, or PII redaction rules can be encoded directly into the schema definitions. When integrated into CI/CD pipelines, these schemas drive automated validations that enforce policy adherence without relying on human gatekeeping. This approach not only scales, it reduces governance overhead and makes compliance continuous rather than episodic.

Visibility as a Security Asset

Schema-first APIs naturally feed into discovery, documentation, and monitoring tools. They help create an up-to-date API inventory—a critical asset for identifying rogue endpoints and eliminating shadow APIs. In today’s distributed environments, where services multiply rapidly, schema-first development enables real-time visibility, making APIs observable, traceable, and defensible.

Business Outcomes over Technical Optimizations

Schematic-first API development is about clarity and coordination, not just cleaner code. It enables faster product cycles, lowers security incident rates, and ensures regulatory alignment without sacrificing speed. For CFOs, this translates to a measurable return on investment (ROI). For CISOs, it means APIs that are secure by design, governable, and accountable throughout their lifecycle.

Schema-first isn’t just a development preference—it’s an organizational discipline that ties technical execution to strategic outcomes. For security-first enterprises, it serves as the bridge between API innovation and responsible governance.

Error Handling as a Security Control

In most engineering playbooks, error handling concerns user experience or debugging convenience. However, in API security, error handling is a frontline defense mechanism. How your APIs fail—and what they reveal when they do—can either harden your posture or expose your backend like a glass window. For CISOs and information security leaders, error handling isn’t just a developer best practice. It’s a vital security control that communicates boundaries, suppresses reconnaissance, and limits an attacker’s field of vision.

Suppressing Stack Traces, Protecting the Blueprint

Many APIs in development environments leak verbose error messages: stack traces, internal file paths, exception types, and even SQL statements. To attackers, this is reconnaissance gold. These seemingly harmless messages act as blueprints for how your systems are wired—and where they are weak. Schema-based error modeling enables teams to sanitize and control all outbound error content, transforming a noisy failure into a concise denial.

Consistent Response Codes to Thwart Enumeration

Uniform HTTP status codes are not only good practice—they’re an obfuscation strategy. APIs that return `404` for non-existent resources and `403` for unauthorized access give away critical state information. Adversaries use this to enumerate valid endpoints, user IDs, or resource existence. Instead, consistently using `403 Forbidden` for both conditions neutralizes these probing attempts by flattening the signal surface.

Rate-Limited and Logged Errors for Threat Detection

Every failed API request is a data point. Patterned errors, like repeated `401` responses or malformed POST bodies, may indicate credential stuffing or injection attempts. Intelligent error logging feeds threat intelligence systems when enriched with IPs, timestamps, and tokens. Combined with rate-limiting, it creates an automatic throttle to prevent malicious behavior before a full-scale compromise occurs.

Declarative Error Contracts for Developer Clarity

Developers often improvise their error messages, leading to inconsistency and leaks. By defining error response schemas up front—what errors exist, their structure, and when they apply—you align security expectations with implementation. This reduces developer burden and ensures predictability in production, which helps both users and security monitors distinguish between noise and anomaly.

The Quietest API Is the Safest

A secure API says little when things go wrong. Silence isn’t failure—it’s a form of control. By minimizing error disclosures, eliminating variation, and tightly validating what can even fail in the first place, APIs become harder to map, fuzz, and exploit.

In cybersecurity, every word counts—even in failure. Treat error handling as more than UX polish. Done right, it becomes a digital decoy, a behavioral honeypot, and a strategic blindfold for attackers. Error handling is not a software afterthought but an intentional security posture.

Observability is a Security Responsibility

Observability is often treated as an operations function—monitoring uptime, performance, and availability. However, in API security, observability takes on a new meaning: it becomes a visibility layer for threat detection, policy enforcement, and tracking behavioral anomalies. For CISOs, this means elevating observability from a DevOps checkbox to a strategic pillar of the organization’s risk management framework.

From Logs to Intelligence: Instrumenting for Intent

Traditional logging focuses on capturing errors or throughput, but security-grade observability digs deeper. It captures intent. By logging user IDs, session behaviors, input payloads, and resource access patterns—not just whether a call succeeded—you gain insights into how APIs are being used versus how they were meant to be used. Instrumentation at this level enables the distinction between a legitimate user navigating the system and an attacker probing for weaknesses.

Traceability Enables Root Cause and Blast Radius Containment

When a breach occurs, speed matters. Security observability enables real-time traceability—linking each API request to its origin, purpose, and potential impact. A well-observed API system doesn’t just show that something went wrong; it shows *who*, *when*, *why*, and *what else* might be compromised. This shortens the mean time to resolution (MTTR) and prevents isolated incidents from snowballing into full-system compromise.

Anomaly Detection Through Usage Baselines

Once APIs are observable, you can model what “normal” looks like. This unlocks behavioral anomaly detection. Is a partner suddenly calling your `DELETE` endpoint at midnight? Is a consumer application querying customer records in bulk when it usually fetches single entries? These signals often go undetected in basic monitoring systems but become apparent immediately when a behavioral baseline has been established and deviation is tracked in real-time.

Observability Bridges the CISO-CTO Divide

The security leader needs insights; the engineering team needs performance. Observability bridges this gap. Schema-aware logging, structured metrics, and distributed tracing allow both sides to operate with a shared context. Observability provides actionable feedback loops for innovation and protection when engineered with security in mind.

Ultimately, observability is a force multiplier. It empowers security teams to detect the undetectable, understand it, explain it, and prevent it from happening again. In an era where APIs define business surfaces, visibility isn’t just a luxury—it’s a lifeline. Make observability a security-first discipline, not just an ops afterthought.

Rate Limiting and Throttling as Abuse Mitigation

Too often, rate limiting and throttling are framed as performance tools to manage traffic and protect system availability. While true, that view misses their critical function for security teams: behavioral boundaries define what should happen and act as signals when something shouldn’t happen. In the wrong hands, APIs become scalable weapons. But with intelligent throttling, they become controllable interfaces.

Behavioral Rate Limits Reflect Business Expectations

Not all API consumers are equal. A banking partner may have a legitimate reason to hit your `GET /transactions` endpoint 1,000 times per hour. A mobile client used by a consumer? Not so much. By designing rate limits around business context, not just infrastructure capabilities, you embed intent directly into the security posture. This shifts the thinking from *how much can this endpoint handle* to *how much should this actor be allowed to do*?

Throttling as Early Threat Containment

Bad actors aren’t typically loud at first when they test your APIs. They probe. They escalate. Throttling helps identify this escalation. If one IP address goes from 5 requests per minute to 500 in a single second, that’s not load—it’s reconnaissance. Throttling disrupts these patterns early, buying valuable time before deeper systems are reached. Combine this with alerting, and throttling becomes defensive and predictive.

Rate Limits Are Signals, Not Just Guards

The purpose of a rate limit isn’t only to prevent someone from overusing your service; it’s also to flag unusual activity. A client consistently bumping against rate limits signals that either usage has changed (and the policy needs review) or something suspicious is unfolding. CISOs should advocate for rate-limited logs to be fed directly into security analytics pipelines, rather than sitting silently in an operations dashboard.

Dynamic Throttling Based on Risk Score

Modern rate limiting doesn’t need to be static. By integrating risk scoring—based on factors like geolocation, user reputation, or request behavior—your system can apply adaptive throttling. A trusted client in a known region gets a higher ceiling. An unknown client in a high-fraud zone sees a fraction of the capacity. This enables precise security without degrading the user experience for trusted partners.

Rate limiting and throttling are not just mechanisms for controlling volume; they also serve as a means of ensuring quality. They are policy enforcement layers, risk mitigation tools, and data feeds for threat intelligence. When CISOs treat them as strategic levers rather than IT afterthoughts, the entire API ecosystem becomes more resilient, without sacrificing agility.

Versioning Strategy as a Security Lifecycle Component

API versioning is often discussed as a tool for backward compatibility or iterative development. But for security leaders, it’s more than a mechanism for change control—it’s a critical part of the API security lifecycle. Every version of an API carries not only its functionality but also a security posture, attack surface, and risk profile. Without strategic versioning, deprecated vulnerabilities persist, undocumented endpoints proliferate, and governance becomes weakened.

Versioning Prevents Orphaned Vulnerabilities

Unversioned or loosely versioned APIs create a graveyard of outdated logic—endpoints that are no longer used but remain online, unmonitored, and unpatched. These “zombie APIs” are frequently the weakest link in a security chain. By requiring strict versioning for all public and internal APIs, organizations can clearly define what’s active, deprecated, and what needs to be sunset, and do so in a way that aligns with security patch cycles.

Decommissioning Is a Security Discipline

Too few organizations plan for version retirement with the same discipline they use for launches. Every new API version should trigger a decommission plan for the old one, which should include identifying consumers, communicating timelines, enforcing rate reductions, and ultimately, enforcing termination. This is not just ops hygiene—it’s threat surface reduction. Every deprecated version left running is another door that adversaries can probe.

Versioning as Policy Enforcement Leverage

A new version provides a natural opportunity to update more than just code—it’s a moment to enforce updated policies. Rate limits, authentication schemes, data retention logic, and logging expectations can be revised in new versions without disrupting current consumers. Innovative organizations use versioning as a carrot and a stick: offering enhanced functionality and access to those who adopt the secure, modern version, and gradually limiting legacy capabilities to enforce migration.

Aligning Versioning with Incident Response

When a vulnerability is discovered in an API, versioning enables rapid containment and mitigation of the issue. If version 1 is affected but version 2 is not, defenders can throttle or turn off just the impacted version without triggering an enterprise-wide outage. Security teams should map APIs by version across assets and maintain a live registry to know which versions are exposed where. This clarity is the difference between a tactical response and chaos in the face of a breach.

Treating versioning as a mere developer convenience misses the broader reality: it is a formalized control point in API lifecycle security. CISOs and security architects must champion versioning policies as integral to defense, not just maintenance. When versioning becomes strategic, it transforms APIs from persistent risk to programmable trust.

Governance and Compliance Built into API Pipelines

API governance is often viewed as a post-development checkpoint or a manual review process. However, in today’s fast-paced development environments, this approach is insufficient. Governance must be integrated directly into the API development pipelines to ensure robust security and compliance. This integration transforms governance from a reactive process into a proactive framework that enforces policies and standards throughout the API lifecycle.

Embedding Governance into CI/CD Pipelines

Integrating governance into Continuous Integration and Continuous Deployment (CI/CD) pipelines allows organizations to automate compliance checks and consistently enforce security policies. By embedding tools that validate API specifications, enforce coding standards, and check for security vulnerabilities, teams can identify and address issues early in the development process. This proactive approach reduces the risk of non-compliant APIs reaching production and ensures that security and compliance are maintained without slowing development velocity.

Automating Compliance Checks

Automated compliance checks within the development pipeline are essential for maintaining regulatory standards and internal policies. These checks can include validating data privacy requirements, ensuring proper authentication mechanisms, and verifying that APIs do not expose sensitive information. Automation increases efficiency and minimizes human error, a common cause of compliance breaches. Organizations can adapt quickly to changing regulations by continuously monitoring APIs for compliance and reducing the risk of violations.

Centralizing Policy Management

A centralized policy management system enables organizations to define, manage, and enforce API policies uniformly across all services. This centralization ensures that all APIs adhere to the same security and compliance standards, reducing inconsistencies and potential vulnerabilities. It also simplifies updating policies in response to new threats or regulatory changes, as updates can be propagated automatically across all APIs.

Enhancing Collaboration Between Teams

Integrating governance into API pipelines promotes more effective collaboration among development, security, and compliance teams. By providing a shared framework and tools, these teams can work together more effectively to ensure that APIs meet functional and regulatory requirements. This collaboration leads to a more cohesive approach to API development and a stronger overall security posture.

Incorporating governance and compliance into API pipelines is not just a best practice but a necessity in modern development. By automating checks, centralizing policy management, and fostering cross-team collaboration, organizations can ensure that their APIs are secure, compliant, and aligned with business objectives from the outset.

Treat APIs as Strategic Infrastructure

APIs are no longer just enablers of technical integration — they are foundational assets that define how businesses operate, grow, and compete. When viewed through a strategic lens, APIs transition from tactical middleware to critical infrastructure, shaping the agility and longevity of digital enterprises. This shift demands a recalibration in mindset, funding, and leadership accountability.

Think Like a Digital Nation-State

Modern organizations must treat their APIs like a nation-state treats its digital infrastructure — as sovereign, secure, scalable assets that must be governed, protected, and evolved with intent. APIs form the core of digital trade routes, and the more robust, standardized, and discoverable they are, the more economic value they generate. Leaders must think beyond consumption and start designing for interoperability, exportability, and resilience, just as governments do with roads, power grids, and internet backbones.

Elevate API Governance to the C-Suite

Most API strategies fail not because of poor design, but because of fragmented ownership. Strategic APIs require executive-level sponsorship. They should be part of enterprise architecture reviews, product roadmaps, and M&A due diligence. The companies that outperform in the API economy often have C-level champions (Chief API Officer or API Strategy Head) who ensure APIs align with long-term business objectives, not just short-term delivery cycles.

Rethink Funding Models

Traditional IT funding models treat APIs as cost centers. That model is broken. Strategic APIs should be funded like products or platforms — with investment tied to usage metrics, adoption rates, partner integration growth, and time-to-market acceleration. Establish internal marketplaces where APIs compete for adoption and utilization. Let teams build APIs as monetizable services with clear ROI frameworks, even for internal consumers.

Design for Unpredictable Opportunity

The most valuable APIs are often used in ways their creators never imagined. Treating APIs as infrastructure means designing for unknown future use cases. Encourage modularity, semantic clarity, and documentation practices that promote discovery and mixability. This unlocks serendipitous innovation—the kind that turns internal APIs into industry standards or enables entirely new revenue streams.

Final Thought

Organizations that treat APIs as strategic infrastructure are not just building digital capabilities—they are future-proofing their ecosystems. They are creating highways for innovation, marketplaces for collaboration, and bridges to partners not yet imagined. In the API economy, strategic infrastructure isn’t made of steel and concrete—it’s built with endpoints, payloads, and policies. It’s time to build like it matters.

Leave a Reply

Your email address will not be published. Required fields are marked *