{
  "service": "cardly",
  "displayName": "Cardly",
  "categories": [
    "Marketing",
    "Productivity"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "CARDLY_API_KEY",
      "description": "Cardly API key sent with the API-Key header. Cardly provides test and live API keys when API access is set up: https://api.card.ly/openapi/en-AU/2.2.0.",
      "extraFields": []
    }
  ],
  "homepageUrl": "https://www.card.ly",
  "actions": [
    {
      "id": "cardly.echo",
      "service": "cardly",
      "name": "echo",
      "description": "Send a JSON payload to Cardly's authenticated echo endpoint for credential and request debugging.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "test": {
            "type": "string",
            "minLength": 1,
            "description": "An optional query value that Cardly echoes back.",
            "pattern": "\\S"
          },
          "body": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "An arbitrary JSON object to send to Cardly and echo back."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for the Cardly echo endpoint."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "state": {
            "type": "object",
            "properties": {
              "success": {
                "type": "boolean",
                "description": "Whether Cardly reported the request as successful."
              },
              "code": {
                "type": "integer",
                "description": "The status code reported by Cardly."
              },
              "message": {
                "type": "string",
                "description": "The status message returned by Cardly."
              }
            },
            "additionalProperties": true,
            "description": "The Cardly response state object."
          },
          "method": {
            "anyOf": [
              {
                "type": "string",
                "description": "The HTTP method Cardly saw for the echo request."
              },
              {
                "type": "null"
              }
            ]
          },
          "url": {
            "anyOf": [
              {
                "type": "string",
                "description": "The full URL Cardly saw for the echo request."
              },
              {
                "type": "null"
              }
            ]
          },
          "headers": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The request headers Cardly echoed back, with sensitive values redacted."
          },
          "params": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The query parameters Cardly echoed back."
          },
          "body": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The JSON request body Cardly echoed back."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Cardly response payload, with sensitive values redacted."
          }
        },
        "additionalProperties": false,
        "description": "The normalized Cardly echo response."
      }
    },
    {
      "id": "cardly.get_balance",
      "service": "cardly",
      "name": "get_balance",
      "description": "Retrieve the current Cardly card credit and gift credit balances.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "The input payload for retrieving the Cardly account balance."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "state": {
            "type": "object",
            "properties": {
              "success": {
                "type": "boolean",
                "description": "Whether Cardly reported the request as successful."
              },
              "code": {
                "type": "integer",
                "description": "The status code reported by Cardly."
              },
              "message": {
                "type": "string",
                "description": "The status message returned by Cardly."
              }
            },
            "additionalProperties": true,
            "description": "The Cardly response state object."
          },
          "balance": {
            "anyOf": [
              {
                "type": "number",
                "description": "The current Cardly card credit balance."
              },
              {
                "type": "null"
              }
            ]
          },
          "giftCredit": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "balance": {
                    "anyOf": [
                      {
                        "type": "number",
                        "description": "The gift credit balance value."
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "currency": {
                    "anyOf": [
                      {
                        "type": "string",
                        "description": "The currency for the gift credit balance."
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "raw": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true,
                    "description": "The raw Cardly gift credit object."
                  }
                },
                "additionalProperties": false,
                "required": [
                  "balance",
                  "currency"
                ],
                "description": "The current Cardly gift credit balance when returned."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Cardly response payload."
          }
        },
        "additionalProperties": false,
        "description": "The normalized Cardly account balance response."
      }
    },
    {
      "id": "cardly.list_credit_history",
      "service": "cardly",
      "name": "list_credit_history",
      "description": "List Cardly account credit history records with pagination and time filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "description": "The maximum number of records to return."
          },
          "offset": {
            "type": "integer",
            "minimum": 0,
            "description": "The zero-based record offset to start listing from."
          },
          "effectiveTimeLt": {
            "type": "string",
            "minLength": 1,
            "description": "Return records with an effective time before this YYYY-MM-DD HH:ii:ss value.",
            "pattern": "\\S"
          },
          "effectiveTimeLte": {
            "type": "string",
            "minLength": 1,
            "description": "Return records with an effective time before or equal to this YYYY-MM-DD HH:ii:ss value.",
            "pattern": "\\S"
          },
          "effectiveTimeGt": {
            "type": "string",
            "minLength": 1,
            "description": "Return records with an effective time after this YYYY-MM-DD HH:ii:ss value.",
            "pattern": "\\S"
          },
          "effectiveTimeGte": {
            "type": "string",
            "minLength": 1,
            "description": "Return records with an effective time after or equal to this YYYY-MM-DD HH:ii:ss value.",
            "pattern": "\\S"
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing Cardly credit history."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "state": {
            "type": "object",
            "properties": {
              "success": {
                "type": "boolean",
                "description": "Whether Cardly reported the request as successful."
              },
              "code": {
                "type": "integer",
                "description": "The status code reported by Cardly."
              },
              "message": {
                "type": "string",
                "description": "The status message returned by Cardly."
              }
            },
            "additionalProperties": true,
            "description": "The Cardly response state object."
          },
          "meta": {
            "type": "object",
            "properties": {
              "limit": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The page size used by Cardly when present."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "offset": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The result offset used by Cardly when present."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "total": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The total number of records when Cardly returns it."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": true,
            "description": "The pagination metadata returned by Cardly."
          },
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "One raw Cardly result object."
            },
            "description": "The Cardly credit history records."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Cardly response payload."
          }
        },
        "additionalProperties": false,
        "description": "The normalized Cardly credit history response."
      }
    },
    {
      "id": "cardly.list_fonts",
      "service": "cardly",
      "name": "list_fonts",
      "description": "List Cardly fonts available for handwriting and text personalization.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "description": "The maximum number of records to return."
          },
          "offset": {
            "type": "integer",
            "minimum": 0,
            "description": "The zero-based record offset to start listing from."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing Cardly fonts."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "state": {
            "type": "object",
            "properties": {
              "success": {
                "type": "boolean",
                "description": "Whether Cardly reported the request as successful."
              },
              "code": {
                "type": "integer",
                "description": "The status code reported by Cardly."
              },
              "message": {
                "type": "string",
                "description": "The status message returned by Cardly."
              }
            },
            "additionalProperties": true,
            "description": "The Cardly response state object."
          },
          "meta": {
            "type": "object",
            "properties": {
              "limit": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The page size used by Cardly when present."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "offset": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The result offset used by Cardly when present."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "total": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The total number of records when Cardly returns it."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": true,
            "description": "The pagination metadata returned by Cardly."
          },
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "One raw Cardly result object."
            },
            "description": "The Cardly font records."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Cardly response payload."
          }
        },
        "additionalProperties": false,
        "description": "The normalized Cardly font listing response."
      }
    },
    {
      "id": "cardly.list_gift_credit_history",
      "service": "cardly",
      "name": "list_gift_credit_history",
      "description": "List Cardly gift credit history records with pagination and time filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "description": "The maximum number of records to return."
          },
          "offset": {
            "type": "integer",
            "minimum": 0,
            "description": "The zero-based record offset to start listing from."
          },
          "effectiveTimeLt": {
            "type": "string",
            "minLength": 1,
            "description": "Return records with an effective time before this YYYY-MM-DD HH:ii:ss value.",
            "pattern": "\\S"
          },
          "effectiveTimeLte": {
            "type": "string",
            "minLength": 1,
            "description": "Return records with an effective time before or equal to this YYYY-MM-DD HH:ii:ss value.",
            "pattern": "\\S"
          },
          "effectiveTimeGt": {
            "type": "string",
            "minLength": 1,
            "description": "Return records with an effective time after this YYYY-MM-DD HH:ii:ss value.",
            "pattern": "\\S"
          },
          "effectiveTimeGte": {
            "type": "string",
            "minLength": 1,
            "description": "Return records with an effective time after or equal to this YYYY-MM-DD HH:ii:ss value.",
            "pattern": "\\S"
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing Cardly gift credit history."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "state": {
            "type": "object",
            "properties": {
              "success": {
                "type": "boolean",
                "description": "Whether Cardly reported the request as successful."
              },
              "code": {
                "type": "integer",
                "description": "The status code reported by Cardly."
              },
              "message": {
                "type": "string",
                "description": "The status message returned by Cardly."
              }
            },
            "additionalProperties": true,
            "description": "The Cardly response state object."
          },
          "meta": {
            "type": "object",
            "properties": {
              "limit": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The page size used by Cardly when present."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "offset": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The result offset used by Cardly when present."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "total": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The total number of records when Cardly returns it."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": true,
            "description": "The pagination metadata returned by Cardly."
          },
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "One raw Cardly result object."
            },
            "description": "The Cardly gift credit history records."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Cardly response payload."
          }
        },
        "additionalProperties": false,
        "description": "The normalized Cardly gift credit history response."
      }
    },
    {
      "id": "cardly.list_media",
      "service": "cardly",
      "name": "list_media",
      "description": "List Cardly media options that can be used when selecting card products.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "description": "The maximum number of records to return."
          },
          "offset": {
            "type": "integer",
            "minimum": 0,
            "description": "The zero-based record offset to start listing from."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing Cardly media."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "state": {
            "type": "object",
            "properties": {
              "success": {
                "type": "boolean",
                "description": "Whether Cardly reported the request as successful."
              },
              "code": {
                "type": "integer",
                "description": "The status code reported by Cardly."
              },
              "message": {
                "type": "string",
                "description": "The status message returned by Cardly."
              }
            },
            "additionalProperties": true,
            "description": "The Cardly response state object."
          },
          "meta": {
            "type": "object",
            "properties": {
              "limit": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The page size used by Cardly when present."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "offset": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The result offset used by Cardly when present."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "total": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The total number of records when Cardly returns it."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": true,
            "description": "The pagination metadata returned by Cardly."
          },
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "One raw Cardly result object."
            },
            "description": "The Cardly media records."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Cardly response payload."
          }
        },
        "additionalProperties": false,
        "description": "The normalized Cardly media listing response."
      }
    },
    {
      "id": "cardly.list_writing_styles",
      "service": "cardly",
      "name": "list_writing_styles",
      "description": "List Cardly writing styles available for generated handwriting.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "description": "The maximum number of records to return."
          },
          "offset": {
            "type": "integer",
            "minimum": 0,
            "description": "The zero-based record offset to start listing from."
          }
        },
        "additionalProperties": false,
        "description": "Input parameters for listing Cardly writing styles."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "state": {
            "type": "object",
            "properties": {
              "success": {
                "type": "boolean",
                "description": "Whether Cardly reported the request as successful."
              },
              "code": {
                "type": "integer",
                "description": "The status code reported by Cardly."
              },
              "message": {
                "type": "string",
                "description": "The status message returned by Cardly."
              }
            },
            "additionalProperties": true,
            "description": "The Cardly response state object."
          },
          "meta": {
            "type": "object",
            "properties": {
              "limit": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The page size used by Cardly when present."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "offset": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The result offset used by Cardly when present."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "total": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The total number of records when Cardly returns it."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": true,
            "description": "The pagination metadata returned by Cardly."
          },
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "One raw Cardly result object."
            },
            "description": "The Cardly writing style records."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Cardly response payload."
          }
        },
        "additionalProperties": false,
        "description": "The normalized Cardly writing style listing response."
      }
    }
  ]
}
