Skip to main content
POST
/
tyk
/
apis
/
oas
Create an API with Tyk OAS format.
curl --request POST \
  --url https://{tenant}/tyk/apis/oas \
  --header 'Content-Type: application/json' \
  --header 'X-Tyk-Authorization: <api-key>' \
  --data '
{
  "info": {
    "dbId": "<string>",
    "expiration": "<string>",
    "id": "<string>",
    "name": "<string>",
    "orgId": "<string>",
    "state": {
      "active": true,
      "internal": true
    },
    "versioning": {
      "default": "<string>",
      "enabled": true,
      "fallbackToDefault": true,
      "key": "<string>",
      "location": "<string>",
      "name": "<string>",
      "stripVersioningData": true,
      "urlVersioningPattern": "<string>",
      "versions": [
        {
          "id": "<string>",
          "name": "<string>"
        }
      ]
    }
  },
  "middleware": {
    "global": {
      "cache": {
        "cacheAllSafeRequests": true,
        "cacheByHeaders": [
          "<string>"
        ],
        "cacheResponseCodes": [
          123
        ],
        "controlTTLHeaderName": "<string>",
        "enableUpstreamCacheControl": true,
        "enabled": true,
        "timeout": 123
      },
      "contextVariables": {
        "enabled": true
      },
      "cors": {
        "allowCredentials": true,
        "allowedHeaders": [
          "<string>"
        ],
        "allowedMethods": [
          "<string>"
        ],
        "allowedOrigins": [
          "<string>"
        ],
        "debug": true,
        "enabled": true,
        "exposedHeaders": [
          "<string>"
        ],
        "maxAge": 123,
        "optionsPassthrough": true
      },
      "pluginConfig": {
        "bundle": {
          "enabled": true,
          "path": "<string>"
        },
        "data": {
          "enabled": true,
          "value": {}
        },
        "driver": "<string>"
      },
      "postAuthenticationPlugin": {
        "plugins": [
          {
            "enabled": true,
            "functionName": "<string>",
            "path": "<string>",
            "rawBodyOnly": true,
            "requireSession": true
          }
        ]
      },
      "postAuthenticationPlugins": [
        {
          "enabled": true,
          "functionName": "<string>",
          "path": "<string>",
          "rawBodyOnly": true,
          "requireSession": true
        }
      ],
      "postPlugin": {
        "plugins": [
          {
            "enabled": true,
            "functionName": "<string>",
            "path": "<string>",
            "rawBodyOnly": true,
            "requireSession": true
          }
        ]
      },
      "postPlugins": [
        {
          "enabled": true,
          "functionName": "<string>",
          "path": "<string>",
          "rawBodyOnly": true,
          "requireSession": true
        }
      ],
      "prePlugin": {
        "plugins": [
          {
            "enabled": true,
            "functionName": "<string>",
            "path": "<string>",
            "rawBodyOnly": true,
            "requireSession": true
          }
        ]
      },
      "prePlugins": [
        {
          "enabled": true,
          "functionName": "<string>",
          "path": "<string>",
          "rawBodyOnly": true,
          "requireSession": true
        }
      ],
      "responsePlugin": {
        "plugins": [
          {
            "enabled": true,
            "functionName": "<string>",
            "path": "<string>",
            "rawBodyOnly": true,
            "requireSession": true
          }
        ]
      },
      "responsePlugins": [
        {
          "enabled": true,
          "functionName": "<string>",
          "path": "<string>",
          "rawBodyOnly": true,
          "requireSession": true
        }
      ],
      "trafficLogs": {
        "enabled": true
      },
      "transformRequestHeaders": {
        "add": [
          {
            "name": "<string>",
            "value": "<string>"
          }
        ],
        "enabled": true,
        "remove": [
          "<string>"
        ]
      },
      "transformResponseHeaders": {
        "add": [
          {
            "name": "<string>",
            "value": "<string>"
          }
        ],
        "enabled": true,
        "remove": [
          "<string>"
        ]
      }
    },
    "operations": {}
  },
  "server": {
    "authentication": {
      "baseIdentityProvider": "<string>",
      "custom": {
        "AuthSources": {
          "cookie": {
            "enabled": true,
            "name": "<string>"
          },
          "header": {
            "enabled": true,
            "name": "<string>"
          },
          "query": {
            "enabled": true,
            "name": "<string>"
          }
        },
        "config": {
          "enabled": true,
          "functionName": "<string>",
          "idExtractor": {
            "config": {
              "formParamName": "<string>",
              "headerName": "<string>",
              "regexp": "<string>",
              "regexpMatchIndex": 123,
              "xPathExp": "<string>"
            },
            "enabled": true,
            "source": "<string>",
            "with": "<string>"
          },
          "path": "<string>",
          "rawBodyOnly": true
        },
        "enabled": true
      },
      "enabled": true,
      "hmac": {
        "AuthSources": {
          "cookie": {
            "enabled": true,
            "name": "<string>"
          },
          "header": {
            "enabled": true,
            "name": "<string>"
          },
          "query": {
            "enabled": true,
            "name": "<string>"
          }
        },
        "allowedAlgorithms": [
          "<string>"
        ],
        "allowedClockSkew": 123,
        "enabled": true
      },
      "oidc": {
        "AuthSources": {
          "cookie": {
            "enabled": true,
            "name": "<string>"
          },
          "header": {
            "enabled": true,
            "name": "<string>"
          },
          "query": {
            "enabled": true,
            "name": "<string>"
          }
        },
        "enabled": true,
        "providers": [
          {
            "clientToPolicyMapping": [
              {
                "clientId": "<string>",
                "policyId": "<string>"
              }
            ],
            "issuer": "<string>"
          }
        ],
        "scopes": {
          "claimName": "<string>",
          "scopeToPolicyMapping": [
            {
              "policyId": "<string>",
              "scope": "<string>"
            }
          ]
        },
        "segregateByClientId": true
      },
      "securitySchemes": {},
      "stripAuthorizationData": true
    },
    "clientCertificates": {
      "allowlist": [
        "<string>"
      ],
      "enabled": true
    },
    "customDomain": {
      "certificates": [
        "<string>"
      ],
      "enabled": true,
      "name": "<string>"
    },
    "detailedActivityLogs": {
      "enabled": true
    },
    "detailedTracing": {
      "enabled": true
    },
    "eventHandlers": [
      {
        "enabled": true,
        "id": "<string>",
        "name": "<string>",
        "trigger": "<string>",
        "type": "<string>"
      }
    ],
    "gatewayTags": {
      "enabled": true,
      "tags": [
        "<string>"
      ]
    },
    "listenPath": {
      "strip": true,
      "value": "<string>"
    }
  },
  "upstream": {
    "certificatePinning": {
      "domainToPublicKeysMapping": [
        {
          "domain": "<string>",
          "publicKeys": [
            "<string>"
          ]
        }
      ],
      "enabled": true
    },
    "mutualTLS": {
      "domainToCertificateMapping": [
        {
          "certificate": "<string>",
          "domain": "<string>"
        }
      ],
      "enabled": true
    },
    "rateLimit": {
      "enabled": true,
      "per": 123,
      "rate": 123
    },
    "serviceDiscovery": {
      "cache": {
        "enabled": true,
        "timeout": 123
      },
      "cacheTimeout": 123,
      "dataPath": "<string>",
      "enabled": true,
      "endpointReturnsList": true,
      "parentDataPath": "<string>",
      "portDataPath": "<string>",
      "queryEndpoint": "<string>",
      "targetPath": "<string>",
      "useNestedQuery": true,
      "useTargetList": true
    },
    "test": {
      "serviceDiscovery": {
        "cache": {
          "enabled": true,
          "timeout": 123
        },
        "cacheTimeout": 123,
        "dataPath": "<string>",
        "enabled": true,
        "endpointReturnsList": true,
        "parentDataPath": "<string>",
        "portDataPath": "<string>",
        "queryEndpoint": "<string>",
        "targetPath": "<string>",
        "useNestedQuery": true,
        "useTargetList": true
      }
    },
    "url": "<string>"
  }
}
'
{
  "action": "modified",
  "key": "b13d928b9972bd18",
  "key_hash": "<string>",
  "status": "ok"
}

Authorizations

X-Tyk-Authorization
string
header
required

Api key

Query Parameters

base_api_id
string

The base API which the new version will be linked to.

base_api_version_name
string

The version name of the base API while creating the first version. This doesn't have to be sent for the next versions but if it is set, it will override base API version name.

new_version_name
string

The version name of the created version.

set_default
boolean

If true, the new version is set as default version.

Body

application/json
info
object
middleware
object
server
object
upstream
object

Response

API created.

action
string
Example:

"modified"

key
string
Example:

"b13d928b9972bd18"

key_hash
string
status
string
Example:

"ok"