> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://reference.flatfile.com/api-reference/mapping/list-mapping-programs/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://reference.flatfile.com/_mcp/server. # List mapping programs GET https://api.x.flatfile.com/v1/mapping List all mapping programs Reference: https://reference.flatfile.com/api-reference/mapping/list-mapping-programs ## Authentication - `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer `, where token is your auth token. ## Request ### Query parameters - `pageSize` (integer, optional) — Number of programs to return in a page (default 10) - `pageNumber` (integer, optional) — Based on pageSize, which page of records to return - `createdBy` (string, optional) — Filter by creator - `createdAfter` (datetime, optional) — Filter by creation time - `createdBefore` (datetime, optional) — Filter by creation time - `environmentId` (string, optional) — The ID of the environment - `jobId` (string, optional) — A job ID to find mapping programs for - `familyId` (string, optional) — Filter by family - `namespace` (string, optional) — Filter by namespace - `sourceKeys` (string, optional) — Filter by source keys - `destinationKeys` (string, optional) — Filter by destination keys ## Response ### 200 - `data` (list of Program, required) ## Errors ### 400 Bad Request Error - `errors` (list of Error, required) ## Types ### Program - `rules` (list of MappingRuleOrConfig, required) — Mapping rules - `sourceKeys` (list of string, required) — Source keys - `destinationKeys` (list of string, required) — Destination keys - `id` (string, optional) — If this program was saved, this is the ID of the program - `namespace` (string, optional) — Namespace of the program - `familyId` (string, optional) — Family ID of the program, if it belongs to a family - `createdAt` (datetime, optional) — If this program was saved, this is the time it was created - `createdBy` (string, optional) — If this program was saved, this is the user ID of the creator - `summary` (ProgramSummary, optional) — Summary of the mapping rules - `accessToken` (string, optional) — If this program was saved, this token allows you to modify the program - `acceptedAt` (datetime, optional) — If this program was accepted, this is the time it was accepted - `acceptedBy` (string, optional) — If this program was accepted, this is the user ID of the user who accepted it ### Error - `message` (string, required) - `key` (string, optional) ### MappingRuleOrConfig - `name` (string, required) — Name of the mapping rule - `type` (string, required) - `acceptedAt` (datetime, optional) — Time the mapping rule was last updated - `acceptedBy` (string, optional) — User ID of the contributor of the mapping rule - `confidence` (integer, optional) — Confidence of the mapping rule - `config` (any, optional) - `createdAt` (datetime, optional) — Time the mapping rule was created - `createdBy` (string, optional) — User ID of the creator of the mapping rule - `deletedAt` (datetime, optional) — Time the mapping rule was deleted - `id` (string, optional) — ID of the mapping rule - `metadata` (any, optional) — Metadata of the mapping rule - `updatedAt` (datetime, optional) — Time the mapping rule was last updated ### ProgramSummary - `totalRuleCount` (integer, required) — Total number of mapping rules - `addedRuleCount` (integer, required) — Number of mapping rules added - `deletedRuleCount` (integer, required) — Number of mapping rules deleted ## Examples **Response** ```json { "data": [ { "rules": [ { "name": "name", "type": "type", "acceptedAt": "2024-01-15T09:30:00Z", "acceptedBy": "acceptedBy", "confidence": 1, "config": { "key": "value" }, "createdAt": "2024-01-15T09:30:00Z", "createdBy": "createdBy", "deletedAt": "2024-01-15T09:30:00Z", "id": "id", "metadata": { "key": "value" }, "updatedAt": "2024-01-15T09:30:00Z" }, { "name": "name", "type": "type", "acceptedAt": "2024-01-15T09:30:00Z", "acceptedBy": "acceptedBy", "confidence": 1, "config": { "key": "value" }, "createdAt": "2024-01-15T09:30:00Z", "createdBy": "createdBy", "deletedAt": "2024-01-15T09:30:00Z", "id": "id", "metadata": { "key": "value" }, "updatedAt": "2024-01-15T09:30:00Z" } ], "sourceKeys": [ "sourceKeys", "sourceKeys" ], "destinationKeys": [ "destinationKeys", "destinationKeys" ], "id": "id", "namespace": "namespace", "familyId": "familyId", "createdAt": "2024-01-15T09:30:00Z", "createdBy": "createdBy", "summary": { "totalRuleCount": 1, "addedRuleCount": 1, "deletedRuleCount": 1 }, "accessToken": "accessToken", "acceptedAt": "2024-01-15T09:30:00Z", "acceptedBy": "acceptedBy" }, { "rules": [ { "name": "name", "type": "type", "acceptedAt": "2024-01-15T09:30:00Z", "acceptedBy": "acceptedBy", "confidence": 1, "config": { "key": "value" }, "createdAt": "2024-01-15T09:30:00Z", "createdBy": "createdBy", "deletedAt": "2024-01-15T09:30:00Z", "id": "id", "metadata": { "key": "value" }, "updatedAt": "2024-01-15T09:30:00Z" }, { "name": "name", "type": "type", "acceptedAt": "2024-01-15T09:30:00Z", "acceptedBy": "acceptedBy", "confidence": 1, "config": { "key": "value" }, "createdAt": "2024-01-15T09:30:00Z", "createdBy": "createdBy", "deletedAt": "2024-01-15T09:30:00Z", "id": "id", "metadata": { "key": "value" }, "updatedAt": "2024-01-15T09:30:00Z" } ], "sourceKeys": [ "sourceKeys", "sourceKeys" ], "destinationKeys": [ "destinationKeys", "destinationKeys" ], "id": "id", "namespace": "namespace", "familyId": "familyId", "createdAt": "2024-01-15T09:30:00Z", "createdBy": "createdBy", "summary": { "totalRuleCount": 1, "addedRuleCount": 1, "deletedRuleCount": 1 }, "accessToken": "accessToken", "acceptedAt": "2024-01-15T09:30:00Z", "acceptedBy": "acceptedBy" } ] } ``` **SDK Code** ```python import requests url = "https://api.x.flatfile.com/v1/mapping" headers = { "X-Disable-Hooks": "true", "Authorization": "Bearer " } response = requests.get(url, headers=headers) print(response.json()) ``` ```typescript import { FlatfileClient } from "@flatfile/api"; const client = new FlatfileClient({ token: "YOUR_TOKEN" }); await client.mapping.listMappingPrograms(); ``` ```go package main import ( "fmt" "net/http" "io" ) func main() { url := "https://api.x.flatfile.com/v1/mapping" req, _ := http.NewRequest("GET", url, nil) req.Header.Add("X-Disable-Hooks", "true") req.Header.Add("Authorization", "Bearer ") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby require 'uri' require 'net/http' url = URI("https://api.x.flatfile.com/v1/mapping") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Get.new(url) request["X-Disable-Hooks"] = 'true' request["Authorization"] = 'Bearer ' response = http.request(request) puts response.read_body ``` ```java import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.get("https://api.x.flatfile.com/v1/mapping") .header("X-Disable-Hooks", "true") .header("Authorization", "Bearer ") .asString(); ``` ```php request('GET', 'https://api.x.flatfile.com/v1/mapping', [ 'headers' => [ 'Authorization' => 'Bearer ', 'X-Disable-Hooks' => 'true', ], ]); echo $response->getBody(); ``` ```csharp using RestSharp; var client = new RestClient("https://api.x.flatfile.com/v1/mapping"); var request = new RestRequest(Method.GET); request.AddHeader("X-Disable-Hooks", "true"); request.AddHeader("Authorization", "Bearer "); IRestResponse response = client.Execute(request); ``` ```swift import Foundation let headers = [ "X-Disable-Hooks": "true", "Authorization": "Bearer " ] let request = NSMutableURLRequest(url: NSURL(string: "https://api.x.flatfile.com/v1/mapping")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "GET" request.allHTTPHeaderFields = headers let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ```