---
title: "Test an an API definition."
method: POST
path: "/tyk/debug"
tags: ["Debug"]
---

# Test an an API definition.

`POST /tyk/debug`

Used to test API definition by sending sample request and analysing output of both response and logs.

## Request body

- TraceRequest
  - `request` TraceHttpRequest
    - `body` string
    - `headers` HttpHeader
    - `method` string
    - `path` string
  - `spec` APIDefinition
    - `CORS` CORSConfig
      - `allow_credentials` boolean
      - `allowed_headers` string[], nullable
      - `allowed_methods` string[], nullable
      - `allowed_origins` string[], nullable
      - `debug` boolean
      - `enable` boolean
      - `exposed_headers` string[], nullable
      - `max_age` integer
      - `options_passthrough` boolean
    - `active` boolean
    - `allowed_ips` string[], nullable
    - `analytics_plugin` AnalyticsPluginConfig
      - `enable` boolean
      - `func_name` string
      - `plugin_path` string
    - `api_id` string
    - `auth` AuthConfig
      - `auth_header_name` string
      - `cookie_name` string
      - `disable_header` boolean
      - `name` string
      - `param_name` string
      - `signature` SignatureConfig
        - `algorithm` string
        - `allowed_clock_skew` integer
        - `error_code` integer
        - `error_message` string
        - `header` string
        - `param_name` string
        - `secret` string
        - `use_param` boolean
      - `use_certificate` boolean
      - `use_cookie` boolean
      - `use_param` boolean
      - `validate_signature` boolean
    - `auth_configs` object, nullable
    - `auth_provider` AuthProviderMeta
      - `meta` object, nullable
      - `name` string
      - `storage_engine` string
    - `base_identity_provided_by` string
    - `basic_auth` object
      - `body_password_regexp` string
      - `body_user_regexp` string
      - `cache_ttl` integer
      - `disable_caching` boolean
      - `extract_from_body` boolean
    - `blacklisted_ips` string[], nullable
    - `cache_options` CacheOptions
      - `cache_all_safe_requests` boolean
      - `cache_by_headers` string[], nullable
      - `cache_control_ttl_header` string
      - `cache_response_codes` integer[], nullable
      - `cache_timeout` integer
      - `enable_cache` boolean
      - `enable_upstream_cache_control` boolean
    - `certificate_pinning_disabled` boolean
    - `certificates` string[], nullable
    - `client_certificates` string[], nullable
    - `config_data` object, nullable
    - `config_data_disabled` boolean
    - `custom_middleware` MiddlewareSection
      - `auth_check` MiddlewareDefinition
        - `disabled` boolean
        - `name` string
        - `path` string
        - `raw_body_only` boolean
        - `require_session` boolean
      - `driver` string
      - `id_extractor` MiddlewareIdExtractor
        - `disabled` boolean
        - `extract_from` string
        - `extract_with` string
        - `extractor_config` object, nullable
      - `post` MiddlewareDefinition[], nullable
        - `disabled` boolean
        - `name` string
        - `path` string
        - `raw_body_only` boolean
        - `require_session` boolean
      - `post_key_auth` MiddlewareDefinition[], nullable
        - `disabled` boolean
        - `name` string
        - `path` string
        - `raw_body_only` boolean
        - `require_session` boolean
      - `pre` MiddlewareDefinition[], nullable
        - `disabled` boolean
        - `name` string
        - `path` string
        - `raw_body_only` boolean
        - `require_session` boolean
      - `response` MiddlewareDefinition[], nullable
        - `disabled` boolean
        - `name` string
        - `path` string
        - `raw_body_only` boolean
        - `require_session` boolean
    - `custom_middleware_bundle` string
    - `custom_middleware_bundle_disabled` boolean
    - `custom_plugin_auth_enabled` boolean
    - `definition` VersionDefinition
      - `default` string
      - `enabled` boolean
      - `fallback_to_default` boolean
      - `key` string
      - `location` string
      - `name` string
      - `strip_path` boolean
      - `strip_versioning_data` boolean
      - `url_versioning_pattern` string
      - `versions` object, nullable
    - `detailed_tracing` boolean
    - `disable_quota` boolean
    - `disable_rate_limit` boolean
    - `do_not_track` boolean
    - `domain` string
    - `domain_disabled` boolean
    - `dont_set_quota_on_create` boolean
    - `enable_batch_request_support` boolean
    - `enable_context_vars` boolean
    - `enable_coprocess_auth` boolean
    - `enable_detailed_recording` boolean
    - `enable_ip_blacklisting` boolean
    - `enable_ip_whitelisting` boolean
    - `enable_jwt` boolean
    - `enable_proxy_protocol` boolean
    - `enable_signature_checking` boolean
    - `event_handlers` EventHandlerMetaConfig
      - `events` object, nullable
    - `expiration` string
    - `expire_analytics_after` integer
    - `external_oauth` ExternalOAuth
      - `enabled` boolean
      - `providers` Provider[], nullable
        - `introspection` Introspection
          - `cache` IntrospectionCache
            - `enabled` boolean
            - `timeout` integer
          - `client_id` string
          - `client_secret` string
          - `enabled` boolean
          - `identity_base_field` string
          - `url` string
        - `jwt` JWTValidation
          - `enabled` boolean
          - `expires_at_validation_skew` integer
          - `identity_base_field` string
          - `issued_at_validation_skew` integer
          - `not_before_validation_skew` integer
          - `signing_method` string
          - `source` string
    - `global_rate_limit` GlobalRateLimit
      - `disabled` boolean
      - `per` number
      - `rate` number
    - `graphql` GraphQLConfig
      - `enabled` boolean
      - `engine` GraphQLEngineConfig
        - `data_sources` GraphQLEngineDataSource[], nullable
          - `config` unknown
          - `internal` boolean
          - `kind` string
          - `name` string
          - `root_fields` GraphQLTypeFields[], nullable
            - `fields` string[], nullable
            - `type` string
        - `field_configs` GraphQLFieldConfig[], nullable
          - `disable_default_mapping` boolean
          - `field_name` string
          - `path` string[], nullable
          - `type_name` string
        - `global_headers` UDGGlobalHeader[], nullable
          - `key` string
          - `value` string
      - `execution_mode` 'proxyOnly' | 'executionEngine' | 'subgraph' | 'supergraph'
      - `introspection` GraphQLIntrospectionConfig
        - `disabled` boolean
      - `last_schema_update` string, date-time, nullable
      - `playground` GraphQLPlayground
        - `enabled` boolean
        - `path` string
      - `proxy` GraphQLProxyConfig
        - `auth_headers` object, nullable
        - `features` GraphQLProxyFeaturesConfig
          - `use_immutable_headers` boolean
        - `request_headers` object, nullable
        - `request_headers_rewrite` object, nullable
        - `subscription_type` string
        - `use_response_extensions` GraphQLResponseExtensions
          - `on_error_forwarding` boolean
      - `schema` string
      - `subgraph` GraphQLSubgraphConfig
        - `sdl` string
      - `supergraph` GraphQLSupergraphConfig
        - `disable_query_batching` boolean
        - `global_headers` object, nullable
        - `merged_sdl` string
        - `subgraphs` GraphQLSubgraphEntity[], nullable
          - `api_id` string
          - `headers` object, nullable
          - `name` string
          - `sdl` string
          - `subscription_type` string
          - `url` string
        - `updated_at` string, date-time, nullable
      - `type_field_configurations` DatasourceTypeFieldConfiguration[], nullable
        - `data_source` DatasourceSourceConfig
          - `data_source_config` unknown
          - `kind` string
        - `field_name` string
        - `mapping` DatasourceMappingConfiguration
          - `disabled` boolean
          - `path` string
        - `type_name` string
      - `version` ''' | '1' | '2'
    - `hmac_allowed_algorithms` string[], nullable
    - `hmac_allowed_clock_skew` number
    - `id` string
    - `idp_client_id_mapping_disabled` boolean
    - `internal` boolean
    - `is_oas` boolean
    - `jwt_client_base_field` string
    - `jwt_default_policies` string[], nullable
    - `jwt_expires_at_validation_skew` integer
    - `jwt_identity_base_field` string
    - `jwt_issued_at_validation_skew` integer
    - `jwt_not_before_validation_skew` integer
    - `jwt_policy_field_name` string
    - `jwt_scope_claim_name` string
    - `jwt_scope_to_policy_mapping` object, nullable
    - `jwt_signing_method` string
    - `jwt_skip_kid` boolean
    - `jwt_source` string
    - `listen_port` integer
    - `name` string
    - `notifications` NotificationsManager
      - `oauth_on_keychange_url` string
      - `shared_secret` string
    - `oauth_meta` object
      - `allowed_access_types` string[], nullable
      - `allowed_authorize_types` string[], nullable
      - `auth_login_redirect` string
    - `openid_options` OpenIDOptions
      - `providers` OIDProviderConfig[], nullable
        - `client_ids` object, nullable
        - `issuer` string
      - `segregate_by_client` boolean
    - `org_id` string
    - `pinned_public_keys` object, nullable
    - `protocol` string
    - `proxy` ProxyConfig
      - `check_host_against_uptime_tests` boolean
      - `disable_strip_slash` boolean
      - `enable_load_balancing` boolean
      - `listen_path` string
      - `preserve_host_header` boolean
      - `service_discovery` ServiceDiscoveryConfiguration
        - `cache_disabled` boolean
        - `cache_timeout` integer
        - `data_path` string
        - `endpoint_returns_list` boolean
        - `parent_data_path` string
        - `port_data_path` string
        - `query_endpoint` string
        - `target_path` string
        - `use_discovery_service` boolean
        - `use_nested_query` boolean
        - `use_target_list` boolean
      - `strip_listen_path` boolean
      - `target_list` string[], nullable
      - `target_url` string
      - `transport` object
        - `proxy_url` string
        - `ssl_ciphers` string[], nullable
        - `ssl_force_common_name_check` boolean
        - `ssl_insecure_skip_verify` boolean
        - `ssl_max_version` integer
        - `ssl_min_version` integer
    - `request_signing` RequestSigningMeta
      - `algorithm` string
      - `certificate_id` string
      - `header_list` string[], nullable
      - `is_enabled` boolean
      - `key_id` string
      - `secret` string
      - `signature_header` string
    - `response_processors` ResponseProcessor[], nullable
      - `name` string
      - `options` unknown
    - `scopes` Scopes
      - `jwt` ScopeClaim
        - `scope_claim_name` string
        - `scope_to_policy` object
      - `oidc` ScopeClaim
        - `scope_claim_name` string
        - `scope_to_policy` object
    - `session_lifetime` integer
    - `session_lifetime_respects_key_expiration` boolean
    - `session_provider` SessionProviderMeta
      - `meta` object, nullable
      - `name` string
      - `storage_engine` string
    - `slug` string
    - `strip_auth_data` boolean
    - `tag_headers` string[], nullable
    - `tags` string[], nullable
    - `tags_disabled` boolean
    - `upstream_certificates` object, nullable
    - `upstream_certificates_disabled` boolean
    - `uptime_tests` UptimeTests
      - `check_list` HostCheckObject[], nullable
        - `body` string
        - `commands` CheckCommand[], nullable
          - `message` string
          - `name` string
        - `enable_proxy_protocol` boolean
        - `headers` object, nullable
        - `method` string
        - `protocol` string
        - `timeout` integer
        - `url` string
      - `config` UptimeTestsConfig
        - `expire_utime_after` integer
        - `recheck_wait` integer
        - `service_discovery` ServiceDiscoveryConfiguration
          - `cache_disabled` boolean
          - `cache_timeout` integer
          - `data_path` string
          - `endpoint_returns_list` boolean
          - `parent_data_path` string
          - `port_data_path` string
          - `query_endpoint` string
          - `target_path` string
          - `use_discovery_service` boolean
          - `use_nested_query` boolean
          - `use_target_list` boolean
    - `use_basic_auth` boolean
    - `use_go_plugin_auth` boolean
    - `use_keyless` boolean
    - `use_mutual_tls_auth` boolean
    - `use_oauth2` boolean
    - `use_openid` boolean
    - `use_standard_auth` boolean
    - `version_data` VersionData
      - `default_version` string
      - `not_versioned` boolean
      - `versions` object, nullable

## Response `200`

Success tracing request.

- TraceResponse
  - `logs` string
  - `message` string
  - `response` string

## Other responses

- `400` — Bad Request
- `403` — Forbidden
- `500` — Internal server error.

## Changes

- **2024-09-18** `111affa17abe` — 1 info
  - endpoint added
- **2022-05-24** `111d8ca21864` — 1 breaking
  - api path removed without deprecation

[Change history](https://skmtc.dev/tyktechnologies/apis/tyk-gateway-api/changes/tyk/debug/post.md)

---

[API](https://skmtc.dev/tyktechnologies/apis/tyk-gateway-api.md) · [All operations](https://skmtc.dev/tyktechnologies/apis/tyk-gateway-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/tyktechnologies/tyk-gateway-api/revisions/111affa17abe/schema)
