Developer Forum Equinix Customer Portal APIs
 The Developer Forum is shutting down. Please join the Equinix Community to participate in new discussions.
API User | 0 Replies | 44 Views | Last Reply: Thursday, September 21, 2023 - 04:50

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 ?

API User | 0 Replies | 67 Views | Last Reply: Wednesday, August 16, 2023 - 22:15

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

API User | 0 Replies | 37 Views | Last Reply: Saturday, August 12, 2023 - 03:10

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

 

API User | 0 Replies | 60 Views | Last Reply: Wednesday, July 19, 2023 - 04:14

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.

API User | 3 Replies | 69 Views | Last Reply: Tuesday, May 2, 2023 - 10:21

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.

API User | 2 Replies | 125 Views | Last Reply: Tuesday, May 2, 2023 - 17:54

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.


 

API User | 3 Replies | 57 Views | Last Reply: Wednesday, January 25, 2023 - 23:01

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.

API User | 1 Replies | 84 Views | Last Reply: Tuesday, May 10, 2022 - 17:00

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

API User | 5 Replies | 98 Views | Last Reply: Friday, February 11, 2022 - 17:38

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.

API User | 1 Replies | 107 Views | Last Reply: Tuesday, December 14, 2021 - 19:48

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

API User | 1 Replies | 120 Views | Last Reply: Monday, April 12, 2021 - 13:33

[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.

API User | 1 Replies | 237 Views | Last Reply: Monday, April 5, 2021 - 22:20

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.

API User | 1 Replies | 137 Views | Last Reply: Friday, October 30, 2020 - 14:45

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

API User | 7 Replies | 157 Views | Last Reply: Saturday, October 31, 2020 - 00:06

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'}

 

 

API User | 1 Replies | 133 Views | Last Reply: Tuesday, December 14, 2021 - 19:38

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.

API User | 1 Replies | 105 Views | Last Reply: Tuesday, December 14, 2021 - 19:29

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? 

API User | 1 Replies | 105 Views | Last Reply: Sunday, May 17, 2020 - 20:48

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.

API User | 1 Replies | 307 Views | Last Reply: Thursday, March 19, 2020 - 18:27

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

API User | 1 Replies | 386 Views | Last Reply: Tuesday, December 14, 2021 - 19:17

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) 

API User | 1 Replies | 463 Views | Last Reply: Wednesday, January 22, 2020 - 10:57

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 !

 

 

API User | 3 Replies | 506 Views | Last Reply: Friday, January 17, 2020 - 16:59

Which API call should one use to retrieve datacenter visit history?

API User | 5 Replies | 780 Views | Last Reply: Thursday, August 29, 2019 - 18:40

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.

 

 

API User | 1 Replies | 762 Views | Last Reply: Friday, August 2, 2019 - 19:06

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,

 

API User | 1 Replies | 725 Views | Last Reply: Tuesday, July 2, 2019 - 18:53

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?

API User | 1 Replies | 748 Views | Last Reply: Tuesday, July 2, 2019 - 15:10

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.