Hi,
i have used the API to create a work visit order and the http response is success. 201 with order number in header.
However, we are receiving calls from the service desk that the ticket information is not accurate. Like the IBX , cage & cabinet information is missing in the order.
I am not sure why this is happening.
Anyone faced this ?
Helo,
We are trying to automate creating work visit requests in Equinox portal using rest API's.
Following the documentation , i was able to generate client creds etc and use to generate bearer token.
when i used the same to submit a work visit request, i get invalid token used error.
Anyone faced this ??? Any recommendations ??
Thanks in Advance
How can we get the correct Final A-Side System Name using the API as displayed in the Install Base Download for Metro-connects or inter-IBX cross-connects?
This is what we see when getting the asset details with the API https://api.equinix.com/v1/assets/
{
"key": "SYSTEM_NAME",
"value": "CH2:02155:EQUINIX",
"tag": "A_SIDE_INFORMATION"
},
But when we download the Install Base we see that information displayed as the Legacy System Name in the Cross-connect Z-side report.
Final A-side System Name: CH1:05:XXXXXX:Some Other Broadband
Legacy System Name: CH2:02155:EQUINIX
Hello, I have been attempting to mess with the sandbox and create.
The two things I have done (using Postman) are get a token and create a user.
I have been putting the Bearer Token in Auth and receive this, with a 500 error:
[
{
"errorCode": "EQ-2021101",
"errorMessage": "The server has encountered an unexpected error. We apologize for the inconvenience. Please try again later.",
"correlationId": "230718201317567"
}
]
Let me know if you need more information, as I am lost on where to go next.
I am passing JSON for ordering outbound shipments. The json is below but its pretty much that same as my inbound JSON which is fine. The issue I am getting with the outbound order is that I am getting this error b'[{"errorCode":"EQ-2016010","errorMessage":"One or more properties are invalid","correlationId":"105073684364570","additionalInfo":[{"property":"details.carrierTrackingNumbers","reason":"details.carrierTrackingNumbers should NOT have more than 1 items","value":["123456789", "987654321"]}]}]'.
My JSON:
{
"type": "OUTBOUND",
"customerReferenceId": "x",
"requestedDateTime": "2023-04-12T07:00:00.000Z",
"cageId": "x",
"details": {
"carrier": "FEDEX",
"numberOfBoxes": 2,
"declaredValue": 1,
"declaredValueCurrency": "USD",
"carrierTrackingNumbers": ["123456789", "987654321"],
"shipmentLabelRequired": false
}
}
Just for reference this is my inbound which is working as expected.
{
"type": "INBOUND",
"customerReferenceId": "x",
"requestedDateTime": "2023-04-12T07:00:00.000Z",
"cageId": "x",
"details": {
"carrier": "FEDEX",
"numberOfBoxes": 2,
"carrierTrackingNumbers": ["123456789", "987654321"],
"cageDelivery": false
}
}
Not really sure why I am getting that error, just hoping its something simple. This happens on both the sandbox and in prod.
I use shipment v2 API in playground.
URL of my request: https://playgroundapi.equinix.com/colocations/v2/orders/shipments
JSON data of my request:
{
"type":"INBOUND",
"requestedDateTime": "2023-03-02T10:45:41Z",
"cageId":"1234",
"details": {
"carrier":"OTHER",
"carrierName":"New Carrier",
"numberOfBoxes":2,
"carrierTrackingNumbers": [
"t1Z294AK92654678989",
"t1Z086DK96424456780"
]
}
}
I get two possible responses for this same request:
- 504 gateway time-out error
{
"fault": {
"faultstring": "Gateway Timeout",
"detail": {
"errorcode": "messaging.adaptors.http.flow.GatewayTimeout"
}
}
} - 204 No Content
However according to API docs, I should get 201 and the order id.
Hi, I am using the API to open inbound orders and I received a call today that the Shipping team cannot scan the tracking numbers and associate them to a ticket. It looks like the API is putting the tracking number string into a list instead of a string which is causing this, ['626467467487', '626467467454', '626467467465', '626467467476'].
I have my app posting this in a string format using the catalog on the developer portal. The portal does state that the tracking numbers need to be inside brackets so could that be the reason?
"carrierTrackingNumbers": [
"DHL930182000"
],
That is the example from the catalog, I believe the brackets are causing the issue here with the Shipping department at the site.
PS: tried sending a message but the captcha never loaded so needed to post here.
Hello, I was curious if there is an existing catalog that I can use for unannounced shipments on the customer portal. I would expect it to be in Shipments v1 or v2 but I do not see it.
Thanks
Hello,
Without making any changes to my scripting, I am now getting the following error message when attempting to POST (create a new user) to the Users_v2 API:
{"errors":[{"code":"EQX-212-1208","message":"object instance has properties which are not allowed by the schema: %s","messageParams":[["companyName","contactDetails","firstName","lastName","locale","timezone","username"]]},{"code":"EQX-212-1218","message":"instance type (%s) does not match any allowed primitive type (allowed: %s)","messageParams":["OBJECT",["array"]]}],"ticketId":"220127161517021"}
I am sending all the required parameters as defined in the API definition (https://developer.equinix.com/catalog/usersv2#operation/Create%20a%20user). Can someone help me interpret what this response means and why I am suddenly getting it without any changes on my end? Thank you.
Hello
I am trying to get Cage and Cabinet list via API but it returns empty results
Could you advise how to get the details?
Input:
curl --request POST \
--url 'https://api.equinix.com/v1/assets/search?sorts=IBX&source=CAGE&exactMatch=false&offset=0&limit=100' \
--header 'accept: application/json' \
--header 'authorization: Bearer xxxxxxx' \
--header 'content-type: application/json' \
--data '{"filter":{"ibxs":["SV2"]}}'
Response:
{
"data": [],
"page": {
"limit": 90,
"offset": 38491869,
"total": 0,
"sorts": [
"IBX"
]
},
"_links": {
"next": {
"href": "/assets/search?exactMatch=false&offset=38491869&limit=90&source=CABINET&sorts=IBX"
},
"previous": {
"href": "/assets/search?exactMatch=false&offset=38491869&limit=90&source=CABINET&sorts=IBX"
},
"self": {
"href": "/assets/search?exactMatch=false&offset=38491869&limit=90&source=CABINET&sorts=IBX"
}
}
}
Regards
Moon
[creating new thread because follow-ups on the previous thread throws up http 403]
Hi, thanks for following up! What I'm trying to do here is to reconcile Equinix's view of what cross-connect assets are installed in our patch panels with what's contained in our own internal database. The aim is two-fold: 1. ensure that Equinix' DB and our DB are ~in sync and 2. to enable us to get local notifications whenever there are asset create / delete events, which can then be used to trigger other work process flows on our side,e.g. sending out to sites to bring links live.
At the moment, only A side cross-connects assets are visible via the API, but A side cross-connects only make up 20% of the installed asset based in our patch panels: the other 80% are Z side cross-connects. So you can probably see that the current output from an EQX API asset search is not that useful for us, which is a real shame.
We're currently handling this reconciliation by downloading Excel spreadsheets from the portal and manually running comparisons, but this is error-prone and tedious. What we'd really like is to be able to take the information contained in the Customer Portal report spreadsheets for both A side and Z side cross-connects (the Z-side tab contains the asset IDs), but without having to go to the hassle of downloading daily reports, then passing them through Excel parsing code to pull out the columns that we need. I.e. the information that we need is already available for download from the portal via API - it's just that it's in Excel Spreadsheet format rather than JSON.
So: can this info be exposed via the API? This would be a real win and a major time saver.
How do you query what Z-side cross-connects are installed? The /v1/assets/search URI only provides A-side cross-connects and if you attempt to post a query for /v1/assets/{assetNumber} where assetNumber refers to a Z side crossconnect, the API returns:
"errors": [
{
"code": "EQX-434-4404",
"message": "No Asset found for the Id:4-xxxxxxxxxxxx"
}
],
Running searches / queries for A side cross-connects works fine.
Need help!
I tried to use API and create a POST REST API request to raise a Work Visit request to Equinix. but unfortunately returned the EQX-161-403 errors. Please kindly help, no idea what this error message means and how to fix this error.
$workvisit = invoke-restmethod -uri "https://api.equinix.com/v1/orders/workvisit" -method POST -Headers $postParams -body $postParamsWVJson -ContentType "application/json"
invoke-restmethod : {"errors":[{"code":"EQX-161-403","message":"Contacts (with userName) should be Active and Approved"}],"ticketId":"201030030XXXXXX"}
<<< More details of my Power Shell Script >>>
$postParams = @{}
$postParams.Authorization="Bearer " + $token.access_token
$location = invoke-restmethod -uri "https://api.equinix.com/v1/orders/workvisit/locations" -method GET -Headers $postParams -ContentType "application/json"
$location2= invoke-restmethod -uri "https://api.equinix.com/v1/retrieve-orders/locations" -method GET -Headers $postParams -ContentType "application/json"
$postParamsWV = `
@{"contacts" =
@(
@{"contactType"="ORDERING";
"userName" = "XXXX@YYY.com"};
@{"contactType"="NOTIFICATION";
"userName" = "XXXX@YYY.com"};
);
"ibxLocation"=
@{"ibx" = "SAMPLE";
"cages"=
@(
@{"cage"="SAMPLE:00:000000";
"accountNumber" = "SAMPLE NUMBER"}
)};
"serviceDetails" =
@{schedule =
@{startDateTime = "2020-05-10T01:00:00Z";
endDateTime = "2020-05-11T02:00:00Z"
};
"visitors" =@(@{"firstName" = "John";
"lastName" = "Doe";
"company" = "NN Test";
"email" = "John.Doe@Test.com";
"mobilePhoneCountryCode" = "+81";
"mobilePhone" = "80-1111-2222";};
@{ "userName" = "DDDD@yahoo.com"}
);
escortRequired = $false;
openCabinet = $false;
}
}
$postParamsWVJson = $postParamsWV|convertto-json -depth 100
$workvisit = invoke-restmethod -uri "https://api.equinix.com/v1/orders/workvisit" -method POST -Headers $postParams -body $postParamsWVJson -ContentType "application/json"
Regards,
Alan
Hi all, this is the error I'm getting when calling /v1/orders/workvisit/locations
{'errors': [{'code': 'EQX-161-500',
'message': 'The system had encountered an unexpected problem and we are tracking it with error code.'}],
'ticketId': '201023052138751'}
Hello guys, I am new in using curl and I have a qeustion.
How it looks the final example autharization form + get smart hands type.
curl -X
POST 'https://api.equinix.com/oauth2/v1/token'
-H "content-type: application/json"
-d '{
"grant_type": "client_credentials",
"client_id": "ABCDE12345",
"client_secret": "FGHIJ67890"
}'
curl -X
GET "https://api.equinix.com/v1/orders/smarthands/types"
-H "content-type: application/json"
-H "authorization: Bearer qwErtY8zyW1abcdefGHI"
I don't understand how to combine these two example in one and why I have to use second time
-H "authorization: Bearer qwErtY8zyW1abcdefGHI"
Thank you.
We have been using the /catalog/workvisitv1 API endpoint for a while now and we now have a new validation error that is causing a failure to use the API endpoint:
{"error":"Unable to create access request with Equinix. Status code = 400, error = {\"errors\":[{\"code\":\"EQX-161-6119\",\"fields\":[\"\/attachments\"],\"message\":\"Justification form is mandatory for visiting the IBX : %s. Justification is available to download as part of work visit page in Equinix Customer Portal.\",\"messageParams\":[\"CH3\"]}],\"ticketId\":\"redacted\"}"}
This appears to be a new validation error. I haven't seen anything regarding changes to the published API. Do you guys know if this is a bug or a new requirement?
Hello, I know Equinix has APIs for initiation (i.e Create Shipment order) but I was wondering whether you have plans to introduce Update and Cancel APIs for your services.
I'm getting the following error for my work visit requests:
You don't have permission to access this cabinet
I've checked the list that I am sending against the list that is returned via the getLocation endpoint (https://developer.equinix.com/catalog/workvisitv1).
Is there any way to determine which cabinet is causing this issue? I have the full payload that I am sending available upon request.
Thanks,
Dustin
Hello Team,
I am new to Equinix API's. I tried searching for API that could be used to retrieve the bill and duration of a specific ticket but failed to get the information.
I see that there are APIs to generate bills periodically but do not see the one that I mentioned earlier.
Could someone from the community or support tream help me with my requirements.
I am looking for some relavant pointers so that I can tweak them as per my requirement.
Thanks
Giridhar
RHCA(DevOps,Infrastructure & cloud)
Hi, I'm receving 'The system had encountered an unexpected problem and we are tracking it with error code." error when attempting to post workvisits or returieve location details.
I'm using a correct setof credentials and the correct bearer token but there seems to be an issue with any request I make to the sandboxapi !
https://sandboxapi.equinix.com/v1/orders/workvisit/locations?detail=true
{
"serviceDetails":{
"schedule":{
"endDateTime":"2020-01-20T15:54:04+00:00",
"startDateTime":"2020-01-20T14:54:04+00:00"
},
"visitors":[
{
"company":"xxxxxxx",
"firstName":"[Test]NTTS01",
"lastName":"[Test]NTTS01"
},
{
"lastName":"person",
"firstName":"A",
"company":"A corp"
}
]
},
"contacts":[
{
"contactType":"NOTIFICATION",
"userName":"xxxxxxxx"
},
{
"contactType":"ORDERING",
"userName":"xxxxxxx"
}
],
"ibxLocation":{
"ibx":"LD4",
"cages":[
{
"cabinets":[
"0000"
],
"accountNumber":"xxxxxxx",
"cage":"LD4:01:001S14"
}
]
},
"customerReferenceNumber":"xxxxxxx"
}
Can anyone help me !
Which API call should one use to retrieve datacenter visit history?
I'm currently getting a 400 response without any sort of indication of what the problem may be. Here is an example request that I am sending with some information redacted:
{ "ibxLocation": { "cages": [ { "cage": "AM2:1234", "accountNumber": "1234" } ], "ibx": "AM2" }, "customerReferenceNumber": null, "serviceDetails": { "estimatedDateTime": "2019-07-27T00:00:00+00:00", "shipmentDetails": { "noOfBoxes": 3, "trackingNumber": [ "123123123" ], "inboundType": "CARRIER", "description": null, "carrierName": "UPS" } }, "contacts": [ { "contactType": "NOTIFICATION", "userName": "test@test.com", "name": "First Last" }, { "contactType": "ORDERING", "userName": "test@test.com", "name": "First Last" } ] }
Please let me know if you need any information so that we can resolve this issue.
Hi Mohit,
I have successfully accessed my sandbox and have been attempting to send some workvisit requests.
Needless to say I am experiencing a number of issues. Mostly I can get around these but there’s an odd one I am blocked with.
Maybe you can help me to work out what might be the issue ?
Received an error :
{
"errors":[
{
"code":"EQX-161-403",
"message":"Insufficient permission to access the resource or invoke the request."
}
],
"ticketId":"190801140754602"
}
I’m not sure what this error means but I definitely is preventing me from receiving any sensible responses..
Are you able to assist ?
Best regards,
I have been testing several API for the customer portal. So far all seem to work except for the assets api. I get the error "You are not authorized to access the api". How do I get authorization?
I'm trying to use the Workvisit_v1 API endpoint. When I submit the request it goes through fine but the timestamps for startDateTime and endDateTime appear to be modified when they are displayed in the Equinix portal. What format should these timestamps be submitted in? GMT?
Equinix Customer Portal
APIs that enables all aspects of Equinix Customer Portal features in a programmatic way. Includes user administration, order management & many other capabilities.