> ## Documentation Index
> Fetch the complete documentation index at: https://crevio.co/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a DNS zone record

> Adds a DNS record to a Crevio-registered domain's zone. By default (`mode: replace`) it replaces any existing records of the same type and name; `mode: append` adds alongside them. The apex/www routing records that keep the site online are protected and cannot be changed here. Replacing a record Crevio did not create requires `acknowledge_unowned: true`.



## OpenAPI

````yaml /developer/api-reference/openapi.json post /domains/{id}/zone-records
openapi: 3.1.1
info:
  title: Crevio API V1
  version: 1.0.0
  description: >
    API for the Crevio creator platform — a multi-tenant SaaS for digital
    product sales.

    Uses snake_case keys following Stripe conventions. All resource IDs are
    string IDs (e.g., "prod_abc123").
  contact:
    email: support@crevio.co
    name: Crevio Support
    url: https://crevio.co/docs
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
servers:
  - url: https://api.crevio.co/v1
    description: Production
security:
  - ApiKey: []
tags:
  - name: Account
    description: Current account information
  - name: Analytics
    description: Account-wide business analytics
  - name: BlogCategories
    description: Blog post categories
  - name: BlogPosts
    description: Blog content management
  - name: Carts
    description: Shopping cart management
  - name: CheckoutLinks
    description: Shareable checkout links
  - name: Checkouts
    description: Checkout session management
  - name: Customers
    description: Customer relationship management
  - name: Discounts
    description: Discount code management
  - name: Emails
    description: Email sending
  - name: Experiences
    description: Digital experiences (courses, communities, downloads)
  - name: Files
    description: File uploads and external media management
  - name: FormSubmissions
    description: Form submission management
  - name: FormationDocuments
    description: Documents generated for a formation
  - name: Formations
    description: Whitelabel business formation via doola Partner API
  - name: Forms
  - name: Invoices
    description: Invoice creation, payment, and lifecycle management
  - name: LegalPages
  - name: Me
    description: Current user profile
  - name: OrderItems
    description: Order line items
  - name: Orders
    description: Order history and details
  - name: PriceVariants
    description: Product pricing tiers
  - name: Products
    description: Digital product catalog
  - name: Refunds
    description: Refund management
  - name: Reviews
    description: Product reviews
  - name: Socials
    description: Social media management (accounts, posts, media).
  - name: Subscriptions
    description: Subscription lifecycle management (cancel, pause, resume)
  - name: Tags
    description: Customer tags
  - name: TaskRuns
    description: Individual execution records for AI tasks.
  - name: Tasks
    description: >-
      AI tasks — scheduled or event-triggered agentic work (cron, interval,
      once, immediate, event).
  - name: WebhookEndpoints
    description: Webhook endpoint management
  - name: WebhookEvents
    description: Webhook event delivery history
  - name: Leads
    description: Find, verify and enrich business leads (Hunter.io-backed).
  - name: Ads
    description: >-
      Paid advertising — campaigns, ad groups, ads, audiences, targeting, leads,
      conversions, and reports across Meta, Google, TikTok, LinkedIn, Pinterest,
      and X.
  - name: Domains
    description: Custom web domains for your sites.
  - name: Web
    description: >-
      Web search & scraping (search, read, map, crawl, extract, research),
      backed by Firecrawl.
  - name: Skills
    description: >-
      AI skills marketplace — search the catalog and install or uninstall skills
      for your account's agent.
  - name: Schedules
    description: Reusable availability schedules that back event types.
  - name: EventTypes
    x-displayName: Event Types
    description: Bookable services customers can schedule time on.
  - name: Bookings
    description: Reservations made against event types.
  - name: Connections
    description: Third-party app connections (connect, list, execute)
  - name: Approvals
    description: Human-in-the-loop approvals for gated actions
  - name: Logs
    description: Account activity log
paths:
  /domains/{id}/zone-records:
    post:
      tags:
        - Domains
      summary: Create a DNS zone record
      description: >-
        Adds a DNS record to a Crevio-registered domain's zone. By default
        (`mode: replace`) it replaces any existing records of the same type and
        name; `mode: append` adds alongside them. The apex/www routing records
        that keep the site online are protected and cannot be changed here.
        Replacing a record Crevio did not create requires `acknowledge_unowned:
        true`.
      operationId: createDomainZoneRecord
      parameters:
        - $ref: '#/components/parameters/Id'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  type: string
                  description: DNS record type, e.g. A, AAAA, CNAME, TXT, MX.
                content:
                  type: string
                  description: Record value (IP address, hostname, text, etc.).
                name:
                  type: string
                  description: Record name. Defaults to the domain apex when omitted.
                ttl:
                  type: integer
                  description: Time to live in seconds. Defaults to 1 (automatic).
                priority:
                  type: integer
                  description: Priority, for record types that use it (e.g. MX).
                proxied:
                  type: boolean
                  description: >-
                    Whether to proxy the record through the CDN. Defaults to
                    false.
                mode:
                  type: string
                  enum:
                    - replace
                    - append
                  description: >-
                    `replace` (default) swaps existing records of the same type
                    and name; `append` adds alongside them.
                acknowledge_unowned:
                  type: boolean
                  description: Required to replace a record that was not created by Crevio.
              required:
                - type
                - content
      responses:
        '201':
          description: The created DNS record
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DnsZoneRecord'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
      security:
        - ApiKey: []
      x-codeSamples:
        - lang: typescript
          label: Typescript (SDK)
          source: |-
            import { Crevio } from "@crevio/sdk";

            const crevio = new Crevio({
              apiKey: process.env["CREVIO_API_KEY"] ?? "",
            });

            async function run() {
              const result = await crevio.domains.createZoneRecord({
                id: "<id>",
                requestBody: {
                  type: "<value>",
                  content: "<value>",
                },
              });

              console.log(result);
            }

            run();
components:
  parameters:
    Id:
      name: id
      in: path
      required: true
      description: The resource ID (e.g., "prod_abc123") or slug (e.g., "my-product")
      schema:
        type: string
  schemas:
    DnsZoneRecord:
      type: object
      description: A DNS record in the live zone of a Crevio-registered domain.
      properties:
        object:
          type: string
          enum:
            - dns_record
        id:
          type: string
        type:
          type: string
          description: DNS record type, e.g. A, AAAA, CNAME, TXT, MX.
        name:
          type: string
        value:
          type: string
          description: Record value (IP address, hostname, text, etc.).
        ttl:
          type: integer
        priority:
          type:
            - integer
            - 'null'
        proxied:
          type:
            - boolean
            - 'null'
        comment:
          type:
            - string
            - 'null'
        ownership:
          type: string
          description: >-
            Whether Crevio created this record (`crevio-managed`) or it is
            otherwise unowned.
        locked:
          type: boolean
          description: >-
            True for the apex/www routing records that keep the storefront
            online; these cannot be changed via the zone-records API.
      required:
        - object
        - id
        - type
        - name
        - value
        - ttl
        - ownership
        - locked
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            type:
              type: string
              enum:
                - api_error
                - invalid_request_error
                - validation_error
            code:
              type: string
            message:
              type: string
            param:
              type: string
            errors:
              type: object
          required:
            - type
            - message
      required:
        - error
  responses:
    Unauthorized:
      description: Authentication required
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              type: invalid_request_error
              code: authentication_required
              message: You did not provide an API key.
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              type: invalid_request_error
              code: resource_missing
              message: The requested resource was not found
    UnprocessableEntity:
      description: Validation error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              type: validation_error
              code: validation_failed
              message: Email is required
              errors:
                email:
                  - can't be blank
  securitySchemes:
    ApiKey:
      type: apiKey
      in: header
      name: Authorization
      description: 'API key in the format: Bearer {api_token}'

````