Note: When you access any API other than the login and logout APIs through an external REST client such as cURL, first invoke the login API to ensure that user is authenticated. When the login API is invoked, the system stores the generated session cookie in a file, which we use in the next API invocations. The response is a JSON message.
Login
Description | Log in to API Publisher web application. |
---|---|
URI | http://localhost:9763/publisher/site/blocks/user/login/ajax/login .jag |
URI Parameters | action=login&username=xxx&password=xxx |
HTTP Methods | POST |
Example | curl -X POST -c cookies http://localhost:9763/publisher/site/blocks/user/login/ajax/login.jag -d 'action=login&username=admin&password=admin' |
Logout
Description | Log out from API Publisher web application. |
---|---|
URI | http://localhost:9763/publisher/site/blocks/user/login/ajax/login .jag |
URI Parameters | ?action=logout |
HTTP Methods | GET |
Example | curl -b cookies http://localhost:9763/publisher/site/blocks/user/login/ajax/login.jag?action=logout |
Add API
Description | Add a new API. | ||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
URI | http://localhost:9763/publisher/site/blocks/item-add/ajax/add.jag | ||||||||||||||||||||||||||||||||||||||||
URI Parameters | Given below are the parameters that you can pass with an Add-API call. Mandatory ones are marked with a *.
| ||||||||||||||||||||||||||||||||||||||||
HTTP Methods | POST | ||||||||||||||||||||||||||||||||||||||||
Example | curl -X POST -b cookies http://localhost:9763/publisher/site/blocks/item-add/ajax/add.jag -d "action=addAPI&name=PhoneVerification&context=/phoneverify&version=1.0.0&visibility=public&thumbUrl=&description=Verify a phone number&tags=phone,mobile,multimedia&endpointType=nonsecured&tiersCollection=Gold,Bronze&http_checked=http&https_checked=https style="line-height: 1.4285715;">&resourceCount=0&resourceMethod-0=GET&resourceMethodAuthType-0=Application&resourceMethodThrottlingTier-0=Unlimited&uriTemplate-0=/*&default_version_checked=default_version&bizOwner=xx&bizOwnerMail=xx@ee.com&techOwner=xx&techOwnerMail=ggg@ww.com" -d 'endpoint_config={"production_endpoints":{"url":" http://ws.cdyne.com/phoneverify/phoneverify.asmx","config":null},"endpoint_type":"http "}' |
Add API with Path Parameter
Description | Add a new API with path parameter |
---|---|
URI | http://localhost:9763/publisher/site/blocks/item-add/ajax/add.jag |
URI Parameters | action=addAPI&name=xxx&context=/xxx&version=1.0.0&visibility=xxx&thumbUrl=&description=xxx&tags=xxx&endpointType=xxx&tiersCollection=xxx&http_checked=http&https_checked=https" -d 'swagger=xxx |
HTTP Methods | POST |
Example | curl -X POST -b cookies http://localhost:9763/publisher/site/blocks/item-add/ajax/add.jag -d "action=addAPI&name=SampleApi&context=/sample&version=1.0.0&visibility=public&thumbUrl=&description=Verify a phone number&tags=phone,mobile,multimedia&endpointType=nonsecured&tiersCollection=Gold,Bronze&http_checked=http&https_checked=https" -d 'swagger={"paths" : {"/estimate/" : {"get" : {"x-auth-type" : "Application%20%26%20Application%20User", "x-throttling-tier" : "Unlimited", "responses" : {"200" : {}}, "parameters" : [{"name" : "id", "paramType" : "path", "required" : false, "type" : "string", "description" : "Phone Number", "in" : "path"}]}}}, "swagger" : "2.0", "x-wso2-security" : {"apim" : {"x-wso2-scopes" : [{"description" : "", "name" : "read_number", "roles" : "admin", "key" : "read_number"}]}}, "info" : {"title" : "SampleApi", "version" : "1.0.0"}}' -d 'endpoint_config={"production_endpoints":{"url":"http://ws.cdyne.com/phoneverify/phoneverify.asmx","config":null},"endpoint_type":"http"}' |
Update API
Description | Update an existing API |
---|---|
URI | http://localhost:9763/publisher/site/blocks/item-add/ajax/add.jag |
URI Parameters | Parameters are same as in Add API except that action = updateAPI and you can only update the following parameters: visibility, thumbUrl, description, tags, endpointType, endpoint_config (can change the endpoint URL etc,) http_checked, https_checked, tiersCollection, swagger and can also add new resources. See example below. |
HTTP Methods | POST |
Example | Update API : curl -X POST -b cookies http://localhost:9763/publisher/site/blocks/item-add/ajax/add.jag -d "action=updateAPI&name=PhoneVerification&provider=admin&version=1.0.0&visibility=public&description=Youtube Live Feeds&endpointType=nonsecured&http_checked=http&https_checked=https&tags=youtube,gdata,multimedia&tier=Silver&thumbUrl=http://www.10bigideas.com.au/www/573/files/pf-thumbnail-youtube_logo.jpg&context=/youtube&tiersCollection=Gold,silver&resourceCount=0&resourceMethod-0=GET&resourceMethodAuthType-0=Application&resourceMethodThrottlingTier-0=Unlimited&uriTemplate-0=/*" -d 'endpoint_config={"production_endpoints":{"url":"http://gdata.youtube.com/feeds/api/standardfeeds","config":null},"endpoint_type":"http"}' |
Publishing an API to external Store
Description | Publish an API to external store |
---|---|
URI | http://localhost:9763/publisher/site/blocks/item-external/ajax/external.jag |
URI Parameters | action=updateExternal&name=xxx&version=xxx&provider=xxx&externalAPIStores=<external-store-1>::<external-store-2>::<external-store-3> :: sign is used to seperate the list of API stores |
HTTP Methods | POST |
Example | updateExternal : curl -X POST -b cookies http://localhost:9763/publisher/site/blocks/item-external/ajax/external.jag -d "action=updateExternal&name=PhoneVerification&version=1.0.0&provider=admin&externalAPIStores=exstore2::exstore3 This API can be used to unpublish an API from a given API store as well. If we remove the particular store ID and call the API once again, that API will get unpublished from the external stores which are not mentioned in the request. curl -X POST -b cookies http://localhost:9763/publisher/site/blocks/item-external/ajax/external.jag -d "action=updateExternal&name=sampleAPI&version=v1&provider=admin@wso2.com&externalAPIStores=exstore3" If you want to remove the API from all the stores, provide '::' as the externalAPIStores parameter value. |
Get All APIs
Description | Lists all the created APIs. |
---|---|
URI | http://localhost:9763/publisher/site/blocks/listing/ajax/item-list.jag |
URI Parameters | ?action=getAllAPIs |
HTTP Methods | GET |
Example | curl -b cookies http://localhost:9763/publisher/site/blocks/listing/ajax/item-list .jag ?action=getAllAPIs |
Get an API
Description | Get details of a specific API. |
---|---|
URI | http://localhost:9763/publisher/site/blocks/listing/ajax/item-list.jag |
URI Parameters | action=getAPI&name=xxx&version=xxx&provider=xxx |
HTTP Methods | POST |
Example | curl -X POST -b cookies http://localhost:9763/publisher/site/blocks/listing/ajax/item-list.jag -d "action=getAPI&name=PhoneVerification&version=1.0.0&provider=admin" |
Remove an API
Description | Remove an API. |
---|---|
URI | http://localhost:9763/publisher/site/blocks/item-add/ajax/remove.jag |
URI Parameters | action=removeAPI&name=xxx&version=xxx&provider=xxx |
HTTP Methods | POST |
Example | curl -X POST -b cookies http://localhost:9763/publisher/site/blocks/item-add/ajax/remove.jag -d "action=removeAPI&name=PhoneVerification&version=1.0.0&provider=admin" |
Copy an API
Description | Copy an API to a newer version. |
---|---|
URI | http://localhost:9763/publisher/site/blocks/overview/ajax/overvi ew.jag |
URI Parameters | action=createNewAPI&provider=xxx&apiName=xxx&version=xxx&newVersion=xxx |
HTTP Methods | POST |
Example | curl -X POST -b cookies http://localhost:9763/publisher/site/blocks/overview/ajax/overview.jag -d "action=createNewAPI&provider=admin&apiName=PhoneVerification&version=1.0.0&newVersion=2.0.0&isDefaultVersion=default_version" |
Check Older Version
Description | Does older version of API exist. |
---|---|
URI | http://localhost:9763/publisher/site/blocks/life-cycles/ajax/life-cycles .jag |
URI Parameters | action=isAPIOlderVersionExist&provider=xxx&name=xxx&version=xxx |
HTTP Methods | POST |
Example | curl -X POST -b cookies http://localhost:9763/publisher/site/blocks/life-cycles/ajax/life-cycles.jag -d "action=isAPIOlderVersionExist&provider=admin&name=PhoneVerification&version=1.0.0" |
Change API Status
Description | Change the API's status. |
---|---|
URI | http://localhost:9763/publisher/site/blocks/life-cycles/ajax/life-cycles .jag |
URI Parameters | action=updateStatus&name=xxx&version=1.0.0&provider=apiCreateName&status=PUBLISHED&publishToGateway=true&requireResubscription=true |
HTTP Methods | POST |
Example | curl -X POST -b cookies 'http://localhost:9763/publisher/site/blocks/life-cycles/ajax/life-cycles.jag' -d 'action=updateStatus&name=PhoneVerification&version=1.0.0&provider=admin&status=PUBLISHED&publishToGateway=true&requireResubscription=true' |
Add/Update an API Document
Description | Add a new API document. |
---|---|
URI | http://localhost:9763/publisher/site/blocks/documentation/ajax/docs.jag |
URI Parameters | Add Document: action=addDocumentation&provider=xxx&apiName=xxx&version=xxx&docName=xxx&summary=xxx&docType=xxx&newType=xxx&sourceType=xxx&docUrl=&docLocation=xxx&docVisibility=owner_only/private Note that docVisibility is applicable only if you have enabled it. See API documentation visibility. Add Document file: action=addDocumentation&provider=xxx&apiName=xxx&version=xxx&docName=xxx&summary=xxx&docType=xxx&newType=xxx&sourceType=xxx&docUrl=&docLocation=xxx Update Document: action=addDocumentation&mode=xxx&provider=xxx&apiName=xxx&version=xxx&docName=xxx&summary=xxx&docType=xxx&newType=xxx&sourceType=xxx&docUrl=&docLocation=xxx The |
HTTP Methods | POST |
Example | Add Document: curl -X POST -b cookies http://localhost:9763/publisher/site/blocks/documentation/ajax/docs.jag -d "action=addDocumentation&provider=xxx&apiName=xxx&version=xxx&docName=xxx&summary=xxx&docType=xxx&newType=xxx&sourceType=xxx&docUrl=&docLocation=" Add Document file: curl -X POST -b cookies http://localhost:9763/publisher/site/blocks/documentation/ajax/docs.jag -F "action=addDocumentation" -F "provider=admin" -F "apiName=testAPi" -F "version=1.0.0" -F "docName=testDoc2" -F "docType=how to" -F "sourceType=file" -F "docUrl=" -F "summary=testing" -F "docLocation=@test.txt" Update Document: curl -X POST -b cookies http://localhost:9763/publisher/site/blocks/documentation/ajax/docs.jag -d "action=addDocumentation&mode=Update&provider=admin&apiName=PizzaShackAPI&version=1.0.0&docName=Sample&summary=sample summary updated&docType=other&newType=primary&sourceType=inline&docUrl=&docLocation=" |
Remove an API Document
Description | Remove an API document. |
---|---|
URI | http://localhost:9763/publisher/site/blocks/documentation/ajax/docs.jag |
URI Parameters | action=removeDocumentation&provider=xxx&apiName=xxx&version=xxx&docName=xxx&docType=xxx |
HTTP Methods | POST |
Example | curl -X POST -b cookies http://localhost:9763/publisher/site/blocks/documentation/ajax/docs.jag -d "action=removeDocumentation&provider=admin&apiName=PizzaShackAPI&version=1.0.0&docName=Sample&docType=HowTo" |
Get all Throttling Tiers
Description | Get the throttling tiers that can be applied to APIs |
---|---|
URI | http://localhost:9763 /publisher/site/blocks/item-add/ajax/add.jag? |
URI Parameters | action=getTiers |
HTTP Methods | GET |
Example | curl -b cookies http://localhost:9763/publisher/site/blocks/item-add/ajax/add.jag? action=getTiers |
Check if API Exists
Description | Check if an API by a given name exists in the API Publisher |
---|---|
URI | http://localhost:9763/publisher/site/blocks/item-add/ajax/add.jag |
URI Parameters | action=isAPINameExist&apiName=<name of the API> |
HTTP Methods | GET |
Example | curl -b cookies "http://localhost:9763/publisher/site/blocks/item-add/ajax/add.jag?action=isAPINameExist&apiName=PhoneVerification" |
Validate Roles
Description | Check if the user logged in user is any one in a given list of users |
---|---|
URI | http://localhost:9763/publisher/site/blocks/item-add/ajax/add.jag |
URI Parameters | action=validateRoles&roles=<list of roles> |
HTTP Methods | GET |
Example | curl -b cookies "http://localhost:9763/publisher/site/blocks/item-add/ajax/add.jag?action=validateRoles&roles=admin" |
Upload a Certificate
Description | Upload a certificate to an endpoint |
---|---|
URI | http://localhost:9763/publisher/site/blocks/item-design/ajax/add.jag |
URI Parameters | action=addCertificate&alias=<certificate-alias>&ep=<endpoint>&certificate=<certificate-file> |
HTTP Methods | POST |
Example | curl -X POST -b cookies "http://localhost:9763/publisher/site/blocks/item-design/ajax/add.jag \ -H 'content-type: application/x-www-form-urlencoded' \ -d 'action=addCertificate&alias=wso2&ep=http%3A%2F%2Fwso2.com&certificate=Q2VydGlmaWNhdGU6CiAgICBEYXRhOgogICAgICAgIFZlcnNpb2 |
Remove a Certificate
Description | Remove a certificate to given for a certain endpoint |
---|---|
URI | http://localhost:9763/publisher/site/blocks/item-design/ajax/add.jag |
URI Parameters | action=deleteCert&alias=<certificate-alias>&endpoint=<endpoint> |
HTTP Methods | POST |
Example | curl -X POST -b cookies http://localhost:9763/publisher/site/blocks/item-design/ajax/add.jag -H 'content-type: application/x-www-form-urlencoded' -d 'action=deleteCert&alias=wso2&endpoint=http%3A%2F%2Fwso2.com' |
Analytics related APIs
Before using the following analytics related APIs, ensure to configure Analytics for API-M. For more information, see Configuring APIM Analytics.
Get List of API Creators
Description | Get the list of all the API creators. |
---|---|
URI | http://localhost:9763/publisher/site/blocks/stats/api-usage-user/ajax/stats.jag |
Request Headers | "Content-Type" -> "application/x-www-form-urlencoded" |
HTTP Methods | POST |
Payload | action=getAPIUsageByUser¤tLocation=/publisher/site/pages/all-statistics.jag&fromDate=2014-05-10 00:00:00&toDate=2016-12-16 13:41:13&apiFilter=allAPIs |
Example | curl -v -b cookies -XPOST -H "Content-type: application/x-www-form-urlencoded" -d 'action=getAPIUsageByUser¤tLocation=/publisher/site/pages/all-statistics.jag&fromDate=2014-05-10 00:00:00&toDate=2016-12-16 13:41:13&apiFilter=allAPIs' ' http://localhost:9763/publisher/site/blocks/stats/api-usage-user/ajax/stats.jag ' |
Sample Response | < HTTP/1.1 200 OK |
Get Subscriber Count
Description | Get the number of subscribers. |
---|---|
URI | http://localhost:9763/publisher/site/blocks/stats/api-subscriptions/ajax/stats.jag |
Request Headers | "Content-Type" -> "application/x-www-form-urlencoded" |
HTTP Methods | POST |
Payload | action:getSubscriberCountByAPIs |
Example | curl -v -b cookies -XPOST -H "Content-type: application/x-www-form-urlencoded" -d 'action=getSubscriberCountByAPIs¤tLocation=/publishe/site/pages/all-statistics.jag&apiFilter=allAPIs' 'http://localhost:9763/publisher/site/blocks/stats/api-subscriptions/ajax/stats.jag' |
Sample Response | < HTTP/1.1 200 OK |
Get API Usage By Resource Path
Description | Get the API usage based on the resource path. |
---|---|
URI | http://localhost:9763/publisher/site/blocks/stats/api-usage-resource-path/ajax/stats.jag |
Request Headers | "Content-Type" -> "application/x-www-form-urlencoded" |
HTTP Methods | POST |
Payload | action:getAPIUsageByResourcePath |
Example | curl -v -b cookies -XPOST -H "Content-type: application/x-www-form-urlencoded" -d 'action=getAPIUsageByResourcePath¤tLocation=%2Fpublisher%2Fsite%2Fpages%2Fall-statistics.jag&fromDate=2014-05-10+00%3A00%3A00&toDate=2016-12-16+14%3A34%3A33&apiFilter=allAPIs' 'http://localhost:9763/publisher/site/blocks/stats/api-usage-resource-path/ajax/stats.jag' |
Sample Response | < HTTP/1.1 200 OK |
Get API Usage By Destination
Description | Get the API usage based on the destination |
---|---|
URI | http://localhost:9763/publisher/site/blocks/stats/api-usage-destination/ajax/stats.jag |
Request Headers | "Content-Type" -> "application/x-www-form-urlencoded" |
HTTP Methods | POST |
Payload | action:getAPIUsageByDestination |
Example | curl -v -b cookies -XPOST -H "Content-type: application/x-www-form-urlencoded" -d 'action=getAPIUsageByDestination¤tLocation=%2Fpublisher%2Fsite%2Fpages%2Fall-statistics.jag&fromDate=2014-05-10+00%3A00%3A00&toDate=2016-12-16+14%3A34%3A33&apiFilter=allAPIs' 'http://localhost:9763/publisher/site/blocks/stats/api-usage-destination/ajax/stats.jag' |
Sample Response | < HTTP/1.1 200 OK |
Get API Usage by Provider
Description | Get API Usage by Provider. |
---|---|
URI | http://localhost:9763/publisher/site/blocks/stats/api-usage/ajax/stats.jag |
Request Headers | "Content-Type" -> "application/x-www-form-urlencoded" |
HTTP Methods | POST |
Payload | action:getProviderAPIUsage |
Example | curl -v -b cookies -XPOST -H "Content-type: application/x-www-form-urlencoded" -d 'ac |
Sample Response | < HTTP/1.1 200 OK |
Get API and Application Throttling Data
Description | Get the throttling related data related to the APIs and applications. |
---|---|
URI | http://localhost:9763/publisher/site/blocks/stats/api-throttledcounts/ajax/stats.jag |
Request Headers | "Content-Type" -> "application/x-www-form-urlencoded" |
HTTP Methods | POST |
Payload | action:getThrottleDataOfAPIAndApplication |
Example | curl -v -b cookies -XPOST -H "Content-type: application/x-www-form-urlencoded" -d 'action=getThrottleDataOfAPIAndApplication¤tLocation=%2Fpublisher%2Fsite%2Fpages%2Fall-statistics.jag&apiName=Cedum&appName=&fromDate=2014-05-10+00%3A00%3A00&toDate=2016-12-16+15%3A07%3A00&apiFilter=allAPIs' 'http://localhost:9763/publisher/site/blocks/stats/api-throttledcounts/ajax/stats.jag' |
Sample Response | < HTTP/1.1 200 OK |
Get API Response Fault Count
Description | Get the response fault count of APIs. |
---|---|
URI | http://localhost:9763/publisher/site/blocks/stats/faulty-invocations/ajax/stats.jag |
Request Headers | "Content-Type" -> "application/x-www-form-urlencoded" |
HTTP Methods | POST |
Payload | action:getThrottleDataOfAPIAndApplication |
Example | curl -v -b cookies -XPOST -H "Content-type: application/x-www-form-urlencoded" -d 'action=getAPIResponseFaultCount¤tLocation=%2Fpublisher%2Fsite%2Fpages%2Fall-statistics.jag&fromDate=2014-05-10+00%3A00%3A00&toDate=2016-12-16+15%3A07%3A00&apiFilter=allAPIs' 'http://localhost:9763/publisher/site/blocks/stats/faulty-invocations/ajax/stats.jag ' |
Sample Response | < HTTP/1.1 200 OK |