Federal firearms licenses (FFLs)

Use BFG's FFL APIs to list, retrieve, and manage Federal Firearms Licenses (FFLs).

These endpoints support filtering, pagination, detailed record access, import history, and downloads of federal firearms licenses (FFLs).


List FFLs

Use this endpoint to retrieve a list of FFLs with optional filters, sorting, and pagination.

Endpoint: GET /api/ffls

Query parameters

ParameterRequiredDescription
sortNoSorts by the specified field.
page_sizeNoSets the number of results per page.
pageNoSets the page number.
filter[business_license_name]NoFilters FFLs by business license name.
filter[trashed]NoIncludes trashed FFLs. Values: with, only, or without.

Example request

curl --request GET \
  --get "https://api-sandbox.buyingfreedom.app/api/ffls?sort=-ffl_number&page_size=20&page=2&filter%5Bbusiness_license_name%5D=214763028Z00020&filter%5Btrashed%5D=with" \
  --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
  --header "Content-Type: application/json" \
  --header "Accept: application/json"

Example response

{
  "data": [
    {
      "id": 1,
      "ffl_number": "214763028Z00020",
      "short_ffl_number": "214Z0020",
      "ffl_region": "Northwest",
      "ffl_irs_district": "Nevada",
      "ffl_fips": "763",
      "ffl_type": "Dealer of Title I firearms",
      "ffl_expiration": "May 2027",
      "license_name": "Acme Tactical Supplies LLC",
      "business_name": "",
      "premise_address": "5011 Echo Hollow Dr",
      "premise_city": "Springfield",
      "premise_state": "OR",
      "premise_zipcode": "97477",
      "mailing_street": "PO Box 202",
      "mailing_city": "Springfield",
      "mailing_state": "OR",
      "mailing_zipcode": "97478",
      "phone": "5415550199",
      "loa_issue_date": "2012-05-10",
      "loa_expiration_date": "2012-11-09",
      "created_at": "2025-03-14T04:30:07.000000Z",
      "updated_at": "2025-03-14T04:30:07.000000Z"
    },
    {
      "id": 2,
      "ffl_number": "214840045G00112",
      "short_ffl_number": "214G0011",
      "ffl_region": "Northwest",
      "ffl_irs_district": "Nevada",
      "ffl_fips": "840",
      "ffl_type": "Pawnbroker dealing in Title I firearms",
      "ffl_expiration": "July 2027",
      "license_name": "Holloway Arms Co.",
      "business_name": "Holloway Pawn & Firearms",
      "premise_address": "1800 Marshall Ave",
      "premise_city": "Eugene",
      "premise_state": "OR",
      "premise_zipcode": "97401",
      "mailing_street": "1800 Marshall Ave",
      "mailing_city": "Eugene",
      "mailing_state": "OR",
      "mailing_zipcode": "97401",
      "phone": "5415551098",
      "loa_issue_date": null,
      "loa_expiration_date": null,
      "created_at": "2025-03-14T04:30:07.000000Z",
      "updated_at": "2025-03-14T04:30:07.000000Z"
    }
  ],
  "links": {
    "first": "https://api-sandbox.buyingfreedom.app/api/ffls?page=1",
    "last": "https://api-sandbox.buyingfreedom.app/api/ffls?page=7645",
    "prev": null,
    "next": "https://api-sandbox.buyingfreedom.app/api/ffls?page=2"
  },
  "meta": {
    "current_page": 1,
    "from": 1,
    "last_page": 7645,
    "links": [
      {
        "url": null,
        "label": "« Previous",
        "active": false
      },
      {
        "url": "https://api-sandbox.buyingfreedom.app/api/ffls?page=1",
        "label": "1",
        "active": true
      },
      {
        "url": "https://api-sandbox.buyingfreedom.app/api/ffls?page=2",
        "label": "2",
        "active": false
      },
      {
        "url": null,
        "label": "Next »",
        "active": false
      }
    ],
    "path": "https://api-sandbox.buyingfreedom.app/api/ffls",
    "per_page": 10,
    "to": 2,
    "total": 76443
  }
}

Retrieve an FFL by ID

Use this endpoint to fetch a single FFL using its unique ID.

Endpoint: GET /api/ffls/{ffl_id}

URL parameters

  • ffl_id: Required. The FFL's unique identifier.

Example request

curl --request GET \
  --get "https://api-sandbox.buyingfreedom.app/api/ffls/17" \
  --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
  --header "Content-Type: application/json" \
  --header "Accept: application/json"

Example response

{
  "data": {
    "id": 98213,
    "ffl_number": "287190094R00158",
    "short_ffl_number": "287R0015",
    "ffl_region": "Midwest",
    "ffl_irs_district": "Wyoming",
    "ffl_fips": "190",
    "ffl_type": "Importer/Dealer of Title I firearms",
    "ffl_expiration": "December 2026",
    "ffl_id": "00158",
    "license_name": "JACOBS ERIKA LOUISE B",
    "business_name": "Silver Range Armory LLC",
    "premise_address": "2947 Lincoln Heights Rd",
    "premise_city": "Cheyenne",
    "premise_state": "WY",
    "premise_zipcode": "82009",
    "mailing_street": "2947 Lincoln Heights Rd",
    "mailing_city": "Cheyenne",
    "mailing_state": "WY",
    "mailing_zipcode": "82009",
    "phone": "3075551289",
    "website": null,
    "email": null,
    "loa_issue_date": "2015-08-22",
    "loa_expiration_date": "2016-02-21",
    "files": [],
    "created_at": "2025-03-27T14:31:54.000000Z",
    "updated_at": "2025-03-27T14:31:54.000000Z"
  }
}

Retrieve an FFL by license number

Use this endpoint to retrieve an FFL by its license number.

Endpoint: GET /api/ffls/number/{fflNumber}

URL parameters

  • fflNumber: Required. The full license number.

Example request

curl --request GET \
  --get "https://api-sandbox.buyingfreedom.app/api/ffls/number/289120093K00245" \
  --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
  --header "Content-Type: application/json" \
  --header "Accept: application/json"

Example response

{
  "data": {
    "id": 84523,
    "ffl_number": "289120093K00245",
    "short_ffl_number": "289K0024",
    "ffl_region": "Midwest",
    "ffl_irs_district": "Nebraska",
    "ffl_fips": "120",
    "ffl_type": "Dealer or Gunsmith of Title I firearms",
    "ffl_expiration": "November 2026",
    "ffl_id": "00245",
    "license_name": "TURNER CLAYTON M",
    "business_name": "Midwest Tactical Outfitters LLC",
    "premise_address": "1479 Ashland Parkway",
    "premise_city": "Papillion",
    "premise_state": "NE",
    "premise_zipcode": "68133",
    "mailing_street": "1479 Ashland Parkway",
    "mailing_city": "Papillion",
    "mailing_state": "NE",
    "mailing_zipcode": "68133",
    "phone": "4025551234",
    "website": null,
    "email": null,
    "loa_issue_date": "2019-04-05",
    "loa_expiration_date": "2024-04-05",
    "files": [],
    "created_at": "2025-03-27T14:31:54.000000Z",
    "updated_at": "2025-03-27T14:31:54.000000Z"
  }
}

View FFL import history

This endpoint returns a history of FFL imports.

Endpoint: GET /api/ffls/import/histories

Query parameters

  • page_size: Optional. Set the number of results per page.
  • page: Optional. Set the page number.

Example request

curl --request GET \
  --get "https://api-sandbox.buyingfreedom.app/api/ffls/import/histories?page_size=20&page=2" \
  --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
  --header "Content-Type: application/json" \
  --header "Accept: application/json"

Example response

{
  "data": [
    {
      "id": 47,
      "ran_at": "2025-03-28T10:42:17.000000Z",
      "added_count": 85,
      "updated_count": 14
    }
  ],
  "links": {
    "first": "https://atlas-api.example.com/api/ffls/import/histories?page_size=10&page=1",
    "last": "https://atlas-api.example.com/api/ffls/import/histories?page_size=10&page=5",
    "prev": "https://atlas-api.example.com/api/ffls/import/histories?page_size=10&page=1",
    "next": "https://atlas-api.example.com/api/ffls/import/histories?page_size=10&page=3"
  },
  "meta": {
    "current_page": 2,
    "from": 11,
    "last_page": 5,
    "links": [
      {
        "url": "https://atlas-api.example.com/api/ffls/import/histories?page_size=10&page=1",
        "label": "« Previous",
        "active": false
      },
      {
        "url": "https://atlas-api.example.com/api/ffls/import/histories?page_size=10&page=2",
        "label": "2",
        "active": true
      },
      {
        "url": "https://atlas-api.example.com/api/ffls/import/histories?page_size=10&page=3",
        "label": "Next »",
        "active": false
      }
    ],
    "path": "https://atlas-api.example.com/api/ffls/import/histories",
    "per_page": 10,
    "to": 20,
    "total": 47
  }
}

Download FFL files

Use this endpoint to download all files associated with the specified FFL as a zip archive.

Endpoint: GET api/ffls/download-files/{ffl_id}

URL parameters

  • ffl_id: Required. The ID of the FFL.

Example request

curl --request GET \
  --get "https://api-sandbox.buyingfreedom.app/api/ffls/download-files/872" \
  --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
  --header "Content-Type: application/json" \
  --header "Accept: application/json"

Example response

A binary zip file download is started. The zip archive has the naming convention {ffl_number}-ffl-files.zip.