Introduction
Data Virtualization in FME Flow makes it easy to build REST APIs without writing code. You can design APIs from the ground up, controlling their structure, endpoints, formats, and configuration. This approach helps organizations expose internal data in a consistent and accessible way.
Approaches to Creating a Data Virtualization API
There are two ways to create a Data Virtualization API: from scratch or using an OpenAPI Specification (OAS). The difference is in how much manual setup is required.
- From Scratch: You define the API structure, endpoints, request and response formats, and settings directly in FME Flow. This approach provides maximum flexibility and is best for building custom APIs that don’t already have documentation.
- From an Existing API: You can import an OpenAPI Specification (OAS) file to automatically generate the API structure, including endpoints and methods. This saves time and works well when aligning with or migrating existing APIs.
In both approaches, you’ll configure the responses and connect the API to FME workflows that process the requests.
Note that documentation may change rapidly and not reflect the current build. This article was written with FME 2025.1.2 b25630.
Step-by-Step Instructions
In this exercise, you’ll build the EnvironData API, a single access point for real-time environmental and disaster data. The EnvironData Coordination Office needs this API to combine information from multiple internal sources, reducing manual data requests and improving efficiency across internal systems, partner agencies, and public applications. You’ll create it from the ground up, defining metadata, namespace, versioning, and access controls.
1. Create a New API
In FME Flow, open Data Virtualization from the sidebar and click Create API.
On the Create API page, you’ll enter details such as documentation, contact info, security settings, caching, and async processing.
The API Details section allows you to set the basic information about your API. These details structure the API and appear in the documentation.
| Field | Value | Description |
| API Title | Environmental Impact and Response API | The header for the documentation page. It will label any automatically generated Data Virtualization workspaces. |
| Namespace | EnvironData |
A unique identifier for your API. The namespace becomes part of the API’s URL path. Avoid changing it later, since it affects all endpoints. Use a short, clear name for easier integration and cleaner URLs
Based on this, all requests to the Data Virtualization API will take the general URL form: |
| Versioning | 1.0.0. | Allows you to track iterations of the Data Virtualization API |
| Summary | EnvironData API provides real-time access to environmental and disaster-related data for effective response and analysis. | A short description of the API that will appear in the documentation. |
| Description | The EnvironData API provides essential tools for accessing real-time environmental and disaster data. It supports integration into emergency systems, monitoring platforms, and research projects to enhance preparedness and mitigate impacts. | A longer form description of the Data Virtualization API. This is an opportunity to include any information about the usage of the API, its data sources, organizational information, etc. |
| Job Queues | (unselected) | Routes all requests to the API through a specific engine. Leaving this blank will use the Default queue. |
| Job Expiry Time | 2 minutes | Sets how long a request can run before timing out. If a request runs longer than 2 minutes (or the set value), the user will see an expiry error. |
Contact information appears on the API documentation page and helps end users know who to reach out to with questions, issues, or feedback. You can add an organization or admin. Optional, but it helps build trust and professionalism.
For this exercise, enter your own details or use the (fictional) sample data provided below.
| Field | Value |
| Name | EnvironData Coordination Office (EDCO) |
| URL | (Leave blank) |
| (Leave blank) |
Endpoint Security defines which users and roles can access the API’s endpoints, ensuring consistent protection without separate configurations. After creating the API, you can still adjust access for individual endpoints as needed.
| Field | Value | Why |
| Access Level | Authenticated | All endpoints will require authentication unless otherwise configured. |
| Allowed Roles | “fmeadmin”, “fmeauthor”, and “fmeuser” | This will allow all users in these roles (and the tokens they create) to access API endpoints by default. |
| Allowed Users | Select your own user account, for example, “dvauthor” in this example. |
By default, only selected users and the tokens they generate are granted access to specific API endpoints. Note: your account isn’t added automatically—you need to add it yourself. In some scenarios, you may choose not to grant yourself access to all endpoints. For example, if different departments manage distinct areas of the API and your role is limited to overall administration rather than direct interaction with specific data. |
Caching temporarily stores API responses to avoid repeatedly querying the data source. This improves performance, lowers latency, and reduces server load, making the system faster and more scalable. You can enable caching for the entire API or for specific endpoints.
For this exercise, keep the default: No.
Asynchronous Processing lets clients send requests without waiting for them to finish. The API immediately returns a request ID, which can be used later to check progress or retrieve results. This approach is ideal for long-running tasks and helps keep systems responsive and scalable.
For this exercise, keep the default: No.
To finish, click Create.
2. View Documentation
When the API is created, the API Details page opens.
This page for the Environmental Impact and Response API provides access to key configuration settings. From here, you can manage general administration, update settings, and review integration options such as CORS policies for cross-application communication.
The API Details also generate documentation automatically. Use View Documentation to open the Swagger page in a new browser tab.
The Swagger documentation serves as the main reference, displaying endpoints, data formats, and security rules. At this stage, no endpoints exist. The next step in the Data Virtualization process is to build and publish the first one.
3. Continue to the Next Exercise
Close the Swagger documentation to return to FME Flow. Continue to the next exercise to build the first endpoint: Create a Manual Endpoint in Data Virtualization.