ClickFunnels CLASSIC (1.0) Public API v1
2025 Update: ClickFunnels V1 is deprecated - Please use the ClickFunnels V2 API ℹ️
For the most recent ClickFunnels API documentation, please see our new developer hub at https://developers.myclickfunnels.com/.
Overview
Welcome to the ClickFunnels & Follow-Up Funnels API.
Our REST API communications in JSON over SSL. All endpoints will begin with https://api.clickfunnels.com/api/attributes.
Authentication
The REST API accepts both token-based authentication (intended for private integrations) and full OAuth 2 authentication (for public integrations).
You must replace YOUR_API_KEY / YOUR_ACCESS_TOKEN with your actual token.
OAuth2
For public integrations with ClickFunnels, you must use OAuth based authentication. Here's a quick overview of how to get going.
Get your favorite OAuth Library
Register your application with us at https://api.clickfunnels.com/oauth/applications. We will then supply you with an client id and client secret. Please be aware that you must also enter a valid callback url before you will be able to activate your application.
Configure your OAuth client with the credentials supplied to you when you created your application. Request authorization at: https://api.clickfunnels.com/oauth/authorize. You should only have to do this once, as tokens do not expire.
Activate your application and you're on your way!
If you're not going to use a library and will be rolling your own OAuth 2 client, here's the long form of how you can get going.
First and foremost remember to register your app with us as outlined above.
Once you have registered your app, it will then need to request authorization by redirecting your user to the following url:
We will then authenticate their CF account and ask if it's ok to give access to your app.
The user will then be redirected back to your app with a verification code that will expire in 10 minutes.
Your app will then need to make a request to trade that verification code for an access token:
We will then authenticate your app and issue you an access token as shown on the right.
You can now use that access token in the header of your API requests as follows:
Error Codes
2xx (Success category)
These status codes represent that the requested action was received and successfully processed by the server.
200 Ok The standard HTTP response representing success for GET, PUT or POST.
201 Created This status code should be returned whenever the new instance is created. E.g on creating a new instance, using POST method, should always return 201 status code.
204 No Content represents the request is successfully processed, but has not returned any content.
3xx (Redirection Category)
- 304 Not Modified indicates that the client has the response already in its cache. And hence there is no need to transfer the same data again.
4xx (Client Error Category)
These status codes represent that the client has raised a faulty request.
400 Bad Request indicates that the request by the client was not processed, as the server could not understand what the client is asking for.
401 Unauthorized indicates that the client is not allowed to access resources, and should re-request with the required credentials.
403 Forbidden indicates that the request is valid and the client is authenticated, but the client is not allowed access the page or resource for any reason. E.g sometimes the authorized client is not allowed to access the directory on the server. This is also used to indicate Rate limiting has occured
404 Not Found indicates that the requested resource is not available now.
410 Gone indicates that the requested resource is no longer available which has been intentionally moved.
5xx (Server Error Category)
500 Internal Server Error indicates that the request is valid, but the server is totally confused and the server is asked to serve some unexpected condition.
503 Service Unavailable indicates that the server is down or unavailable to receive and process the request. Mostly if the server is undergoing maintenance.
Rate limit
You can make up to 600 requests per hour during our private beta, increases will be granted on a case by case basis.
You will see the max number of requests and the one availables.
When you exceed the API calls limit your request is forbidden.