Cookies & analytics

    We use cookies for analytics and to serve ads. Accept to enable Google Analytics and AdSense. You can decline to stay opt-out.

    SwiftSchema Logo

    SwiftSchema

    Intuitive Schema Generation at Your Fingertips

    AboutLearnContact
      Stack

      City Permit Application Stack

      City permit application pages with Service + WebApplication context, FAQs, and breadcrumbs.

      Open generatorValidate in Rich Results Test

      When to use this stack

      • City permit application portals
      • Online permit request forms for residents
      • Pages outlining permit requirements and fees

      What's included

      • Describes the permit service offered by the city.

      • Web Application
        Open generator

        Defines the online permit application form.

      • Frequently Asked Questions
        Open generator

        Answers eligibility, processing time, and document questions.

      • Breadcrumb
        Open generator

        Provides navigation context for the permit page.

      Required properties (stack union)

      Ensure every applicable required property is present in your implementation. Nested props reference their parent objects (for example, `offers.priceCurrency`).

      applicationCategory
      areaServed.name
      itemListElement[].name
      mainEntity[].@type=Question
      mainEntity[].acceptedAnswer.text
      name
      operatingSystem
      provider.name
      serviceType
      url

      Recommended properties (stack union)

      description
      itemListElement[].item
      mainEntity[].acceptedAnswer.text
      mainEntity[].author.name
      mainEntity[].name
      offers.url
      softwareVersion
      url

      Combined JSON-LD

      Paste as a single script tag. Keep product details, offer data, shipping/returns, and FAQ answers in sync with the page.

      Validate
      [
        {
          "@context": "https://schema.org",
          "@type": "Service",
          "@id": "https://www.example.com/permits/parking#service",
          "name": "Residential Parking Permit",
          "serviceType": "CityPermit",
          "description": "Apply for a residential parking permit for your neighborhood.",
          "provider": { "@type": "Organization", "name": "City of Northwind" },
          "areaServed": { "@type": "AdministrativeArea", "name": "Northwind" },
          "url": "https://www.example.com/permits/parking"
        },
        {
          "@context": "https://schema.org",
          "@type": "WebApplication",
          "@id": "https://www.example.com/permits/parking/apply#app",
          "name": "Parking Permit Application",
          "description": "Submit your parking permit application online.",
          "applicationCategory": "GovernmentApplication",
          "operatingSystem": "Any",
          "url": "https://www.example.com/permits/parking/apply"
        },
        {
          "@context": "https://schema.org",
          "@type": "FAQPage",
          "mainEntity": [
            {
              "@type": "Question",
              "name": "What documents are required?",
              "acceptedAnswer": {
                "@type": "Answer",
                "text": "Proof of residency, vehicle registration, and a valid ID are required."
              }
            },
            {
              "@type": "Question",
              "name": "How long does approval take?",
              "acceptedAnswer": {
                "@type": "Answer",
                "text": "Most permits are approved within 5–7 business days."
              }
            },
            {
              "@type": "Question",
              "name": "Is there an application fee?",
              "acceptedAnswer": {
                "@type": "Answer",
                "text": "Yes. The fee is listed on the application page and varies by permit type."
              }
            }
          ]
        },
        {
          "@context": "https://schema.org",
          "@type": "BreadcrumbList",
          "itemListElement": [
            { "@type": "ListItem", "position": 1, "name": "Home", "item": "https://www.example.com" },
            { "@type": "ListItem", "position": 2, "name": "Permits", "item": "https://www.example.com/permits" },
            { "@type": "ListItem", "position": 3, "name": "Parking Permit", "item": "https://www.example.com/permits/parking" }
          ]
        }
      ]

      Implementation steps

      1. Start from your live product detail page content; ensure titles, prices, and availability match the page.
      2. Embed one JSON-LD script in the head or just before the closing body tag using the combined example as a template.
      3. Fill shipping details for each region you serve and keep them aligned with on-page shipping tables.
      4. Attach your canonical MerchantReturnPolicy URL and keep the policy text in sync with Merchant Center.
      5. Add 3–6 FAQs that address purchase blockers (shipping, returns, compatibility) and keep answers consistent with visible content.
      6. Validate in the Rich Results Test and revalidate after price/availability/policy changes.

      Common errors and fixes

      FAQs

      Should I include multiple permit types?

      If multiple permit types are offered, create separate pages or Service entries for each type.

      How do I show application fees?

      List fees in page copy and ensure any Offer or pricing references match the visible amounts.

      References