{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/fedex/json-schema/fedex-full-schema-find-location-schema.json",
  "title": "Full_Schema_Find_Location",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/fedex-locations-api-openapi.yml#/components/schemas/Full_Schema_Find_Location",
  "required": [
    "location"
  ],
  "type": "object",
  "properties": {
    "locationsSummaryRequestControlParameters": {
      "description": "Use this object to specify all the inputs to get the locations details.",
      "allOf": [
        {
          "$ref": "#/$defs/LocationsSummaryRequestControlParameters"
        }
      ]
    },
    "constraints": {
      "description": "Specify the constraints to be applied to the location attributes.",
      "allOf": [
        {
          "$ref": "#/$defs/SearchLocationConstraints"
        }
      ]
    },
    "locationSearchCriterion": {
      "type": "string",
      "description": "Specify the criteria to be used to search for FedEx locations. Default value is ADDRESS if no value is passed.<p>Valid values: <ul><li>ADDRESS &ndash; Search by address. Location detail data is required.</li><li>GEOGRAPHIC_COORDINATES &ndash; Search by geocodes. Location geocodes are required.</li><li>PHONE_NUMBER &ndash; Search by phone number. Location Phone number is required.</li></ul></p><p><i>Note: Country code is REQUIRED when searching by any of the LocationsSearchCriterion, even PhoneNumber and GeorgraphicCoordinates.</i></p>",
      "enum": [
        "ADDRESS",
        "GEOGRAPHIC_COORDINATES",
        "PHONE_NUMBER"
      ]
    },
    "location": {
      "description": "Based on the locationSearchCriterion value specified, the location element specifies the minimum requirement for address search like postalCode, countryCode, GeoCodes or city.Location phone number is required. Only landline number is allowed.<br><br><i>Note: Country code is REQUIRED for the search.</i>",
      "allOf": [
        {
          "$ref": "#/$defs/Location"
        }
      ]
    },
    "phoneNumber": {
      "type": "string",
      "description": "Specify the phone number(Only LandLine allowed) if the locationSearchCriterion is set to 'PHONE_NUMBER'.Given that is the case, the location search will be made based on the phone number value and the location object(postalCode&countryCode) will be completely ignored. <br> Example: 9015551234"
    },
    "multipleMatchesAction": {
      "type": "string",
      "description": "Specify the criterion to be used to return location results when there are multiple matches.<br>Valid values: RETURN_ALL,RETURN_ERROR, RETURN_FIRST.<br><br><i>Note: The 'maxResults' value takes precedence over RETURN_ALL value.</i>",
      "enum": [
        "RETURN_ALL",
        "RETURN_ERROR",
        "RETURN_FIRST"
      ]
    },
    "sort": {
      "$ref": "#/$defs/Sort"
    },
    "trackingInfo": {
      "$ref": "#/$defs/TrackingInfo"
    },
    "sameState": {
      "type": "boolean",
      "description": "Filter to display locations within the same state as the search criteria.<br>Valid values: True, False."
    },
    "sameCountry": {
      "type": "boolean",
      "description": "Filter to display locations within the same country as the search criteria.<br>Valid values: True, False."
    },
    "redirectToHoldType": {
      "type": "string",
      "description": "Specify the type of service supported by a FedEx location for redirect to hold.",
      "enum": [
        "FEDEX_EXPRESS",
        "FEDEX_GROUND",
        "FEDEX_GROUND_HOME_DELIVERY"
      ]
    },
    "locationAttrTypes": {
      "type": "array",
      "description": "Specify attributes to filter location types. If more than one value is specified, only those locations that have all the specified attributes will be returned.<br>Note: In order to filter for DROP_BOX location, need to add locationTypes as FEDEX_SELF_SERVICE_LOCATION",
      "items": {
        "type": "string",
        "enum": [
          "ACCEPTS_CASH",
          "FEDEX_RETURNS_TECHNOLOGY",
          "ALREADY_OPEN",
          "COPY_AND_PRINT_SERVICES",
          "DANGEROUS_GOODS_SERVICES",
          "DIRECT_MAIL_SERVICES",
          "LOCATION_IS_IN_AIRPORT",
          "NOTARY_SERVICES",
          "OPEN_TWENTY_FOUR_HOURS",
          "PACK_AND_SHIP",
          "PACKAGING_SUPPLIES",
          "PASSPORT_PHOTO_SERVICES",
          "RETURNS_SERVICES",
          "SIGNS_AND_BANNERS_SERVICE",
          "SONY_PICTURE_STATION",
          "DROP_BOX",
          "DOMESTIC_SHIPPING_SERVICES",
          "INTERNATIONAL_SHIPPING_SERVICES",
          "CLEARANCE_SERVICES"
        ]
      }
    },
    "locationCapabilities": {
      "type": "array",
      "description": "Specify to filter the locations based on their capabilities.",
      "items": {
        "$ref": "#/$defs/LocationCapabilities"
      }
    },
    "packageAttributes": {
      "type": "array",
      "description": "Specify location supported package constraints to narrow the search.<br><br>For example, a package weighing more than 151 pounds may not be supported at all location types. Drop box location would be excluded.<p><i>Note: The package attributes inputs are only recognized/supported for FedEx OnSite Locations.</i></p>",
      "items": {
        "$ref": "#/$defs/PackageAttribute"
      }
    },
    "locationTypes": {
      "type": "array",
      "description": "Results filter which narrows the search to specific types of FedEx Locations. ",
      "items": {
        "type": "string",
        "enum": [
          "FEDEX_AUTHORIZED_SHIP_CENTER",
          "FEDEX_OFFICE",
          "FEDEX_SELF_SERVICE_LOCATION",
          "FEDEX_ONSITE",
          "FEDEX_EXPRESS_STATION",
          "FEDEX_SHIPSITE",
          "FEDEX_SHIP_AND_GET"
        ]
      }
    },
    "includeHoliday": {
      "type": "boolean",
      "description": "Indicates true if the location holiday list is desired in the results; otherwise false <br> Valid values: True, False."
    },
    "dropoffTime": {
      "type": "string",
      "description": "Specifies the latest time by which you can drop-off a package at a location to process the shipment the same day. This limits the results to locations that support a specific drop-off time. The format is an ISO 8601 string in which only the time portion is used.<br>Example: 16:00:00"
    },
    "dropOffServiceType": {
      "type": "string",
      "description": "The drop-off service types supported by the specified location. If sort criteria is given as  LATEST_EXPRESS_DROPOFF_TIME and dropoffservicetype is GROUND then backend  will take the SORT_BY_LATEST_GROUND_TIME as sort criteria.<br>Example: FedEx Ground."
    },
    "carrierCodes": {
      "type": "array",
      "description": "Unique code to identify the transporter.",
      "items": {
        "type": "string",
        "enum": [
          "FDXE",
          "FDXG"
        ]
      }
    },
    "getCall": {
      "type": "boolean",
      "description": "Get a call. <br>Valid values: True, False."
    },
    "packagingType": {
      "type": "string",
      "description": "The FedEx Package Type"
    },
    "totalDeclaredValue": {
      "description": "This is the total declared value of all of the packages for the shipment",
      "allOf": [
        {
          "$ref": "#/$defs/Amounts"
        }
      ]
    },
    "totalCustomsValue": {
      "description": "This is the total customs value of all of the packages for the shipment",
      "allOf": [
        {
          "$ref": "#/$defs/Amounts"
        }
      ]
    },
    "paymentType": {
      "type": "string",
      "description": "Duties and Taxes Payor Payment Type",
      "enum": [
        "SENDER",
        "THIRD_PARTY",
        "RECIPIENT",
        "COLLECT"
      ]
    }
  },
  "$defs": {
    "Address": {
      "required": [
        "countryCode"
      ],
      "type": "object",
      "properties": {
        "streetLines": {
          "type": "array",
          "description": "This is a combination of number, street name, etc. <br><i>Note: Streetlines more than 3 will be ignored. Empty lines should not be included.</i><br>Example: [\\\"10 FedEx Parkway\\\", \\\"Suite 302\\\"]",
          "items": {
            "type": "string"
          }
        },
        "city": {
          "type": "string",
          "description": "This is a placeholder for City Name. <br> City or PostalCode is mandatory when search criteria is ADDRESS or PHONE_NUMBER<br> Example: Beverly Hills"
        },
        "stateOrProvinceCode": {
          "type": "string",
          "description": "This is a placeholder for State or Province code. <br>Example: CA<br><a onclick='loadDocReference(\"canadaprovincecodes\")'>Click here to see State/Province Code</a>"
        },
        "postalCode": {
          "type": "string",
          "description": "This is placeholder for postal code.<br><i>Note: <ul><li>Postal code is required for postal-aware countries.</li>City or PostalCode is mandatory when search criteria is ADDRESS or PHONE_NUMBER</li></ul></i>Example: 38127<br><br><a onclick='loadDocReference(\"postalawarecountries\")'>Click here to see Postal aware countries</a>"
        },
        "countryCode": {
          "type": "string",
          "description": "The ISO Alpha2, Alpha3, Numeric3 code for the country or name (5 character max) for the country.<br>Example: US"
        },
        "residential": {
          "type": "boolean",
          "description": "Indicates whether the address returned is residential as opposed to commercial.<br>Valid values: True, False."
        },
        "addressVerificationId": {
          "type": "string",
          "description": "Address verification Identifier"
        },
        "addressClassification": {
          "type": "string",
          "description": "The business residential indicators.",
          "enum": [
            "MIXED",
            "UNKNOWN",
            "BUSINESS",
            "RESIDENTIAL"
          ]
        },
        "addressClassificationConfidence": {
          "type": "string",
          "description": "The confidence of business residential classification business residential indicators.",
          "enum": [
            "POTENTIAL",
            "PERMANENT"
          ]
        }
      },
      "description": "Specifies the Address Details for a location."
    },
    "Amounts": {
      "type": "object",
      "properties": {
        "amount": {
          "type": "number"
        },
        "currency": {
          "type": "string"
        }
      },
      "description": "The package dimension limits supported at the location."
    },
    "Dimensions": {
      "type": "object",
      "properties": {
        "length": {
          "type": "integer",
          "description": "Indicate the length of the package. No implied decimal places. Maximum value is 999.<br> Example: 20",
          "format": "int32"
        },
        "width": {
          "type": "integer",
          "description": "Indicate the width of the package. No implied decimal places. Maximum value is 999.<br> Example: 10",
          "format": "int32"
        },
        "height": {
          "type": "integer",
          "description": "Indicate the height of the package. No implied decimal places. Maximum value is 999.<br> Example: 10",
          "format": "int32"
        },
        "units": {
          "type": "string",
          "description": "Indicate the dimensions of the package.<br> Following conditions will apply: <ul><li>Dimensions are optional but when added, then all three dimensions must be indicated.</li><li>Dimensions are required with YOUR_PACKAGING package type.</li></ul><i>Note: <ul><li>The maximum/minimum dimension values varies based on the services and the packaging types.</i> Refer <a href=\"https://www.fedex.com/en-us/service-guide.html\" target=\"_blank\">FedEx Service Guide</a> for service details related to DIM Weighting for FedEx Express and oversize conditions for FedEx Express and FedEx Ground.</li><li>Any value other than CM including blank/null will default to IN.</li></ul>",
          "enum": [
            "CM",
            "IN"
          ]
        }
      },
      "description": "Indicate the dimensions of the package.<br> Following conditions will apply: <ul><li>Dimensions are optional but when added, then all three dimensions must be indicated.</li><li>Dimensions are required with YOUR_PACKAGING package type.</li></ul><i>Note: The maximum/minimum dimension values varies based on the services and the packaging types.</i><br>Refer <a href=\"https://www.fedex.com/en-us/service-guide.html\" target=\"_blank\">FedEx Service Guide</a> for service details related to DIM Weighting for FedEx Express and oversize conditions for FedEx Express and FedEx Ground."
    },
    "Distance": {
      "type": "object",
      "properties": {
        "units": {
          "type": "string",
          "description": "Indicates the unit of measure for the distance.",
          "enum": [
            "KM",
            "MI"
          ]
        },
        "value": {
          "type": "number",
          "description": "Specifies the distance value.<br>Example: 3.5",
          "format": "double"
        }
      },
      "description": "Specifies value and unit of distance between the FedEx locations and the address specified.<br>Example: 2 KM"
    },
    "GeoCode": {
      "type": "object",
      "properties": {
        "latitude": {
          "type": "string",
          "description": "The geo coordinate value that specifies the north-south position of the address.<br>Example: 36.1699° N"
        },
        "longitude": {
          "type": "string",
          "description": "The geo coordinate value that specifies the East-West position of the address.<br>Example:115.1398° W"
        }
      },
      "description": "The ISO6709 geographic coordinates for a specific geographic location, specifically latitude and longitude."
    },
    "Location": {
      "required": [
        "address"
      ],
      "type": "object",
      "properties": {
        "address": {
          "$ref": "#/$defs/Address"
        },
        "longLat": {
          "$ref": "#/$defs/GeoCode"
        }
      }
    },
    "LocationCapabilities": {
      "type": "object",
      "properties": {
        "serviceType": {
          "type": "string",
          "description": "Indicates the service types supported by the location.<br>Example: PRIORITY_OVERNIGHT<br><a onclick='loadDocReference(\"servicetypes\")'>Click here to see Service Types</a>"
        },
        "carrierCode": {
          "type": "string",
          "description": "Unique code to identify the transporter.",
          "enum": [
            "FDXE",
            "FDXG"
          ]
        },
        "transferOfPossessionType": {
          "type": "string",
          "description": "The method by which a package is transferred to the possession of a FedEx location.",
          "enum": [
            "DROPOFF",
            "HOLD_AT_LOCATION",
            "REDIRECT_TO_HOLD_AT_LOCATION"
          ]
        },
        "serviceCategory": {
          "type": "string",
          "description": "The service category applicable for the capability.",
          "enum": [
            "EXPRESS_FREIGHT",
            "EXPRESS_PARCEL",
            "GROUND_HOME_DELIVERY"
          ]
        },
        "daysOfWeek": {
          "type": "array",
          "description": "The days of the week for which this capability applies.<br>Valid values:<ul><li>MON</li><li>TUE</li><li>WED</li><li>THU</li><li>FRI</li><li>SAT</li><li>SUN</li></ul>",
          "items": {
            "type": "string"
          }
        }
      },
      "description": "Location capabilities such as services, day of week, ability to dropoff, pickup shipments, ability to hold shipments for pickup, etc."
    },
    "LocationsSummaryRequestControlParameters": {
      "type": "object",
      "properties": {
        "distance": {
          "description": "Specify the unit of measurement and the radius around the address to search FedEx locations.",
          "allOf": [
            {
              "$ref": "#/$defs/Distance"
            }
          ]
        },
        "maxResults": {
          "type": "integer",
          "description": "Specify the maximum number of locations to be returned in the reply.<br><i>Note: This takes precedence over the element multipleMatchesAction value RETURN_ALL.</i>",
          "format": "int32"
        }
      }
    },
    "PackageAttribute": {
      "type": "object",
      "properties": {
        "weight": {
          "description": "Specify the package weight.",
          "allOf": [
            {
              "$ref": "#/$defs/Weight"
            }
          ]
        },
        "dimensions": {
          "description": "Indicate the dimensions of the package.<br> Following conditions will apply: <ul><li>Dimensions are optional but when added, then all three dimensions must be indicated.</li><li>Dimensions are required with YOUR_PACKAGING package type.</li></ul><i>Note: The maximum/minimum dimension values varies based on the services and the packaging types.</i><br>Refer <a href=\"https://www.fedex.com/en-us/service-guide.html\" target=\"_blank\">FedEx Service Guide</a> for service details related to DIM Weighting for FedEx Express and oversize conditions for FedEx Express and FedEx Ground.",
          "allOf": [
            {
              "$ref": "#/$defs/Dimensions"
            }
          ]
        },
        "serviceOptions": {
          "type": "array",
          "description": "Provide all the service Options for this package",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "SearchLocationConstraints": {
      "type": "object",
      "properties": {
        "locationContentOptions": {
          "type": "array",
          "description": "Specify the information to be included in the location results.",
          "items": {
            "type": "string",
            "enum": [
              "HOLIDAYS",
              "LOCATION_DROPOFF_TIMES",
              "TIMEZONE_OFFSET"
            ]
          }
        },
        "dropOffTimeNeeded": {
          "type": "string",
          "description": "Specify the preferred drop-off time for a package. This filters the results with locations supporting the specified drop-off time. <br> Example: 16:30:00",
          "format": "HH:MM:SS"
        },
        "excludeUnavailableLocations": {
          "type": "string",
          "description": "Filter to exclude locations that are currently unavailable.<br>Valid values: True, False."
        }
      }
    },
    "Sort": {
      "type": "object",
      "properties": {
        "criteria": {
          "type": "string",
          "description": "Specify the criteria to sort the location details.",
          "enum": [
            "DISTANCE",
            "LATEST_EXPRESS_DROPOFF_TIME",
            "LATEST_GROUND_DROPOFF_TIME",
            "LOCATION_TYPE"
          ]
        },
        "order": {
          "type": "string",
          "description": "Specify the sort order of the location search results, either ascending or descending. Defaults to ascending order.",
          "enum": [
            "ASCENDING",
            "DESCENDING"
          ]
        }
      },
      "description": "Specifies how the location search results will be sorted in the reply."
    },
    "TrackingInfo": {
      "type": "object",
      "properties": {
        "uniqueTrackingId": {
          "type": "string",
          "description": "A unique tracking number identifying a shipment. Used to return locations that are relevant to the shipment.<br> Example: 012345678912"
        },
        "trackingNumber": {
          "type": "string",
          "description": "A tracking number identifying a shipment. Used to return locations that are relevant to the shipment.<br>Example: 123456789012"
        },
        "shipDate": {
          "type": "string",
          "description": "The date of shipment.<br> Example: 2019-10-13"
        }
      },
      "description": "Information uniquely identifying a shipment such as Tracking number, ShipDate, and Tracking number uniqueId. This tracking information helps to return the correct list of locations when REDIRECT_TO_HOLD_AT_LOCATION is requested"
    },
    "Weight": {
      "type": "object",
      "properties": {
        "units": {
          "type": "string",
          "description": "Specify the weighing unit of the package.",
          "enum": [
            "KG",
            "LB"
          ]
        },
        "value": {
          "type": "number",
          "description": "This is package weight. Max. Length is 99999.",
          "format": "double"
        }
      },
      "description": "These are the package weight details."
    }
  }
}