API Maker

The framework for AI era

Get API Responses in JSON, YAML, or XML

Different applications and integrations expect responses in different formats.
Modern apps usually work with JSON, while configuration driven systems may prefer YAML, and legacy or enterprise systems often rely on XML.

With API Maker, you don't need to manually transform your API outputs.
Any response, whether from autogenerated APIs, a custom APIs you build, or any third-party APIs can be returned in the exact format you want using a single request header.

This makes APIs created with API Maker universally consumable across all environments without writing extra conversion logic.


How It Works

Controlling the output format in API Maker is done through a single HTTP header.

To specify the desired format, include the following header in your request:

HTTP Header
x-am-content-type-response: json | yaml | xml
  • json → Returns the response in standard JSON format
  • yaml → Converts the response into YAML format
  • xml → Converts the response into XML format

This works for:

  • Autogenerated APIs (from your connected databases)
  • Custom APIs (functions you write in API Maker)
  • Third-party APIs (integrated through API Maker)

No extra libraries or code are required, API Maker handles the transformation automatically before sending the response.


Supported Output Formats

API Maker can return responses in JSON, YAML, or XML, depending on the header you set.
Below are examples of the same response rendered in each format.


JSON

JSON Example
{ "success": true, "statusCode": 200, "data": [ { "_id": "5b794fb02fe51f2ead6919da", "active": 1, "updatedAt": "2018-08-19T11:08:32.5822", "createdAt": "2018-08-19T11:08:32.5822", "company_name": "prayosha", "company_type": "PRODUCTION", "__v": 0 } ] }

XML

XML Example
<?xml version="1.0" encoding="UTF-8"?> <root> <success>true</success> <statusCode>200</statusCode> <data> <_el> <_id>5b794fb02fe51f2ead6919da</_id> <active>1</active> <updatedAt>2018-08-19T11:08:32.5822</updatedAt> <createdAt>2018-08-19T11:08:32.5822</createdAt> <company_name>prayosha</company_name> <company_type>PRODUCTION</company_type> <__v>0</__v> </_el> </data> </root>

YAML

YAML Example
success: true statusCode: 200 data: - _id: 5b794fb02fe51f2ead6919da active: 1 updatedAt: "2018-08-19T11:08:32.5822" createdAt: "2018-08-19T11:08:32.5822" company_name: prayosha company_type: PRODUCTION __v: 0

Advanced Controls

In addition to choosing the output format, API Maker gives you fine-grained control over the structure and naming of your API responses.


1. Flattening Nested Responses

Some databases or client applications cannot handle deeply nested JSON or XML structures.
With the header:

HTTP Header
x-am-response-object-type: flat

API Maker automatically flattens nested objects into single-level key paths.

Default (nested):

JSON Example
{ "success": true, "statusCode": 200, "data": { "hello": "world", "level1": { "level3": { "level3": { "name": "API Maker" } } } } }

Flattened:

JSON Example
{ "success": true, "statusCode": 200, "data": { "hello": "world", "level1_level2_level3_name": "API Maker" } }

This is especially useful when storing responses in SQL databases that don't support nested fields.


2. Changing Key Case

Different clients or integrations may require response keys in a specific case style.
API Maker can automatically reformat keys using the x-am-response-case header.

Supported styles include:

  • camelCase
  • PascalCase
  • snake_case
  • CONSTANT_CASE
  • capitalCase
  • dot.case
  • header-case
  • no case
  • param-case
  • path/case
  • sentence case

Default JSON Response:

JSON Example
{ "success": true, "statusCode": 200, "data": [ { "_id": "5b794fb02fe51f2ead6919da", "active": 1, "updatedAt": "2018-08-19T11:08:32.5822", "createdAt": "2018-08-19T11:08:32.5822", "company_name": "prayosha", "company_type": "PRODUCTION", "__v": 0 } ] }

With x-am-response-case: CONSTANT_CASE:

JSON Example
{ "success": true, "statusCode": 200, "data": [ { "_ID": "5b794fb02fe51f2ead6919da", "ACTIVE": 1, "UPDATEDAT": "2018-08-19T11:08:32.5822", "CREATEDAT": "2018-08-19T11:08:32.5822", "COMPANY_NAME": "prayosha", "COMPANY_TYPE": "PRODUCTION", "__V": 0 } ] }

Other Formats: The Case transformations apply consistently across JSON, YAML, and XML outputs.

Default XML Example

XML Example
<?xml version='1.0'?> <root> <success>true</success> <statusCode>200</statusCode> <data> <_el> <_id>5b794fb02fe51f2ead6919da</_id> <active>1</active> <updatedAt>2018-08-19T11:08:32.5822</updatedAt> <createdAt>2018-08-19T11:08:32.5822</createdAt> <company_name>prayosha</company_name> <company_type>PRODUCTION</company_type> <__v>0</__v> </_el> </data> </root>

With x-am-response-case: CONSTANT_CASE:

XML Example
<?xml version='1.0'?> <root> <success>true</success> <statusCode>200</statusCode> <data> <_el> <_ID>5b794fb02fe51f2ead6919da</_ID> <ACTIVE>1</ACTIVE> <UPDATEDAT>2018-08-19T11:08:32.5822</UPDATEDAT> <CREATEDAT>2018-08-19T11:08:32.5822</CREATEDAT> <COMPANY_NAME>prayosha</COMPANY_NAME> <COMPANY_TYPE>PRODUCTION</COMPANY_TYPE> <__V>0</__V> </_el> </data> </root>

FAQ

What happens if I don't pass the x-am-content-type-response header?

If no header is provided, API Maker defaults to returning responses in JSON format.

Can I request multiple formats at once?

No. Only one output format can be applied per request. If multiple values are passed, API Maker will use the first valid one.

Will response transformations affect API performance?

The transformations (format conversion, flattening, case changes) are lightweight and run inside API Maker's response pipeline. For most use cases, they add negligible overhead, even for large responses.

Is there any difference in data between JSON, YAML, and XML outputs?

No. The underlying data remains identical, the only change is in how the response is structured and serialized.